A desktop application built with Python, Tkinter, and SQLite for managing students, courses, and academic results.
| Module | What it does |
|---|---|
| Register | Create a new admin account |
| Login | Authenticate with email & password; shows an analog clock |
| Dashboard | Overview with total counts; navigate to all sub-modules |
| Course | Add / Update / Delete / Search courses |
| Student | Add / Update / Delete / Search student records |
| Result | Enter marks for a student (auto-calculates percentage) |
| Report | Search a result by Roll No.; view grade; delete a record |
student_management_system/
├── main.py ← Start the app here
├── login.py
├── register.py
├── dashboard.py
├── course.py
├── student.py
├── result.py
├── report.py
├── create_db.py ← Run to (re-)create the database
├── utils.py ← Shared image-path helper & clock drawing
├── requirements.txt
├── database/
│ ├── db_config.py ← Central DB connection & schema creation
│ └── rms.db ← SQLite database (auto-created on first run)
└── images/ ← All UI images
├── bg2.jpeg ← Registration background
├── side.jpg ← Left decorative image on registration page
├── logo.jpg ← Header logo
├── dash3.png ← Dashboard banner image
├── resultimg.jpg ← Result module decorative image
├── frame.png ← Clock face background
└── clock.png ← Generated clock face (auto-written at runtime)
- Python 3.8+
tkinter(built-in with standard Python)Pillow(third-party)
# 1. Clone or unzip the project
cd student_management_system
# 2. (Recommended) Create a virtual environment
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 3. Install dependencies
pip install -r requirements.txtThe database is created automatically when you run the app for the first time. To set it up manually, or to reset a corrupted database:
python create_db.pyThis creates database/rms.db with four tables: employee, course, student, result.
python main.pyOr, to launch the login window directly:
python login.py- Run
python main.py. - Click "Register New Account?" to create an admin account.
- Log in with those credentials.
- From the dashboard, add Courses first, then Students, then Results.
| Problem | Solution |
|---|---|
ModuleNotFoundError: No module named 'PIL' |
Run pip install Pillow |
ModuleNotFoundError: No module named 'tkinter' |
Install python3-tk (Linux) or reinstall Python with Tk support |
| App opens but images are missing / white | Ensure the images/ folder is in the same directory as main.py |
| Database locked / corrupted | Delete database/rms.db and run python create_db.py |
| Login window is not full-screen on Linux | self.root.state("zoomed") may not work on some Linux WMs; resize manually |
| Subprocess windows flash and close | Make sure all .py files are in the same student_management_system/ folder |
CREATE TABLE employee (
eid INTEGER PRIMARY KEY AUTOINCREMENT,
f_name TEXT, l_name TEXT, contact TEXT,
email TEXT UNIQUE, question TEXT, answer TEXT, password TEXT
);
CREATE TABLE course (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT UNIQUE, duration TEXT, charges TEXT, description TEXT
);
CREATE TABLE student (
roll TEXT PRIMARY KEY,
name TEXT, email TEXT, gender TEXT, dob TEXT, contact TEXT,
addmission TEXT, course TEXT, state TEXT, city TEXT, pin TEXT, address TEXT
);
CREATE TABLE result (
rid INTEGER PRIMARY KEY AUTOINCREMENT,
roll TEXT, name TEXT, course TEXT,
marks_ob REAL, full_marks REAL, per REAL
);