Skip to content

v1.0.0

Choose a tag to compare

@Bourbxn Bourbxn released this 24 Dec 15:28
· 5 commits to release/v1.0.0 since this release
2cfe3a3

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

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