Skip to content

The School Database System is a simple command-line application for managing student and lesson information. It allows you to add, update, delete, and view student and lesson records in a SQLite database.

Notifications You must be signed in to change notification settings

nabilBouzineDev/School-Database-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Understand the Problem

Problem Overview

Problem Definition: School Management System for Lessons and Student Management

Current Situation: Schools currently manage lessons and student enrollment manually, using paper-based systems or spreadsheets. This process is time-consuming, error-prone, and inefficient.

Desired Situation: The school needs a database based system to manage lessons and student enrollment efficiently. The system should allow users to view student information, manage enrolled lessons, add, update, and delete student records, and view student information.

User Stories

user_stories

Design Solution

Database Design

Schema Conceptual & Logical Design Schema Markup
schema
show schema code
student
---
id PK int
first_name string
last_name string
age int
grade string
enrol_date datetime default=GETUTCDATE()

student_lesson
---
id pk
student_id int FK >- student.id
lesson_id int FK >- lesson.id

lesson
---
id PK int
name string

Algorithm Design

Algorithm

f1_flowchart

Algorithm

f2_flowchart

Algorithm

f3_flowchart

Algorithm

f4_flowchart

Implement Solution

Project File Structure

SchoolDbSystem/
│
├── modeling/
│   ├── feature_one/
│   │   ├── add_new_student.pseudo
│   │   └── add_new_student.txt
│   ├── feature_two/
│   │   ├── update_old_student.pseudo
│   │   └── update_old_student.txt
│   ├── feature_three/
│   │   ├── delete_student.pseudo
│   │   └── delete_student.txt
│   ├── feature_four/
│   │   ├── select_student_info.pseudo
│   │   └── select_student_info.txt
│
├── src/
│   ├── db/
│   │   └── data.db
│   ├── utils/
│   │   ├── util_display.py
│   │   └── util_validations.py
│   ├── database.py
│   └── app.py
│
├── tests/
│   └── test_database.py
│
├── requirements.txt
├── readme.md
└── .gitignore

Demo

Feature 01: Add Student

feature_01


Feature 02: Update Student

feature_02


Feature 03-04: Delete-Display Student

feature_03_04


Getting Started

To get started with the School Database System, follow these steps:

Run Locally

  1. Clone the project to your local machine:
 git clone https://github.com/nabilBouzineDev/School-Database-System.git
  1. Navigate to the project directory:
 cd School-Database-System
  1. Install the required packages:
 pip install -r requirements.txt
  1. Navigate to the src directory:
 cd src
  1. Create a new directory for the database:
 mkdir db
  1. Run the app.py file to start the application:
 python app.py

Run Tests

  1. Navigate to the project directory:
 cd School-Database-System
  1. Run the test_database.py unittest:
 python -m unittest tests/test_database.py

Disclaimer

  • The project is designed to practice software engineering principles and best practices.
  • You may found differences between the design and implementation due to language limitations and other factors.

Links

Any Question? Contact Me:

linkedin github

About

The School Database System is a simple command-line application for managing student and lesson information. It allows you to add, update, delete, and view student and lesson records in a SQLite database.

Topics

Resources

Stars

Watchers

Forks

Languages