openedx / openedx/openedx-platform
Grading (previously Student Admin) API
Open
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 8.2k
- Forks
- 4.4k
- Avg merge
- 6d 18h
- Merged PRs (30d)
- 42
Description
The GET /leaners/{username} endpoint will include enrollment_status and progress_url fields in the response. Separate endpoints for these single attributes are not needed.
| Method | Endpoint | Services | Status | Existing API Path | Description |
|---|---|---|---|---|---|
| GET | /api/instructor/v1/courses/{course_key}/learners | student, instructor | Missing | N/A | List all students enrolled in the course (supports filtering and pagination) |
| GET | /api/instructor/v1/courses/{course_key}/learners/{username} | student, instructor, enrollments | Partial | /courses/{course_id}/instructor/api/get_student_enrollment_status /courses/{course_id}/instructor/api/get_student_progress_url | Retrieve student info including enrollment status and progress URL |
| POST | /api/instructor/v1/courses/{course_key}/learners/{username}/reset_attempts | grades, xmodule.modulestore, instructor_task | Exists | /courses/{course_id}/instructor/api/reset_student_attempts | Reset student's attempts for a specific problem (requires problem location in body) |
| POST | /api/instructor/v1/courses/{course_key}/learners/{username}/reset_entrance_exam | grades, xmodule.modulestore | Exists | /courses/{course_id}/instructor/api/reset_student_attempts_for_entrance_exam | Reset student's entrance exam attempts and allow retake |
| POST | /api/instructor/v1/courses/{course_key}/learners/{username}/rescore_problem | grades, xmodule.modulestore, instructor_task | Exists | /courses/{course_id}/instructor/api/rescore_problem | Rescore a specific problem for a student (requires problem location in body) |
| POST | /api/instructor/v1/courses/{course_key}/learners/{username}/override_score | grades, xmodule.modulestore | Exists | /courses/{course_id}/instructor/api/override_problem_score | Manually override a student's score for a specific problem |
| POST | /api/instructor/v1/courses/{course_key}/learners/{username}/delete_state | student, xmodule.modulestore | Missing | N/A | Delete student's state/progress for a specific problem or unit |
| POST | /api/instructor/v1/courses/{course_key}/problems/{problem_id}/reset_attempts_all | grades, xmodule.modulestore, instructor_task | Missing | N/A | Reset attempts for all students for a specific problem |
| POST | /api/instructor/v1/courses/{course_key}/problems/{problem_id}/rescore_all | grades, xmodule.modulestore, instructor_task | Missing | N/A | Rescore a specific problem for all students in the course |
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the GET /api/instructor/v1/courses/{course_key}/learners/{username} entry point and compare it with the existing get_student_enrollment_status and get_student_progress_url API paths. Trace the student, instructor, and enrollments services named in the table, then verify the response includes enrollment_status and progress_url without separate attribute endpoints.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- api, backend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100