Skip to content

A GTK3/C++ application for managing student records with CRUD operations (Create, Read, Update, Delete), grade tracking, and data persistence. Features a clean CSS-styled interface and efficient file storage.

Notifications You must be signed in to change notification settings

Yasmine-Bassem/Student-Database-with-GUI

Repository files navigation

🚀 Student Database System | Modern GUI & Cache System in C++

A modern Student Management System built in C++ using GTK GUI and CSS styling, as part of our Data Structures course project.

💻 Team Members

  • Yasmine Bassem
  • Marwa Hamza
  • Yahia Mohamed
  • Youssef Samy

✨ Key Features

  • 🖥️ GTK GUI – Styled using CSS for a modern user experience
  • 🔗 Linked List Implementation – O(1) insertion/deletion, O(n) traversal
  • 💾 CSV Cache System – Persistent file storage and auto-load on startup
  • ✏️ CRUD Operations – Create, Read, Update, Delete with full input validation
  • 📊 Grade Management – Track and calculate subject grades
  • Validation System – Check for:
    • Duplicate student IDs
    • Alphabetic name formatting
    • Grade range (0–100)
  • Error Handling – Clear messages for invalid actions
  • 🔧 Modular Architecture – UI, logic, and data layers separated

📸 Screenshot

1


🧩 Requirements

To run this project, you need to install:

  • GTK (via MSYS2)
  • GCC Compiler
  • Code::Blocks (or any C++ IDE)

⚙️ Setup Instructions (Windows)

1. Install MSYS2:

Download and install MSYS2 from https://www.msys2.org

2. Update packages:

pacman -Syu
pacman -Su

3. Install dependencies:

pacman -S mingw-w64-x86_64-gtk3 mingw-w64-x86_64-gcc mingw-w64-x86_64-pkg-config
pacman -S mingw-w64-x86_64-atk
pacman -S mingw-w64-x86_64-gdk-pixbuf2
pacman -S mingw-w64-x86_64-harfbuzz
pacman -S mingw-w64-x86_64-pango
pacman -S mingw-w64-x86_64-cairo

4. Setup Code::Blocks:

  • Go to Settings > Compiler > Search Directories
  • Add paths for MSYS2 MinGW include and lib folders.
  • In Linker settings, add required GTK libraries (no need to include full path).

🎥 Demo Video

📽️ Click here to watch the demo


📁 How to Run

  1. Open the project in Code::Blocks
  2. Make sure all dependencies are correctly set (as above)
  3. Build & Run the project

About

A GTK3/C++ application for managing student records with CRUD operations (Create, Read, Update, Delete), grade tracking, and data persistence. Features a clean CSS-styled interface and efficient file storage.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published