Skip to content

PB811/School-Management-System

Repository files navigation

School Management System

A desktop School Management System built with Python + PyQt5, created as a school project by me. I made this in school, so it may not follow all the best practices, infact it doesn't follow any best practice. I made this project in school and its a very old, just putting on github:)

Python PyQt5 SQLite Platform


Features

  • Student, Teacher, Staff, and Subject management (full CRUD)
  • User authentication (login / sign-up)
  • Search and filter records in table views
  • Qt-based dark-themed GUI with image assets
  • Standalone Windows EXE — no Python installation needed on target machine

Screenshots

See Snipets of Outputs/ for screenshots of the running app.


Quick Start

Prerequisites

  • uv package manager
  • Python 3.12

Run from source

cd Code
uv sync
uv run init_sqlite.py   # first time only — creates the database
uv run SSC.py

Default login: admin / admin


Project Structure

School Management System/
├── Run.py                        # Root launcher
├── SchoolMS.spec                 # PyInstaller build spec
├── Code/
│   ├── SSC.py                    # Splash screen (entry point)
│   ├── LOGIN_PAGE.py             # Login window
│   ├── SIGN_UP_PAGE.py           # Registration
│   ├── SMS_MAIN_INTERFACE.py     # Main dashboard
│   ├── init_sqlite.py            # DB initialiser (SQLite)
│   ├── mysql/                    # mysql.connector compatibility shim (uses SQLite)
│   ├── QRC_FILES/                # Compiled Qt resource modules + raw images
│   ├── *.py                      # Feature windows (Add/Manage/Update)
│   ├── *.ui                      # Qt Designer source files
│   └── pyproject.toml
├── Forms/                        # Plain-text form layout notes
├── Flowcharts/                   # App flowchart images
└── Snipets of Outputs/           # Screenshots

Tech Stack

Layer Technology
Language Python 3.12
GUI PyQt5 (Qt Designer .ui files)
Database SQLite via mysql.connector shim
Packaging PyInstaller (Windows EXE)
Env mgmt uv

Build Windows EXE

# Install PyInstaller (one-time)
cd Code
uv add --dev pyinstaller

# Build from project root
cd ..
uv run --project Code pyinstaller SchoolMS.spec

Output: dist/SchoolMS/SchoolMS.exe

The EXE creates the database automatically on first run. No Python required on the target machine.


Application Flow

SSC (Splash Screen)
  └─► Login
        └─► Main Dashboard
              ├─► Students   (Add / Manage / Update)
              ├─► Teachers   (Add / Manage / Update)
              ├─► Staff      (Add / Manage / Update)
              ├─► Users      (Add / Manage / Update)
              └─► Subjects   (Create / Manage / Update)

License

School project — for educational use.

About

A School Management System made entirely in Python and PyQt5

Resources

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages