A modern Student Management System built in C++ using GTK GUI and CSS styling, as part of our Data Structures course project.
- Yasmine Bassem
 - Marwa Hamza
 - Yahia Mohamed
 - Youssef Samy
 
- 🖥️ 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
 
To run this project, you need to install:
- GTK (via MSYS2)
 - GCC Compiler
 - Code::Blocks (or any C++ IDE)
 
Download and install MSYS2 from https://www.msys2.org
pacman -Syu
pacman -Supacman -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- 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).
 
📽️ Click here to watch the demo
- Open the project in Code::Blocks
 - Make sure all dependencies are correctly set (as above)
 - Build & Run the project