Student Management System
Project Brief Note • Computer Science Department
Project Overview
This project is a web-based Student Management System designed to simplify academic data
handling in college environments. The system enables administrators to manage student records,
track attendance, record grades, and view performance analytics — all through a clean, intuitive
dashboard without requiring any complex database server setup.
The application follows a three-tier MVC architecture, clearly separating the presentation layer,
application logic, and data layer. Core features include full student CRUD operations, smart search
and filtering, subject-wise grade tracking with visual progress bars, and date-wise attendance logging
with Present/Absent status indicators.
Technology Stack
Technology Role Purpose
Python 3.x Core Language Primary programming language for all backend logic
Flask Web Framework Routing, form handling, and Jinja2 template rendering
SQLite Database Serverless relational DB; no installation required
Jinja2 Template Engine Dynamic HTML rendering with data passed from Flask
HTML5 / CSS3 Frontend UI Responsive, dark-themed interface with modern styling
JavaScript Client Interactivity Form validation and live search functionality
System Architecture
The system is structured into three layers: the Presentation Layer (HTML, CSS, JS) handles all user
interaction; the Application Layer (Python Flask) processes requests, performs CRUD operations
and renders templates via Jinja2; and the Data Layer (SQLite) stores all records across three
normalized tables — students, grades, and attendance — with foreign key relationships ensuring
data integrity.
Database Design
The SQLite database is auto-initialised on first run with three core tables. The students table stores
roll number, name, email, phone, course and year. The grades table links to students via foreign key
and stores subject, marks, max marks and letter grade. The attendance table records date, subject
and Present/Absent status per student. Sample seed data is inserted automatically for demo
purposes.
Key Features
■ Student CRUD: Add, edit, delete and view full student profiles with roll number validation.
■ Smart Search: Filter students instantly by name, roll number, or course with a clear option.
■ Grade Tracking: Subject-wise marks with auto letter-grade assignment and progress bars.
■ Attendance Log: Date and subject-wise attendance with Present/Absent status badges.
■ Analytics Dashboard: Top performers by average score and recently added students at a glance.
■ Zero Setup DB: SQLite database requires no installation — created and seeded automatically.
Conclusion
The Student Management System successfully demonstrates full-stack web development using
beginner-friendly yet industry-relevant tools. It covers database normalization, MVC design patterns,
REST-style routing, and dynamic templating — making it an ideal college practical project. The
system is easily extendable with features such as login authentication, PostgreSQL migration, PDF
report export, and mobile API integration.
Python Flask SQLite Jinja2 HTML5 CSS3 JavaScript