A terminal-based Student Management System built with pure Python — no external libraries required. Designed to manage student records, calculate grades, generate class reports, and export data — all from a clean command-line interface.
- Add Students — Store name, class, roll number, subjects, marks, and attendance
- Smart Roll Number Validation — Roll number format enforced by class (e.g., Class 10 →
1001,1002) - Search Students — Search by roll number or name; handles duplicate names with class-level disambiguation
- Update Marks — Add new subjects, update existing marks, or remove subjects
- Display Marksheet — Auto-calculates percentage, grade (A–F), and pass/fail status
- Class Report — Shows class-wide stats: highest/lowest marks, average score, failed count, top 3 rankers
- Export Report — Saves class report as a
.txtfile with timestamp - Top Rankers — Displays top 3 students of any class sorted by percentage
- Admin Delete — Password-protected student deletion
| Concept | Where Used |
|---|---|
| Dictionaries | Core data store (students dict) |
| Functions & Modularity | Each feature is its own isolated function |
| Input Validation | Roll number format, negative marks, class range |
| String Methods | .strip(), .lower(), .split(), .isdigit() |
| List Operations | zip(), append(), pop(), index() |
| Sorting with Lambda | sorted() with key=lambda for ranking |
| File I/O | open(), write(), Path, os for export |
datetime module |
Timestamps on creation and updates |
| Error Handling | try/except ValueError throughout |
| Conditional Logic | Grade logic, pass/fail, search disambiguation |
Smart_Student_Management_System/
│
├── SSMS.py # Main application — all modules in one file
└── README.md # Project documentation
Requirements: Python 3.7 or above. No pip installs needed.
# Step 1: Clone the repo
git clone https://github.com/YOUR_USERNAME/Smart-Student-Management-System.git
# Step 2: Navigate into the folder
cd Smart-Student-Management-System
# Step 3: Run the program
python SSMS.pyOn some systems use
python3instead ofpython
Smart Student Management System
1. Add Student
2. Search Student
3. Update Marks
4. Show All Students
5. Generate Class Report
6. Export Report (TXT)
7. Top Rankers
8. Delete Student (Admin)
9. Exit
Adding a student:
Enter Student Name: Rahul Sharma
Enter Class (1–12): 10
Roll No. format for Class 10: 1001, 1002 ...
Enter Roll Number: 1001
Enter Attendance Percentage: 85
Enter Subjects (comma separated): Maths, Science, English
Enter Marks (comma separated): 88, 76, 91
✅ Student added successfully
Viewing marksheet output:
===== MARKSHEET =====
Name: Rahul Sharma
Class: 10
Attendance: 85 %
Maths : 88
Science : 76
English : 91
Percentage: 85.0
Grade: B
Status: PASS
======================
To delete a student record, admin credentials are required:
Username: admin
Password: admin@123
| Problem | Fix |
|---|---|
python: command not found |
Use python3 SSMS.py instead |
SyntaxError on run |
Make sure you're on Python 3.7+ — check with python --version |
| Export file not found | The .txt file saves in the same folder as SSMS.py — check there first, then ~/Downloads |
| Marks not saving after program exits | Data is stored in memory (no database) — this is by design for simplicity |
| Roll number rejected | Format must match class — Class 10 → starts with 10 (e.g., 1001, 1002) |
Invalid numeric input error |
Make sure marks and attendance are numbers, not text |
- No external libraries — Entire project uses Python's standard library only (
datetime,os,pathlib) - In-memory storage — Data lives in a Python dictionary during runtime; intentionally kept simple (no SQLite/CSV persistence) to keep focus on core Python logic
- Modular functions — Each menu option maps to its own function, keeping code readable and maintainable
- Smart search — If two students share the same name, the system asks for class → then roll number to resolve ambiguity
- CSV/JSON persistence to save data between sessions
- SQLite database integration
- GUI using
tkinter - Web interface using Flask
- PDF marksheet generation using
reportlab
Built as a Python project to demonstrate core programming concepts — data structures, modular design, file I/O, and input validation — without relying on any third-party packages.