A Java-based desktop application designed to streamline the issuance, submission, and tracking of physical keys. With a secure login system and intuitive Swing-based GUI, administrators can efficiently manage key inventory and monitor transaction history.
-
✅ Secure Login System
Multi-layered authentication ensures restricted access. -
🔑 Issue Keys
Track who has borrowed which key and when. -
🔁 Submit Keys
Record key returns and update availability. -
📋 Check Availability
Instantly view which keys are currently in use or available. -
📜 Record History
Maintain a complete transaction log with timestamps. -
➕ Add New Keys
Easily add and categorize new keys into the system.
This project follows the Model-View-Controller (MVC) architectural pattern for modularity and ease of maintenance.
- Database Layer: MySQL database to store key and user data.
- Entity Classes: Represents core entities like
Key,User,Transaction. - Data Access Layer: JDBC-based operations for all DB interactions.
- GUI: Java Swing components for all user interfaces.
- Panels: Functional modules (issue, submit, history, etc.).
- Styling: Consistent, user-friendly layout.
- Action Handlers: Respond to UI events and invoke appropriate logic.
- Business Logic: Enforces issuance and return rules.
- Validation: Checks inputs and secures data operations.
| Layer | Technology |
|---|---|
| Language | Java |
| GUI | Java Swing |
| DBMS | MySQL |
| Connectivity | JDBC |
| Build | Native Java Compile |
The database includes the following tables:
login: Stores user authentication credentialsdetails: Contains metadata about each keystatus: Tracks key availabilityhistory: Logs all key issuance/return transactions
- ✅ Install Java Runtime Environment (JRE)
- ✅ Install MySQL Server
- ✅ Create a MySQL database named
key_management - ✅ Execute the provided SQL script to generate required tables
- 🔧 Configure DB settings in
DatabaseConnection.java - 🛠️ Compile
.javafiles or run the provided.jar
- 🔐 Login – Authenticate using valid credentials
- 🔑 Issue Key – Select a key and log recipient information
- 🔁 Submit Key – Mark key as returned and update status
- 👁️ Check Availability – View current status of all keys
- 🕑 View History – Access complete audit trail
- ➕ Add New Key – Introduce new keys into the system
- 🔒 Password-protected login system
- 🔐 Encrypted DB connections
- 🚫 SQL injection protection via input validation
- 🕓 Session lifecycle management
- 📧 Email notifications for overdue keys
- 📷 Barcode / QR code support for faster key scanning
- 👥 Role-based access control for different staff levels
- 📊 Advanced analytics and usage reports
- 📱 Mobile app integration for remote access
Pull requests are welcome! For major changes, please open an issue first to discuss what you'd like to change.
This project is currently under proprietary license. All rights reserved.
For suggestions, support, or feature requests:
📧 Email: [yashasviwankhade2004@example.com]
🔨🤖🔧 Built with care using Java, Swing & MySQL.