A fully featured quiz management system built with Modern C++
and structured according to a complete UML-based Software Engineering design approach.
It supports role-based operations for Admins, Teachers, and Students.
Academic Context:
This project was developed as part of the Software Engineering (SWE) course
within the 9-Month Professional Program at the Information Technology Institute (ITI).
Repository Contents: This repository contains the full project source code, the complete SWE Backlog, and all UML Diagrams (Use Case, Activity, Sequence, Class Diagrams) used for project design.
| Name |
|---|
| Farida Ahmed Abdelaal |
| Hassan Abdelhamed Hassan |
| Hassan Muhammad Hassan |
| Marwa Ashraf Abdullah |
| Mazen Raafat Abdelhameed Mostafa |
- Real-time quiz interface
- Automatic grading
- Auto-save + forced submission on timeout
- Create quizzes with time limits
- Add / edit / remove MCQs
- View results by quiz or student
- Create and manage accounts
- Assign system roles
- Secure login validation
| Concept | Details |
|---|---|
| Inheritance | `User` extended by `Admin`, `Teacher`, `Student` |
| Abstraction | Abstract base class for user behavior |
| Encapsulation | Private fields (password, score) |
| Polymorphism | Role-specific overridden methods |
The project includes all required UML documentation:
- Use Case Diagram
- Class Diagram
- Sequence Diagrams
- Activity Diagrams
- Full Backlog (User Stories, Tasks)
All files are included in the repository.
git clone https://github.com/HassanMuhammadd/quiz-system.git
g++ -g src/*.cpp -o src/build/Debug/outDebug.exe -Iinclude
src/build/Debug/outDebug.exegit clone https://github.com/HassanMuhammadd/quiz-system.git
g++ -std=c++17 -o test/build/test_runner test/test_main.cpp src/App.cpp src/User.cpp src/Student.cpp src/Teacher.cpp src/Admin.cpp src/Quiz.cpp src/Question.cpp src/Option.cpp src/Result.cpp -I./include
./test/build/test_runner