A complete web application for managing software licenses built with Flask, HTML, and CSS. This system provides both admin and user interfaces for license management, request handling, and user administration.
- Dashboard Overview: Summary cards showing total, active, expiring, and expired licenses
- License Management: Add, view, and manage software licenses
- User Management: Add and delete system users
- Request Management: Approve or reject license requests
- License Allocation: View license distribution across categories
- User Dashboard: Personal license overview and statistics
- License Requests: Submit new license requests
- View Licenses: Browse available licenses
- Help & Support: FAQ and contact support system
/license_management_system
βββ app.py # Main Flask application
βββ /templates # HTML templates
β βββ base.html # Base template with sidebar
β βββ login.html # Login page
β βββ admin_dashboard.html
β βββ user_dashboard.html
β βββ add_license.html
β βββ view_licenses.html
β βββ requests.html
β βββ manage_users.html
β βββ help.html
βββ /static/css
β βββ style.css # Comprehensive CSS styles
βββ /data # CSV data files
β βββ users.csv # User accounts
β βββ licenses.csv # License information
β βββ requests.csv # License requests
βββ README.md
- Python 3.7 or higher
- pip (Python package installer)
-
Clone or download the project
# If you have the project files, navigate to the directory cd license_management_system
-
Install Flask
pip install flask
-
Run the application
python app.py
-
Access the application
- Open your web browser
- Navigate to
http://127.0.0.1:5000 - You'll be redirected to the login page
- Username:
admin - Password:
admin123 - Role:
Admin
- Username:
user - Password:
user123 - Role:
User
john.doe/password123jane.smith/password123mike.johnson/password123sarah.williams/password123tom.brown/password123emily.davis/password123
- Modern UI: Clean, professional interface with pastel color palette
- Responsive Design: Works on desktop and tablet devices
- Dashboard Cards: Visual summary statistics
- Data Tables: Organized display of licenses and users
- Status Indicators: Color-coded status badges
- Navigation: Intuitive sidebar navigation
The application uses CSV files for data storage:
- users.csv: Stores user accounts with username, password, and role
- licenses.csv: Contains license information including name, category, expiry dates
- requests.csv: Tracks license requests with status and dates
- Backend: Python Flask
- Frontend: HTML5, CSS3
- Data Storage: CSV files
- Styling: Custom CSS with Poppins font
- No JavaScript: Pure HTML/CSS implementation
- Session-based authentication
- Role-based access control (Admin/User)
- CSV data manipulation
- Responsive design
- Form validation
- Flash messaging system
- Login with admin credentials
- Dashboard: View system overview and statistics
- Add License: Create new software licenses
- Manage Users: Add or remove system users
- Review Requests: Approve or reject license requests
- View Licenses: Monitor all licenses and their status
- Login with user credentials
- Dashboard: View personal license statistics
- Request License: Submit new license requests
- View Requests: Check status of submitted requests
- Help & Support: Access FAQ and contact support
/or/login- Login page/admin_dashboard- Admin overview/user_dashboard- User overview/add_license- Add new license (Admin only)/view_licenses- View all licenses/requests- Manage license requests/manage_users- User management (Admin only)/help- Help and support
- Session-based authentication
- Role-based access control
- Password protection
- Secure logout functionality
The application is designed to work on:
- Desktop computers (primary)
- Tablets (responsive)
- Mobile devices (basic support)
-
Port already in use
- Change the port in
app.py:app.run(debug=True, port=5001)
- Change the port in
-
CSV file not found
- Ensure the
datafolder exists with the CSV files
- Ensure the
-
Login not working
- Check that
users.csvexists and has the correct format
- Check that
-
Styling issues
- Verify that
static/css/style.cssexists and is accessible
- Verify that
This project is created for educational and demonstration purposes.
This is a demonstration project. Feel free to use it as a starting point for your own license management system.
For questions or issues, please refer to the Help & Support section within the application or check the FAQ.
Note: This application is designed for demonstration purposes and uses CSV files for data storage. For production use, consider implementing a proper database system and additional security measures.
- Member 1: [Your Name]
- Member 2: [Teammate Name]
This project was part of an open-source simulation activity.