openedx / openedx/openedx-platform

Grading (previously Student Admin) API

Open
#37,467 1 comment 0 reactions 0 assignees View on GitHub

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

Image

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.