Skip to content

DIDimov24/Aethera

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 

Repository files navigation

Aethera

qt logo

Status Last Commit Issues

qt logo cplusplus logo cmake logo sqlite logo

Table of Contents

Project Description

Objectives

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

Features

  • 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.

Architecture

Project Structure

src/
├── assets/
├── core/
│   ├── db/
│   ├── session/
│   └── utils/
├── ui/
│   ├── exam/
│   ├── home/
│   ├── inbox/
│   ├── lessons/
│   ├── login/
│   ├── profile/
│   ├── register/
│   ├── schedule/
│   ├── settings/
│   ├── sidebar/
│   └── statistics/

Design Patterns

  • 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 the ui/ 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.

Getting Started

Prerequisites

Make sure you have the following installed:

  • Qt Framework (v6.9 or higher)
  • DB Browser for SQLite (desktop app)

Installation

Download and install Qt Creator from the official website.

To open the project database Aethera.db with SQLite:

  1. Install DB Browser for SQLite from: https://sqlitebrowser.org/dl/
  2. Open DB Browser for SQLite
  3. Click Open Database
  4. Select the Aethera.db file
  5. Use the Browse Data tab to view tables (for example, users)

Building

Open the project in Qt Creator:

  1. Open Qt Creator
  2. Click File > Open File or Project
  3. Select the CMakeLists.txt from the project folder
  4. Click Build > Build Project

Contributors

About

Aethera is a 9th grade Qt/C++ desktop school platform for accounts, timed multiple-choice exams from a subject-based question bank, and results/statistics.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors