testmycode / testmycode/tmc-server
API request: Course JSON with participants and their exercise status
Nobody has claimed this yet.
- Dominant language
- Ruby
- Stars
- 51
- Forks
- 42
- Avg merge
- 1h 27m
- Merged PRs (30d)
- 1
Description
There's a need for better API in TMC Server for resolving which students have been in a specific course and what is their exercise status. Now to get students of a specific course from TMC you need to navigate to
/:instanceId/courses/:courseId/points.json
and get student IDs from "users" attribute.
On the other hand, you can get exercise status from
/:instanceId/courses/:courseId/exercise_status/:studentId.json
Finally, for complete student information you need to get them from
/:instanceId/participants.json.
To solve all of this with just one request, we suggest the following path:
/:instanceId/courses/:courseId/participants.json
which returns something like this:
{ "id": "courseId", "participants":
[
{ "id": "1", "username": "name", "first_name": "first", "last_name": "last",
"exercise_status": [
{ "exercise1": "status" }, { "exercise2": "status" }
]
}
]
}
This way we can easily find out which students are in the course, their information and which exercises they have been working on.
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 by reading the existing /:instanceId/courses/:courseId/points.json, exercise_status/:studentId.json, and /:instanceId/participants.json API entry points. Trace how each supplies course participants, student information, and exercise status. Done means /:instanceId/courses/:courseId/participants.json returns the course id and each participant with the proposed information and exercise-status fields in one response.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ruby
- Domain
- api, backend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100