Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update README.md #47

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
# Grade Fetcher XBlock

By adding this XBlock to a course unit you can fetch grades from an external system for a corresponding problem(s) in Open edX and another system and grade users in Open edX based on what recieved from the external system.
By adding this XBlock to a course unit you can fetch grades from an external system for a corresponding problem(s) in Open edX and another system and grade users in Open edX based on what is received from the external system.

## Fields
1. Display Name: Title of the XBlock in the Studio
2. Title: Title of the XBlock in the LMS (Title that appears to the students)
3. Button Text: Text that appears on the button that triggers the grader endpoint
4. User Identifier: The external system needs to recognize the user by this identifier, you can choose email, username, user_id or anonyomous_student_id. The actual value comes from what we have in Open edX.
4. User Identifier: The external system needs to recognize the user by this identifier, you can choose email, username, user_id, or anonyomous_student_id. The actual value comes from what we have in Open edX.
5. User identifier parameter name: This is the parameter name that we wrap the user identifier in.
6. Authentication Endpoint: If your system requieres authentication you should set this. If not the call will be made directly to the grader endpoint.
6. Authentication Endpoint: If your system requires authentication you should set this. If not the call will be made directly to the grader endpoint.
7. Client ID: OAuth2 Client ID for Auth endpoint
8. Client Secret: OAuth2 Client Secret for Auth endpoint
9. Authentication Username: Username for Auth endpoint
10. Authentication Password: Password for Auth endpoint
11. API Key: If the grader enpoint requieres an API key in the header as `X-API-Key` you should set this.
11. API Key: If the grader endpoint requires an API key in the header as `X-API-Key` you should set this.
12. Grader Endpoint: The endpoint that will be called to fetch grades.
13. Activity Identifier: The identifier of the problem in the external system. If you need to fetch grades for multiple problems you have to setup your system in a way to interpret this parameter as a range of problems. For example if the value is `4` your system can send back assignment 1 to 4 grades
13. Activity Identifier: The identifier of the problem in the external system. If you need to fetch grades for multiple problems you have to setup your system in a way to interpret this parameter as a range of problems. For example, if the value is `4` your system can send back assignments 1 to 4 grades
14. Activity Identifier parameter name: This is the parameter name that we wrap the activity identifier in.
15. Extra Parameters: Any extra parameters that you want to send to the grader endpoint.

Expand All @@ -26,7 +26,7 @@ TO-DO

### Fetching grades

After filling all the required fields in studio by clicking on Grade me button if the authentication is requiered we first make an call the auth endpoint, recieve a token and after that we construct an HTTP request to the grader endpoint based on the parameters and their values you have set in studio.
After filling all the required fields in studio by clicking on the Grade me button if the authentication is required we first make a call to the auth endpoint, receive a token, and after that construct an HTTP request to the grader endpoint based on the parameters and their values you have set in studio.

The external system should return a JSON with the following structure:

Expand Down Expand Up @@ -61,7 +61,7 @@ The external system should return a JSON with the following structure:
}
```

`assignment_id` , `grade` and `reason` are required in the response. Please make sure your system returns these parameters.
`assignment_id`, `grade`, and `reason` are required in the response. Please make sure your system returns these parameters.

[Here](https://48oj7cnxk4.execute-api.us-east-1.amazonaws.com/default/external-grading-system?unit_id=4) is an example of the response. By filling the fields 4, 5, 12, 13 and 14 in the [Fields](#Fields) section, you can see a demo of how this XBlock works.

Expand Down