A comprehensive desktop application for student management with ID card generation, email notifications, and secure authentication system.
- Multi-role Authentication (Student, Admin)
- Student Registration with auto-generated matric numbers
- ID Card Generation with professional PDF export
- Email Integration for account notifications and password reset
- Database Management with MySQL backend
- Student Dashboard with profile management
- Admin Panel with student data management
- Responsive Design with modern UI elements
- Interactive Confirmation Dialogs
- Password Visibility Toggle
- Secure password hashing
- Password reset tokens with expiration
- Email verification system
- Session management
- Python 3.8+
- Tkinter (usually comes with Python)
- PIL/Pillow library
- MySQL
- Clone the repository:
git clone https://github.com/boboahmedino/student-management-system.git- Install required dependencies:
pip install pillow python-dotenv- Set up environment variables:
.envpython OSI.pystudent-management-system/
├── OSI.py # Main application file
├── database.py # Database operations
├── test.py # test the gmail ports
├── user.png # image for button
└── README.md # This file
- Register with personal details and photo upload
- Login with matric number and password
- Access Dashboard to view profile, edit information, and generate ID cards
- Change password securely
- Login with admin credentials
- View all students in a sortable table
- Export data to CSV format
- Manage student records (view, delete)
The system uses MySQL with tables for:
- Students (personal info, credentials)
- Admin users
- Password reset tokens
- SMTP with Gmail support
- HTML email templates
- Token-based password reset system
- Account creation notifications
- Dynamic PDF creation with student photos
- Download functionality
Create a .env file with:
gmail_user=your.email@gmail.com
gmail_password=your_app_passwordThe primary color scheme uses #350159 (deep purple) which can be modified in the bg_color variable.
HTML email templates are embedded in the code and can be customized for different institutional branding.
- Fork the project
- Create your feature branch
- Commit your changes
- Push to the branch
- Open a Pull Request
Olaneye Ahmed Oladapo
- Github: Boboahmedino
- LinkedIn: Olaneye Ahmed
⭐ Star this repo if you found it helpful!