CodeMaster is a web app designed to provide services for online exams. It supports single-choice questions, multiple-choice questions, and programming questions. Each candidate’s data is independent, and the app supports saving the exam paper midway through and resuming it later. The software framework of CodeMaster implements front-end and back-end separation. The front-end server is responsible for presenting the exam pages and storing user information, while the back-end server handles storing questions and grading answers. CodeMaster enables users to test their computer knowledge and programming skills.
Name: Zhuo Hu
Student number: 46486394
CodeMaster offers convenient and efficient exam solutions:
Minimum Viable Product (MVP) of CodeMaster includes:
User login/registration
User database
Exam Service
Single/Multiple Choice Question Grading
Programming Question Grading
Result Inquiry
Availability: Users can access CodeMaster’s services through a web browser on any device, at any time, and from anywhere without the need to install any special software. The software’s convenience is greatly enhanced by the minimal device requirements since users do not need to install and run software environments locally to execute source code.
Scalability: The software can be deployed using Docker on the same computer, and it also allows separating the frontend and backend deployment in high-pressure environments to alleviate stress. The software can support one frontend server with multiple backend servers to address extreme situations. (However, the design of multiple backends will not be implemented in the MVP.)
Extensibility: Due to its design of frontend-backend separation, both the frontend and backend can be replaced or updated at any time without needing to shut down the other component.
Security: The design of frontend-backend separation ensures that even if the frontend server is compromised, the backend server remains secure and unaffected. Additionally, because the entire service runs within Docker containers, it becomes challenging for attackers to extend malicious impacts beyond the Docker containers and compromise the overall system security.
Security: The security assessment will involve regular virus scans and attempts to expose the project to attacks. With the frontend-backend separation, even if the frontend server is compromised, the backend server remains secure and unaffected. Additionally, since the entire service runs within Docker containers, it becomes challenging for attackers to extend malicious impacts beyond the Docker containers and compromise the overall system security.
For the evaluation of project availability, various devices such as tablets, PCs, Macbooks, and smartphones will be used to access and utilize the service. Testing the project’s scalability can be conducted locally by simulating heavy traffic to assess its robustness under high load conditions. However, the actual performance of the project depends on the deployed platform and network bandwidth.