Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

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.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
38/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Stale
Tech stack
ruby
Domain
api, backend

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.

Description

enhancement lowprio

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.

Dominant language
Ruby
Stars
51
Forks
42
Avg merge
1h 27m
Merged PRs (30d)
1

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.

More from testmycode/tmc-server

All issues in testmycode/tmc-server

Similar issues

More Ruby issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.