Skip to content

About

Student Portal Management System using Flask, MySQL, JWT Authentication, REST APIs and Bootstrap.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

🎓 Student Portal Management System

A full-stack Student Portal Management System built with Flask and MySQL. This project demonstrates user authentication, JWT-based REST APIs, student management, profile management, image uploads, and modern responsive UI using Bootstrap 5.


📸 Screenshots

Add screenshots here after uploading them.

  • Login Page
  • Signup Page
  • Dashboard
  • Student Management
  • Profile Page
  • Edit Profile

✨ Features

👤 Authentication

  • User Registration
  • Secure Login
  • Password Hashing (Werkzeug)
  • Logout
  • Forgot Password
  • Change Password
  • Delete Account
  • Session Authentication
  • JWT Authentication for REST APIs

👨‍🎓 Student Management

  • Add Student
  • Update Student
  • Delete Student
  • View Student Details
  • Student List
  • Search Students
  • Sort Students
  • Pagination

👤 User Profile

  • Edit Profile
  • Upload Profile Picture
  • Live Image Preview
  • Profile Dashboard

🔐 Security

  • Password Hashing
  • JWT Access Token
  • JWT Protected Routes
  • Role-Based Authorization (Admin / Student)
  • Login Required Decorator
  • CSRF Protection (Flask-WTF)

🌐 REST API

Implemented complete REST APIs.

Method Endpoint Description
GET /api/students Get all students
GET /api/students/ Get student by ID
POST /api/students Create student
PUT /api/students/ Update student
DELETE /api/students/ Delete student
POST /api/login JWT Login
GET /api/profile Protected Profile

🛠 Tech Stack

Backend

  • Python
  • Flask
  • Flask SQLAlchemy
  • Flask Migrate
  • Flask JWT Extended
  • Flask WTF

Database

  • MySQL

Frontend

  • HTML5
  • CSS3
  • Bootstrap 5
  • JavaScript

Authentication

  • Session Authentication
  • JWT Authentication

Tools

  • Git
  • GitHub
  • Postman
  • VS Code

📂 Project Structure

student-portal/
│
├── api.py
├── app.py
├── routes.py
├── models.py
├── forms.py
├── decorators.py
├── extensions.py
├── requirements.txt
├── README.md
├── .gitignore
│
├── migrations/
│
├── static/
│   ├── css/
│   ├── uploads/
│   └── images/
│
├── templates/
│
└── instance/

⚙ Installation

1 Clone Repository

git clone https://github.com/Pavan17153/student-portal-flask.git
cd student-portal

2 Create Virtual Environment

Windows

python -m venv venv

Activate

venv\Scripts\activate

Linux / macOS

python3 -m venv venv
source venv/bin/activate

3 Install Dependencies

pip install -r requirements.txt

4 Configure Environment Variables

Create a .env file.

SECRET_KEY=your_secret_key

JWT_SECRET_KEY=your_jwt_secret

DATABASE_URL=mysql+pymysql://username:password@localhost:3306/database_name

5 Run Database Migration

flask db init
flask db migrate
flask db upgrade

6 Run Application

python app.py

Application runs at

http://127.0.0.1:5000

🧪 API Testing

All REST APIs were tested using Postman.

Features tested

  • CRUD Operations
  • JWT Login
  • Protected APIs
  • Authorization
  • Error Handling

📚 Concepts Used

  • Flask Blueprints
  • SQLAlchemy ORM
  • Flask Migrate
  • Flask-WTF Forms
  • Session Authentication
  • JWT Authentication
  • REST APIs
  • CRUD Operations
  • Pagination
  • Search
  • Sorting
  • File Upload
  • Password Hashing
  • Role-Based Authorization
  • Decorators
  • Bootstrap UI

🚀 Future Improvements

  • Email Verification
  • Password Reset via Email
  • Docker Support
  • Admin Dashboard Analytics
  • Unit Testing
  • Deployment on Render
  • CI/CD Pipeline
  • User Activity Logs

👨‍💻 Author

Pavan Kumar

GitHub: https://github.com/Pavan17153

LinkedIn: https://www.linkedin.com/in/pavan-kumar-pelluru-651b07267/


⭐ If you found this project useful, please give it a Star.

About

Student Portal Management System using Flask, MySQL, JWT Authentication, REST APIs and Bootstrap.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages