A web application built with Flask that allows students to sign up, upload their certificates with their roll numbers, and provides an admin panel to access all certificates with student details.
- Student Registration: Students can sign up with their roll numbers and personal details
- Certificate Management: Students can upload and manage their certificates in PDF, PNG, JPG formats
- Admin Panel: Administrators can manage users and view all certificates
- Secure Authentication: Password hashing and session management
- Responsive Design: Mobile-friendly interface with Bootstrap
- Backend: Python 3, Flask
- Database: SQLite with SQLAlchemy ORM
- Frontend: HTML, CSS, Bootstrap 5
- Authentication: Werkzeug security for password hashing
- File Handling: Secure file uploads with Werkzeug
-
Clone the repository
-
Navigate to the project directory
-
Create a virtual environment:
python -m venv venv -
Activate the virtual environment:
- On Windows:
venv\Scripts\activate - On macOS and Linux:
source venv/bin/activate
- On Windows:
-
Install the dependencies:
pip install -r requirements.txt -
Run the application:
python app.py -
Open a web browser and navigate to
http://localhost:5000
- Register with your roll number, name, email, and password
- Log in with your email and password
- Upload certificates from your dashboard
- View and manage your uploaded certificates
- Create an admin account from the login page (there can only be one admin account)
- Log in with your admin credentials
- View all registered students and their certificates
- Access student details and download certificates
app.py: Main Flask application with routes and database setuptemplates/: HTML templatesstatic/: CSS, JavaScript, and uploaded certificatesinstance/: Contains the SQLite database file
- Passwords are securely hashed using Werkzeug's security functions
- File uploads are secured with proper validation and filename sanitization
- Session management to ensure authenticated access
- Certificate access permissions to protect student privacy