Repository navigation
v1.0.0
Version 1.0.0
December 23, 2024
🚀 Initial Release
Core API Services
-
Auth: Login, logout, and refresh token.
POST /api/auth/login: User login.POST /api/auth/logout: User logout.POST /api/auth/refresh_token: Refresh authentication token.
-
Common: APIs that all roles can access
- User Management
GET /api/common/user_info: Fetch user information.PUT /api/common/user_info: Update user information.POST /api/common/user_profile: Update user profile image.
- Other Utilities
GET /api/common/departments: Get list of departments.POST /api/common/get_keyword_list: Retrieve keywords list.POST /api/common/keyword_check: Check validity of a keyword.GET /api/common/staffs: Get list of staff members.GET /api/common/student_submission: Retrieve student submissions.
- User Management
-
Test: Testing endpoints for infrastructure validation
GET /api/greeting: Test greeting endpoint.GET /api/test_rabbit: Test RabbitMQ functionality.GET /api/test_redis: Test Redis functionality.
-
Init: Initialization endpoints for setting up system data
POST /api/init/department: Initialize department data.POST /api/init/labclassinfo: Initialize lab class information.POST /api/init/supervisor: Initialize supervisor data.POST /api/init/ta: Initialize teaching assistant (TA) data.
-
Student: APIs for student-specific operations
GET /api/student/all_chapter: Get all available chapters.GET /api/student/assigned_exercise: Retrieve assigned exercises.GET /api/student/chapter_list: Get chapter list for a student.POST /api/student/exercise_submit: Submit exercise for evaluation.
-
Supervisor: APIs for managing groups, students, and exercises
- Exercise Management
GET /api/supervisor/assigned_student_exercise: Retrieve exercises assigned to students.PUT /api/supervisor/exercise: Update exercise details.POST /api/supervisor/exercise: Create a new exercise.DELETE /api/supervisor/exercise/{exercise_id}: Delete an exercise.GET /api/supervisor/get_exercise_data/{exercise_id}: Get exercise details.POST /api/supervisor/save_exercise_testcase: Save test cases for an exercise.
- Group Management
GET /api/supervisor/available_groups: Get available groups.POST /api/supervisor/group: Create a new group.GET /api/supervisor/group/{group_id}: Get group details.PUT /api/supervisor/my_group_info/{group_id}: Update group information.GET /api/supervisor/my_groups: Get supervisor's groups.
- Permission and Access Control
POST /api/supervisor/set_chapter_permission: Set chapter permissions.POST /api/supervisor/set_allow_group_login: Allow group login.POST /api/supervisor/set_allow_group_upload_picture: Allow group to upload pictures.PUT /api/supervisor/logout_all_student/{group_id}: Log out all students in a group.
- Student Management
GET /api/supervisor/student_info/{student_id}: Get student information.DELETE /api/supervisor/student/{stu_id}: Remove a student from the system.PUT /api/supervisor/reset_student_password/{stu_id}: Reset student password.POST /api/supervisor/students: Add students in bulk.PUT /api/supervisor/student_can_submit/{student_id}: Allow a student to submit an exercise.PUT /api/supervisor/cancle_student_submission/{submission_id}: Cancel a student's submission.POST /api/supervisor/update_all_group_assigned_chapter_item: Update all groups assigned chapters.POST /api/supervisor/update_group_assigned_chapter_item: Update assigned chapters for a specific group.
- Exercise Management
Database
- MySQL integration with migrations for seamless setup and deployment.
Storage
- MinIO: Integrated for storing data such as profile images, student code, and instructor code.
Queue
- RabbitMQ: Used for queueing operations like code submission processing.
Worker
- IPCA Worker: Used for execute code.