Qiaqia Course Selection System Documentation
website·Indexed 29 days ago
https://se2022-qiaqia.github.io/docsDocumentation 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.
What's inside Qiaqia 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.
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/dockerQiaqia 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.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.Qiaqia Course Selection System Architecture
The system implements a three-layer MVC architecture:
- View Layer: Frontend user interface.
- Controller Layer: Handles request routing and input validation.
- 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
StudentControllerandStudentService. - Teacher Slice: Managed by
TeacherControllerandTeacherService. - Admin Slice: Managed by
AdminController. - Common Slice: Managed by
CommonControllerandCommonService.
Specialized Services:
CourseSelectService: Isolated for course selection logic to optimize performance and meet non-functional requirements.CourseService: Manages course-specific business logic and coordinates withCourseSelectService.UserService: Handles general user management.
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
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.
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
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/dockerQiaqia Course Selection System Architecture
The system implements a three-layer MVC architecture:
- View Layer: Frontend user interface.
- Controller Layer: Handles requests and routing.
- 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.
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.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.