Aethera is a school platform. We built a desktop application for exams using Qt and C++. We wanted to:
- Make a good exam system where users must log in
- Create a question bank with many subjects and different difficulty levels
- Design a nice interface for taking exams and viewing results
- User Management: Users can create an account and log in. Passwords are protected using hashing.
- Exam Sessions: Students can take timed exams and answer multiple-choice questions.
- Question Bank: Questions are organized by subject and have different difficulty levels.
- Results & Statistics: Students can see their scores and track their progress over time.
- Multi-Platform: The application works on Windows, Linux, and macOS.
src/
├── assets/
├── core/
│ ├── db/
│ ├── session/
│ └── utils/
├── ui/
│ ├── exam/
│ ├── home/
│ ├── inbox/
│ ├── lessons/
│ ├── login/
│ ├── profile/
│ ├── register/
│ ├── schedule/
│ ├── settings/
│ ├── sidebar/
│ └── statistics/
-
MVC (Model-View-Controller): We keep the application's work separate from how it looks. The
core/folder has all the work (like saving and reading data), and theui/folder is what users see. -
Singleton: The database has one instance for the whole application. All parts of the application use the same instance.
-
Repository: We created a middle layer between the user interface and the database. The UI doesn't talk to the database directly - it asks the middle layer to get or save data. For example, when the login screen needs user data, it doesn't write SQL. Instead it does:
Database::instance().validateUser(username, password). The middle layer handles all SQL and database work.
Make sure you have the following installed:
- Qt Framework (v6.9 or higher)
- DB Browser for SQLite (desktop app)
Download and install Qt Creator from the official website.
To open the project database Aethera.db with SQLite:
- Install DB Browser for SQLite from: https://sqlitebrowser.org/dl/
- Open DB Browser for SQLite
- Click Open Database
- Select the
Aethera.dbfile - Use the Browse Data tab to view tables (for example,
users)
Open the project in Qt Creator:
- Open Qt Creator
- Click File > Open File or Project
- Select the
CMakeLists.txtfrom the project folder - Click Build > Build Project
- Denislav Dimov - @didimov24
- Georgi Georgiev - @gageorgiev24
- Aleksandar Dyanov - @avdyanov24
- Dimitar Rusev - @ddrusev24