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.sh
The 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.sh
Execute the following command to run the unit tests:
python3 -m unittest -v
User 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. |