Author: Ravi Kumar
A robust, enterprise-level desktop application built with Java Swing and MySQL, designed to manage blood stock, donor registrations, and patient issuances. This project moves beyond standard CRUD operations by implementing advanced healthcare data protocols, multi-threaded background processes, and ACID-compliant database transactions.
- Role-Based Access Control (RBAC): Distinct dashboards and security clearances for 'Admin' and 'Staff'.
- Strict Authentication: Implemented case-sensitive login validation using MySQL
BINARYoperators.
- Temporal Mutability: System allows for updating dynamic donor data (Age, Medical History) for returning donors while retaining historical integrity.
- Database Syncing: Natively syncs and updates the most recent donation dates using advanced
JOINand aggregateMAX()queries.
- Real-Time Dashboard: Utilizes SQL
GROUP BYaggregations to provide a real-time inventory count. - Smart Alerts: Automatically flags critically low blood groups with visual warnings.
- Automated Expiry Sweeps: Utilizes a Java
ScheduledExecutorService(Multi-threading) to run silent background sweeps that automatically flag expired blood bags based onCURDATE().
An advanced healthcare feature that utilizes ACID Transactions. If a donor reports an infection post-donation, the system executes a single transaction that:
- Flags the donor's medical file with a critical warning.
- Instantly purges all of their 'Available' inventory.
- Executes a relational
JOINquery to generate a contact-tracing list of any patients who received the tainted blood.
- Frontend: Java Swing (AWT/Swing Layout Managers)
- Backend: Java (JDK 21)
- Database: MySQL
- Tools: Eclipse IDE, MySQL Workbench
- Clone the repository to your local machine.
- Open MySQL Workbench and import the
database.sqlfile to recreate the schema and test data. - Update the
DBConnection.javafile with your local MySQL username and password. - Run
LoginScreen.javato start the application.