A modern, themeable Student Information System built with PyQt6 and MySQL.
This application allows you to manage students, programs, and colleges with a user-friendly GUI, advanced search, sorting, and multi-selection features.
-
Student, Program, and College Management
- Add, edit, delete, and search students, programs, and colleges
- Multi-row selection and deletion
- Edit dialogs with validation and themed appearance
-
Modern UI
- Custom sidebar with icons and selection highlight
- Themed tables, dialogs, tooltips, and message boxes
- Responsive layouts and accent color support
-
Advanced Table Features
- Clickable, sortable table headers
- Search bars with placeholder and icon
- Selection highlighting and keyboard shortcuts
-
Database Integration
- Uses MySQL for persistent storage
- All CRUD operations are reflected in the database
- Python 3.8+
- PyQt6
- mysql-connector-python
- MySQL Server (with a database named
student_information_system)
-
Clone the repository:
git clone <your-repo-url> cd V2.7
-
Install dependencies:
pip install PyQt6 mysql-connector-python
-
Set up the MySQL database:
- Create a database named
student_information_system. - Create the required tables (
students,programs,colleges).
Example schema:CREATE TABLE colleges ( code VARCHAR(10) PRIMARY KEY, name VARCHAR(100) NOT NULL ); CREATE TABLE programs ( code VARCHAR(10) PRIMARY KEY, name VARCHAR(100) NOT NULL, college_code VARCHAR(10), FOREIGN KEY (college_code) REFERENCES colleges(code) ON DELETE CASCADE ); CREATE TABLE students ( id_number VARCHAR(20) PRIMARY KEY, first_name VARCHAR(100) NOT NULL, last_name VARCHAR(100) NOT NULL, year_level INT NOT NULL, gender VARCHAR(10) NOT NULL, program_code VARCHAR(10), FOREIGN KEY (program_code) REFERENCES programs(code) ON DELETE CASCADE );
- Create a database named
-
Configure database credentials:
- Edit
utils/database.pyif your MySQL username, password, or host are different.
- Edit
-
Run the application:
python main.py
V2.7/
│
├── controllers/ # CRUD logic for students, programs, colleges
├── dialogs/ # Custom dialog windows for editing/adding
├── resources/ # Icons and fonts
│ ├── icons/
│ └── fonts/
├── utils/ # Database, shortcuts, and style.qss
├── main.py # Application entry point
├── gui.py # Main window and UI layout
└── README.md
-
Theme & Colors:
Editutils/style.qssto change the application's appearance. -
Icons:
Replace SVG/PNG files inresources/icons/for your own look. -
Fonts:
Place your preferred font inresources/fonts/and update the QSS if needed.
- Escape: Unselect all rows in the current table.
-
"Could not parse application stylesheet":
Checkstyle.qssfor syntax errors (no//comments, use/* ... */). -
Database connection errors:
Ensure MySQL is running and credentials inutils/database.pyare correct. -
Missing icons or fonts:
Make sure all files inresources/icons/andresources/fonts/exist.
This project is for educational purposes.
Feel free to use and modify it for your own needs.