Author: Mohammad Taha — October 2025
This project provides a simple yet functional Student Management System built with Python and SQLite. It demonstrates object-oriented programming principles, database integration, and input validation for managing student records.
The system allows users to add students with their personal information, academic specialization, enrolled materials, and contact details. All data is stored persistently in a local SQLite database.
- Student Registration: Add new students with validated information
- Data Validation: Email format validation and age verification
- Material Management: Add and remove course materials for each student
- Database Storage: Persistent storage using SQLite
- Interactive CLI: User-friendly command-line interface for data entry
- Auto-generated IDs: Sequential student ID generation (S001, S002, etc.)
- Python 3.x: Core programming language
- SQLite3: Lightweight database for data persistence
- Regular Expressions: For email validation
- Type Hints: For better code readability and maintainability
The system uses a single table students with the following structure:
| Column | Type | Description |
|---|---|---|
id |
TEXT (PRIMARY KEY) | Unique student identifier (e.g., S001) |
name |
TEXT (NOT NULL) | Student's full name |
age |
INTEGER (NOT NULL) | Student's age |
specialization |
TEXT | Academic specialization/major |
email |
TEXT (NOT NULL) | Student's email address |
materials |
TEXT | Comma-separated list of enrolled courses |
-
Clone the repository:
git clone https://github.com/tahamohmadf19-dev/student_manager.git cd student_manager -
Open the notebook:
jupyter notebook student_management_system.ipynb
-
Run all cells to interact with the system
You can extract the code from the notebook and run it as a standalone Python script:
python student_management_system.pyWhen you run the program, you'll be prompted to enter student information:
Enter name: Ahmad Ali
Enter specialization: Computer Science
Enter materials (if multiple, separate with comma ','): Python, Data Structures, Algorithms
Enter age: 21
Enter email (example: example@email.com): ahmad.ali@university.edu
Student added with ID: S001
Add another? (yes/no): no
All students:
ID:S001 | Name:Ahmad Ali | Age:21 | Spec:Computer Science | Email:ahmad.ali@university.edu | Materials:['Python', 'Data Structures', 'Algorithms']
Student: Represents a single student with attributes and validation methods
set_age(): Validates age is a positive integerset_email(): Validates email format using regexadd_material(): Adds a course to the student's listremove_material(): Removes a course from the student's list
DataManager: Handles database operations and student collection
create_table(): Initializes the database schemagenerate_id(): Creates sequential student IDsadd_student(): Adds a new student to both memory and databaselist_students(): Returns all registered studentsfind_student(): Searches for a student by IDinput_one_student(): Interactive CLI for student registration
- Add update and delete functionality for student records
- Implement search and filter capabilities
- Add grade tracking and GPA calculation
- Create a web-based interface using Flask or Django
- Add data export functionality (CSV, Excel)
- Implement user authentication and role-based access
This project is ideal for learning:
- Object-oriented programming in Python
- Database integration with SQLite
- Input validation and error handling
- Type hints and code documentation
- Interactive CLI development
This project is licensed under the MIT License - see the LICENSE file for details.
Mohammad Taha
📧 Email: tahamohmadf19@gmail.com
🔗 LinkedIn: Mohmad Taha Alhmad
🐙 GitHub: @tahamohmadf19-dev