testmycode / testmycode/tmc-server

API request: Course JSON with participants and their exercise status

Open
#185 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement lowprio
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

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 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.