Skip to content

iamroidev/School-Management-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

School Management System

Full school administration web app — role-based dashboards for Admin, Staff, and Students covering courses, enrollment, attendance, exams, analytics, announcements, and academic calendar.


Table of Contents


System Design

A server-rendered Flask application organized into blueprints for attendance, exams, analytics, announcements, and calendar management. All data flows through pyodbc to SQL Server with Windows authentication.

flowchart TB
  Browser[Browser]
  Flask[Flask App]
  Blueprints[Route Blueprints]
  SQL[(SQL Server)]
  Templates[Jinja2 ~50 templates]

  Browser --> Flask
  Flask --> Blueprints
  Flask --> Templates
  Blueprints --> SQL
Loading
Module Role
app.py Core routes, student/course CRUD, enrollment
auth.py Login, register, password flows
attendance.py Take and view attendance by course
exams.py Create exams, grade, publish results
analytics.py Dashboard metrics and audit logs

Features

  • Role-based dashboards: Admin, Staff, Student
  • Student profiles, GPA tracking, course browse and enroll
  • Course CRUD, enrollment management, grade entry
  • Attendance tracking per course
  • Exam creation, grading, and results
  • Announcements and academic terms/calendar
  • Analytics dashboard, audit logs, user management
  • Database backup to .bak files
  • Auth: login, register, forgot/change password

Technology Stack

Component Technology
Backend Flask 2.3, python-dotenv
Database Microsoft SQL Server via pyodbc
Auth Windows Trusted Connection (ODBC)
Templates Jinja2 (~50 HTML templates)
Frontend assets Static CSS, JS, images

Getting Started

Prerequisites

  • Python 3.8+
  • Microsoft SQL Server
  • ODBC Driver 17 for SQL Server

Setup

pip install -r requirements.txt

# 1. Create and populate database — run sql_scripts/ in SQL Server
# 2. Update config.py with your server name and database

python app.py
# → http://localhost:5000 (debug mode)

Configuration

Variable Where Notes
SECRET_KEY config.py Optional; random hex if unset

SQL Server connection is configured in config.py (server host, database name, ODBC driver). Update these values for your machine — defaults target a local Windows SQL Server instance.


Deployment

Designed for on-premises Windows + SQL Server:

  1. Provision SQL Server and run sql_scripts/
  2. Update config.py connection settings
  3. Run Flask behind IIS or a production WSGI server

No Docker or cloud deploy config included.


Project Structure

School-Management-System/
├── app.py, auth.py, config.py, models.py
├── attendance.py, exams.py, analytics.py
├── announcements.py, calendar_manager.py
├── templates/          # ~50 Jinja templates
├── static/               # css/, js/, images/
└── sql_scripts/          # DB setup and seed data

License

See repository for license terms.

About

School management database application built with Flask and SQL.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors