Skip to content

Latest commit

Β 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation


Python Flask Next.js TypeScript MySQL JWT


License Status Made with Love by Muzammil


A production-grade, role-based academic management platform β€” digitizing student records, teacher data, attendance workflows, and admin operations in one unified system.


πŸš€ Live Demo Β· πŸ“– Documentation Β· πŸ› Report Bug Β· πŸ’‘ Request Feature



πŸ“Έ Product Gallery


πŸ” Authentication

Login Page Sign Up Page
Login Page Sign Up Page
Secure JWT-based login New admin registration

πŸ–₯️ Admin Dashboard

Main Dashboard Navigation & Sidebar
Admin Dashboard Admin Navigation
Real-time overview of all modules Fast sidebar navigation

πŸ‘¨β€πŸŽ“ Student Management

Students List Add Student Edit Student
Students List Add Student Form Edit Student Form
All student records Add new student Update student info

πŸ‘©β€πŸ« Teacher Management

Teachers List Add Teacher Edit Teacher
Teachers List Add Teacher Form Edit Teacher Form
Full teacher directory Create teacher record Update teacher info

πŸ“‹ Attendance Management

Attendance Overview Mark Attendance
Attendance Overview Mark Attendance
History & summary view Daily attendance marking

🎬 Full Demo Video

Watch the complete platform walkthrough β€” login β†’ dashboard β†’ students β†’ teachers β†’ attendance

Watch Full Demo Video


🧩 Why This Project Exists

Most educational institutes still manage students and attendance manually β€” leading to chaos, errors, and wasted time.

❌ Old Way βœ… With SMS
Manual registers & paper records Centralized digital database
Data duplication & inconsistencies Single source of truth
Slow attendance reporting Real-time tracking & history
No access control Role-based JWT authentication
Scattered teacher & student data Unified admin dashboard

✨ Features at a Glance

πŸ” Authentication & Security
  • JWT-based secure login flow
  • Password hashing with bcrypt
  • Protected API routes for all sensitive operations
  • Token-based session management on frontend
πŸ‘¨β€πŸŽ“ Student Management
  • Add students with full academic profiles
  • Update, delete, and fetch student records
  • Clean table/list views in admin panel
πŸ‘©β€πŸ« Teacher Management
  • Create and maintain teacher records
  • Manage subject assignments
  • Update or remove teacher entries from directory
πŸ“‹ Attendance Management
  • Mark daily attendance per student per date
  • Track present / absent status
  • View complete attendance history via API and UI
πŸ–₯️ Admin Dashboard
  • Unified admin panel for all operations
  • Fast navigation between modules
  • Form-driven CRUD workflows

πŸ—οΈ System Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                   FRONTEND LAYER                        β”‚
β”‚          Next.js 14 + TypeScript + Tailwind CSS         β”‚
β”‚              shadcn/ui Β· Radix UI Components            β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                         β”‚  HTTP / JSON (REST API)
                         β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                   BACKEND LAYER                         β”‚
β”‚            Flask REST API + JWT Auth                    β”‚
β”‚        SQLAlchemy ORM Β· Marshmallow Schemas             β”‚
β”‚          Flask-Bcrypt Β· Flask-CORS Β· PyMySQL            β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                         β”‚  SQL Queries
                         β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                   DATABASE LAYER                        β”‚
β”‚                  MySQL 8.0 Database                     β”‚
β”‚                  sms_task1 Schema                       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ› οΈ Tech Stack

Backend

Python Flask SQLAlchemy MySQL JWT

Frontend

Next.js TypeScript Tailwind CSS React


πŸ“ Project Structure

SMS-Frontend-Backend/
β”‚
β”œβ”€β”€ πŸ“‚ BackEnd/
β”‚   β”œβ”€β”€ app.py                    # Flask app entry point
β”‚   β”œβ”€β”€ requirements.txt          # Python dependencies
β”‚   └── src/
β”‚       β”œβ”€β”€ __init__.py           # App factory & config
β”‚       β”œβ”€β”€ extentions.py         # Flask extensions init
β”‚       β”œβ”€β”€ models/               # SQLAlchemy DB models
β”‚       β”œβ”€β”€ routers/              # API route handlers
β”‚       β”‚   β”œβ”€β”€ auth_router.py
β”‚       β”‚   β”œβ”€β”€ students_router.py
β”‚       β”‚   β”œβ”€β”€ teachers_router.py
β”‚       β”‚   β”œβ”€β”€ attendance_router.py
β”‚       β”‚   └── admin_router.py
β”‚       └── schemas/              # Marshmallow serializers
β”‚
└── πŸ“‚ FrontEnd/
    β”œβ”€β”€ app/                      # Next.js App Router pages
    β”œβ”€β”€ components/               # Reusable UI components
    β”œβ”€β”€ hooks/                    # Custom React hooks
    β”œβ”€β”€ lib/                      # Utilities & API helpers
    └── package.json

⚑ Quick Start

Prerequisites

Make sure you have the following installed:

Tool Version
Python 3.10+
Node.js 18+
MySQL 8.0+
npm / pnpm Latest

Step 1 β€” Clone the Repository

git clone https://github.com/your-username/SMS-Frontend-Backend.git
cd SMS-Frontend-Backend

Step 2 β€” Backend Setup

cd BackEnd

# Create virtual environment
python -m venv .venv

# Activate β€” Windows
.\.venv\Scripts\Activate.ps1

# Activate β€” macOS/Linux
source .venv/bin/activate

# Install dependencies
pip install -r requirements.txt

Step 3 β€” Database Setup

-- Run in MySQL client
CREATE DATABASE sms_task1;

Then update the DB URI in BackEnd/src/__init__.py:

# Replace with your MySQL credentials
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:YOUR_PASSWORD@localhost/sms_task1'

Step 4 β€” Frontend Setup

# From project root
cd FrontEnd

npm install
# or
pnpm install

Create .env.local file in FrontEnd folder:

NEXT_PUBLIC_API_BASE_URL=http://localhost:5000/api

Step 5 β€” Run the Application

Terminal 1 β€” Start Backend:

cd BackEnd
python app.py
# Running on http://localhost:5000

Terminal 2 β€” Start Frontend:

cd FrontEnd
npm run dev
# Running on http://localhost:3000

πŸŽ‰ Open http://localhost:3000 in your browser!


πŸ”Œ API Reference

All routes are prefixed with /api

Module Prefix Description
Auth /api/auth Login, token management
Students /api/students CRUD for student records
Teachers /api/teachers CRUD for teacher records
Attendance /api/attendance Mark & view attendance
Admin /api/admin Admin management

πŸ”§ Troubleshooting

⚠️ Hydration Warning in Frontend
  • Test in Incognito / Private mode
  • Temporarily disable browser extensions
⚠️ CORS / API Connectivity Issue
  • Confirm backend is running on port 5000
  • Check NEXT_PUBLIC_API_BASE_URL matches backend URL exactly
⚠️ MySQL Connection Error
  • Verify MySQL service is running
  • Confirm sms_task1 database exists
  • Double-check credentials in BackEnd/src/__init__.py

πŸ”’ Security Note

⚠️ Current config has JWT secret and DB URI hardcoded for development.
Before deploying to production, move all sensitive values to environment variables (.env).


πŸ—ΊοΈ Roadmap & Future Vision

βœ… Currently Implemented

  • JWT Authentication & bcrypt password hashing
  • Student CRUD β€” full profile management
  • Teacher CRUD β€” directory & subject management
  • Attendance Tracking β€” mark & view history
  • Admin Dashboard β€” unified control panel
  • REST API with modular router structure

πŸ”° Phase 2 β€” Coming Soon (Basic Enhancements)

  • Environment-based config via .env
  • Role-based UI route guards on frontend
  • πŸ“Š Reports & Analytics β€” attendance %, monthly summaries, PDF export
  • πŸ” Search & Filter β€” find students by name, class, or roll number
  • πŸ“ Student Result Management β€” enter marks, generate result cards
  • πŸŒ™ Dark Mode β€” light/dark theme toggle
  • πŸ“€ Bulk Import via Excel/CSV β€” add multiple students at once
  • Unit & integration tests
  • Docker deployment setup
  • Swagger / OpenAPI documentation

🟑 Phase 3 β€” Growth Features (Mid Term)

  • πŸ‘¨β€πŸ‘©β€πŸ‘§ Parent Portal β€” parents view child's attendance & results
  • πŸ“§ Email Notifications β€” auto email to parents on absence
  • 🏫 Multi-Class & Section Support β€” manage multiple classes simultaneously
  • πŸ“… Timetable Management β€” weekly class schedule builder
  • πŸ’³ Fee Management β€” fee records, due dates, payment history tracking
  • πŸ“± Fully Responsive Mobile UI β€” optimized for all screen sizes

πŸ€– Phase 4 β€” AI-Powered Features (Advanced)

Powered by LangChain Β· LangGraph Β· Generative AI

  • πŸ€– AI Admin Chatbot β€” ask "Who had less than 50% attendance this month?" and get instant answers
  • πŸ“ˆ Dropout Risk Prediction β€” AI flags students at risk based on attendance patterns
  • 🧠 Smart Report Generation β€” generate reports using natural language commands
  • πŸ“ Auto Performance Analysis β€” AI identifies weak areas per student and suggests improvements
  • πŸ—£οΈ Voice Attendance β€” mark attendance via voice commands

πŸ† Phase 5 β€” SaaS & Scale (Long Term Vision)

  • 🏫 Multi-School SaaS Platform β€” onboard multiple institutions on one platform
  • πŸ’° Subscription Tiers β€” Free / Basic / Pro plans for institutes
  • πŸ“² Mobile App β€” React Native iOS & Android app
  • πŸ“Š Super Admin Dashboard β€” platform-wide analytics across all schools
  • πŸ”— Third-Party Integrations β€” connect with LMS platforms and government portals

πŸ’‘ This project is actively growing. New features are added regularly based on real institute needs and community feedback. Star ⭐ the repo to stay updated!


πŸ‘¨β€πŸ’» Author

Muzammil Hussain

AI & Backend Developer | Generative AI | Agentic AI Systems

LinkedIn GitHub Email


⭐ If this project helped you, please give it a star! It means a lot.

Built with ❀️ by Muzammil Hussain β€” Pakistan πŸ‡΅πŸ‡°

About

Full-stack Student Management System with Flask & Next.js

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages