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.
Add screenshots here after uploading them.
- Login Page
- Signup Page
- Dashboard
- Student Management
- Profile Page
- Edit Profile
- User Registration
- Secure Login
- Password Hashing (Werkzeug)
- Logout
- Forgot Password
- Change Password
- Delete Account
- Session Authentication
- JWT Authentication for REST APIs
- Add Student
- Update Student
- Delete Student
- View Student Details
- Student List
- Search Students
- Sort Students
- Pagination
- Edit Profile
- Upload Profile Picture
- Live Image Preview
- Profile Dashboard
- Password Hashing
- JWT Access Token
- JWT Protected Routes
- Role-Based Authorization (Admin / Student)
- Login Required Decorator
- CSRF Protection (Flask-WTF)
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 |
- Python
- Flask
- Flask SQLAlchemy
- Flask Migrate
- Flask JWT Extended
- Flask WTF
- MySQL
- HTML5
- CSS3
- Bootstrap 5
- JavaScript
- Session Authentication
- JWT Authentication
- Git
- GitHub
- Postman
- VS Code
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/
git clone https://github.com/Pavan17153/student-portal-flask.gitcd student-portalWindows
python -m venv venvActivate
venv\Scripts\activateLinux / macOS
python3 -m venv venvsource venv/bin/activatepip install -r requirements.txtCreate a .env file.
SECRET_KEY=your_secret_key
JWT_SECRET_KEY=your_jwt_secret
DATABASE_URL=mysql+pymysql://username:password@localhost:3306/database_name
flask db initflask db migrateflask db upgradepython app.pyApplication runs at
http://127.0.0.1:5000
All REST APIs were tested using Postman.
Features tested
- CRUD Operations
- JWT Login
- Protected APIs
- Authorization
- Error Handling
- 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
- Email Verification
- Password Reset via Email
- Docker Support
- Admin Dashboard Analytics
- Unit Testing
- Deployment on Render
- CI/CD Pipeline
- User Activity Logs
Pavan Kumar
GitHub: https://github.com/Pavan17153
LinkedIn: https://www.linkedin.com/in/pavan-kumar-pelluru-651b07267/