Qiaqia Course Selection System Documentation

website·Indexed 29 days ago

https://se2022-qiaqia.github.io/docs

Documentation for a B/S architecture online course selection system designed for administrators, students, and teachers. The project features a Vue frontend and a SpringBoot/Gin backend with docker-compose deployment. The docs include requirement analysis, detailed design specifications, API interface definitions for college and course management, software planning, and test plans.

Tokens
18.3K
Snippets
63
Records
156
Agent score
73%

What's inside Qiaqia Course Selection System

  1. Overview of the Secure and Reliable Course Selection System

    The Secure and Reliable Course Selection System is designed for comprehensive university environments to support periodic and structured course selection activities and academic management. It serves three primary user roles: Administrators, Students, and Teachers. The system focuses on providing course selection functionality for students and academic information management and statistics for administrators, with a specific emphasis on ensuring fairness in selection, resilience against high-density traffic spikes, and overall system security.
  2. Overview of the Course Selection System Architecture

    The system is a decoupled Web application (frontend and backend separation). The frontend is developed using Vue, and the backend is implemented using either SpringBoot or Gin. The project supports one-click deployment via docker-compose.
    # Deployment is supported via docker-compose
    # Refer to: https://github.com/SE2022-Qiaqia/docker
  3. Qiaqia Course Selection System Overview

    The Qiaqia Course Selection System is a B/S architecture-based online platform designed for comprehensive university environments. It manages periodic and structural course selection activities and general academic administration for three primary roles: Administrators, Students, and Teachers. The system focuses on fairness in selection, resilience under high-density access, and security.
  4. Qiaqia Course Selection System Overview

    The Qiaqia Course Selection System is a B/S architecture online platform designed for comprehensive university environments. It manages periodic and structural course selection activities and academic administration for three primary roles: Administrators, Students, and Teachers. The system focuses on fairness in selection, resilience under high-density traffic, and security.
  5. Qiaqia Course Selection System Architecture

    The system implements a three-layer MVC architecture:

    1. View Layer: Frontend user interface.
    2. Controller Layer: Handles request routing and input validation.
    3. Service/Model Layer: Contains business logic and interacts with the DAO layer for database access.

    The system is vertically partitioned into four functional slices based on user roles:

    • Student Slice: Managed by StudentController and StudentService.
    • Teacher Slice: Managed by TeacherController and TeacherService.
    • Admin Slice: Managed by AdminController.
    • Common Slice: Managed by CommonController and CommonService.

    Specialized Services:

    • CourseSelectService: Isolated for course selection logic to optimize performance and meet non-functional requirements.
    • CourseService: Manages course-specific business logic and coordinates with CourseSelectService.
    • UserService: Handles general user management.
  6. Qiaqia Course Selection System Technical Stack

    The Qiaqia Course Selection System is built using the following technical stack:

    • Backend Frameworks: SpringBoot, Mybatis, Gin
    • Data Persistence: MySQL
    • Caching: Redis
    • Security & Authorization: JWT
    • Key Algorithm: Course schedule conflict detection
  7. Qiaqia Course Selection System Data Model

    The system's data architecture is based on the following entities and relationships:

    • Core Entities: Course, Student, Teacher, Administrator, Grade, and Enrollment Record.
    • Key Relationships:
      • Administrators can add Students and Teachers.
      • Teachers are associated with the Courses they teach.
      • Students are associated with the Courses they select.
      • The relationship between Students and Courses includes a 'Grade' attribute.
  8. Qiaqia Course Selection System Technical Stack

    The Qiaqia Course Selection System is built using the following technical stack:

    • Backend Frameworks: SpringBoot, Mybatis, Gin
    • Data Persistence: MySQL
    • Caching: Redis
    • Security & Authorization: JWT
    • Core Algorithm: Class schedule conflict detection
  9. System architecture and deployment overview

    The system is a decoupled Web application featuring a Vue-based frontend and a backend implemented using either SpringBoot or Gin. It supports one-click deployment via docker-compose.
    # Deployment repository
    https://github.com/SE2022-Qiaqia/docker
  10. Qiaqia Course Selection System Architecture

    The system implements a three-layer MVC architecture:

    1. View Layer: Frontend user interface.
    2. Controller Layer: Handles requests and routing.
    3. Service/Model Layer: Contains business logic and interacts with the DAO layer for database access.

    Vertical Slicing (User Permissions):

    • StudentController: Student-specific services.
    • TeacherController: Teacher-specific services.
    • AdminController: Administrator-specific services.
    • CommonController: Shared public services.

    Key Service Components:

    • StudentService: Student business logic.
    • CourseSelectService: Isolated course selection logic for optimization and non-functional requirements.
    • CourseService: Course management logic.
    • UserService: User management logic.
    • TeacherService: Teacher business logic.
    • CommonService: General utility business logic.
  11. Student course selection process

    Students can select courses after successful login. The workflow is: 1. The student requests to start course selection. 2. The system retrieves and displays a list of available courses based on specific type characteristics. 3. The student submits a course selection form. 4. The system processes each request: if approved, the course is added to the student's schedule and the student is added to the course list; if rejected, the student is notified of the failure.
  12. Create a new user account as an Administrator

    Administrators can create new accounts through the following sequence: 1. Submit a request to create a new account. 2. The system creates an empty account and prompts for permission settings. 3. The administrator sets and submits the account permissions. 4. The system prompts for basic user information. 5. The administrator submits the basic information, and the system confirms the account creation.