project-proposal-2025

Automated examination scheduling system

Abstract

Automated exam scheduling system is one of the options to improve the efficiency of exam work, reduce labor costs and time costs, solve the large amount of data, complex preparation links and other high-risk links, can maintain data security and rigorous exam scheduling. The system can generate reports faster, and can also carry out data analysis to provide more data support for the examination work.

Author

Name: Haotian Xu

Student number: 48561491

Functionality

The system provides a few simple functions, which can automatically arrange the position of the candidates, no matter how many examinations the candidates have and how many examination rooms, it can replace manual completion, and automatically generate the test list and report.

The system has the following functions:

Scope

Quality Attributes

Interoperability

The system needs to communicate between modules through standardized RESTful API interfaces. All external systems (such as front-end pages, mobile clients, and other microservices) can interact with the back end by calling interfaces such as /login.json and /userinfo_add.json through a unified URL. The data format adopts the standard JSON, and the MyBatis mapping layer interacts with the database using native SQL to ensure compatibility with MySQL.

Extensibility

The system architecture should adopt a typical three-tier structure (Controller → Service → DAO), with each tier having a single responsibility. Through interface-oriented programming (UserInfoService interface), it is very easy to add new user roles, simply by adding new entity classes + mappings + controller methods.

Modularity

The system should divide the functions into independent package structures (such as controller, service, dao, entity, etc.) and isolate them through interfaces. The responsibilities among each module are clear, which facilitates the division of labor, maintenance and replacement logic for developers in the later stage. By introducing the MyBatis framework, the database operation layer is further abstracted, and the modules communicate with each other through explicit interfaces to reduce coupling.

Evaluation

Interoperability

To evaluate the scalability of the system, it is necessary to conduct standardized checks on the apis, such as whether the interfaces are based on the standard HTTP protocol and JSON, whether the front end does not rely on Java-specific protocols, and whether it can support curl/Postman/mock server calls.

Extensibility

Evaluate whether the system can easily add new login roles (such as type=3), whether it can support adding new table fields without refactoring the Controller code, and whether it can dynamically expand front-end fields and make non-intrusive modifications at the back end.

Modularity

Evaluate whether the architecture has a clear package structure (controller, service, dao), whether the service layer can be tested separately, whether the Mapper is decoupled from the database (SQL and logic are separated), and whether the modules interact through interfaces (non-hard-coded dependencies).