A back-end Web Service to manage course enrollment and waiting lists with functionality similar to TitanOnline.
Operating system: Debian-based Linux (Ubuntu, etc.)
Follow these steps to install all the required packages:
Navigate to the project directory and execute the install.sh script:
sh ./bin/install.shThe script will automatically download and install all the required packages for the project.
Including: AWS CLI, DynamoDB Local, Redis, SQlite3, foreman, KrakenD
Navigate to the project directory and execute the run.sh script:
sh run.shExecute the following command to run the unit tests:
python3 -m unittest -vUser Service >>Show Examples
| Method | Route | Description |
|---|---|---|
| POST | /api/register/ | Register a new user account. |
| POST | /api/login/ | User login. |
Enrollment Service - Endpoints for Registrars >>Show Examples
| Method | Route | Description |
|---|---|---|
| PUT | /api/auto-enrollment/ | Enable or disable auto enrollment |
| POST | /api/courses/ | Creates a new course. |
| POST | /api/classes/ | Creates a new class. |
| DELETE | /api/classes/{class_id} | Deletes a specific class. |
| PATCH | /api/classes/{class_id} | Updates specific details of a class. |
Enrollment Service - Endpoints for Students >>Show Examples
| Method | Route | Description |
|---|---|---|
| GET | /api/classes/available/ | Retreive all available classes. |
| GET | /api/waitlist/{class_id}/position/ | Get current waitlist position. |
| POST | /api/enrollment/ | Student enrolls in a class. |
| DELETE | /api/enrollment/{class_id} | Students drop themselves from a class. |
| DELETE | /api/waitlist/{class_id} | Students remove themselves from a waitlist. |
Enrollment Service - Endpoints for Instructors >>Show Examples
| Method | Route | Description |
|---|---|---|
| GET | /api/classes/{class_id}/students/ | Retreive current enrollment for the classes. |
| GET | /api/classes/{class_id}/droplist/ | Retreive students who have dropped the class |
| GET | /api/classes/{class_id}/waitlist/ | Retreive students in the waiting list |
| DELETE | /api/enrollment/{class_id}/{student_id}/administratively/ | Instructors drop students administratively. |
| Method | Route | Description |
|---|---|---|
| GET | /api/subscriptions | List subscriptions. |
| POST | /api/class/{class_id}/subscribe | Subscribe to notifications for a new course. |
| POST | /api/class/{class_id}/unsubscribe | Unsubscribe from a course. |


