Skip to content

A machine learning project for sales data analysis and forecasting. This notebook applies data preprocessing, feature engineering, and regression models to predict future sales trends.

License

Notifications You must be signed in to change notification settings

tahamohmadf19-dev/student_manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Student Management System

Author: Mohammad Taha — October 2025

Project Overview

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.

Features

  • 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.)

Technologies Used

  • 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

Database Schema

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

How to Install and Run

Option 1: Using Jupyter Notebook (Recommended for Exploration)

  1. Clone the repository:

    git clone https://github.com/tahamohmadf19-dev/student_manager.git
    cd student_manager
  2. Open the notebook:

    jupyter notebook student_management_system.ipynb
  3. Run all cells to interact with the system

Option 2: Extract and Run as Python Script

You can extract the code from the notebook and run it as a standalone Python script:

python student_management_system.py

Usage Example

When 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']

Code Structure

Classes

Student: Represents a single student with attributes and validation methods

  • set_age(): Validates age is a positive integer
  • set_email(): Validates email format using regex
  • add_material(): Adds a course to the student's list
  • remove_material(): Removes a course from the student's list

DataManager: Handles database operations and student collection

  • create_table(): Initializes the database schema
  • generate_id(): Creates sequential student IDs
  • add_student(): Adds a new student to both memory and database
  • list_students(): Returns all registered students
  • find_student(): Searches for a student by ID
  • input_one_student(): Interactive CLI for student registration

Future Enhancements

  • 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

Educational Value

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

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contact

Mohammad Taha
📧 Email: tahamohmadf19@gmail.com
🔗 LinkedIn: Mohmad Taha Alhmad
🐙 GitHub: @tahamohmadf19-dev

About

A machine learning project for sales data analysis and forecasting. This notebook applies data preprocessing, feature engineering, and regression models to predict future sales trends.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published