A comprehensive full-stack Blood Bank Management System designed to streamline blood donation operations, inventory management, and user coordination across donors, hospitals, and administrators.
The Blood Bank Management System (BBMS) is a modern, secure, and efficient digital platform that revolutionizes how blood banks operate. Built with cutting-edge technologies, BBMS connects donors, hospitals, and administrators in a unified ecosystem to ensure optimal blood supply management and transparent donation processes.
To make blood donations more accessible, organized, and transparent while ensuring efficient blood inventory management across healthcare facilities.
βββββββββββββββββββ HTTP/REST API ββββββββββββββββββββ
β ββββββββββββββββββββββΊβ β
β React Frontend β β Ballerina Backendβ
β (Port: 5173) β β (Port: 9191) β
β β β β
βββββββββββββββββββ ββββββββββββββββββββ
β β
β User Interface β Data Processing
β β
βΌ βΌ
βββββββββββββββββββ ββββββββββββββββββββ
β User Roles: β β MySQL Database β
β β’ Donors β β β’ User Data β
β β’ Hospitals β β β’ Campaigns β
β β’ Admins β β β’ Blood Stock β
βββββββββββββββββββ ββββββββββββββββββββ
- Donors: Register, participate in campaigns, track donation history
- Hospitals: Manage campaigns, monitor blood stock, request blood units
- Administrators: Oversee entire system, manage users and campaigns
- Create and manage blood donation campaigns
- Real-time campaign tracking and participation
- Automated email notifications
- Past campaign data and analytics
- Real-time blood stock monitoring (A+, A-, B+, B-, AB+, AB-, O+, O-)
- Hospital-wise and district-wise inventory tracking
- Automated stock updates
- Campaign-linked blood collection tracking
- JWT-based secure authentication
- Role-based access control
- SHA-256 password encryption with salt
- CORS-enabled API security
- Responsive design for all devices
- Dark/light theme support
- Real-time notifications and feedback
- Intuitive and accessible interface
- Framework: React 18+ with Vite
- Styling: Tailwind CSS + Bootstrap + Regular CSS
- Routing: React Router
- State Management: React Context API
- HTTP Client: Axios
- Icons: React Icons + Lucide Icons
- Framework: Ballerina Swan Lake
- Database: MySQL
- Authentication: JWT (JSON Web Tokens)
- Email Service: SMTP Integration
- Architecture: RESTful API
- Version Control: Git & GitHub
- Package Management: npm/yarn
- Build Tools: Vite (Frontend), Ballerina (Backend)
- Code Quality: ESLint, Prettier
BBMS/
βββ BBMS/ # React Frontend Application
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ context/ # Global state management
β β βββ Pages/ # Main application pages
β β βββ SharedData/ # Constants and utilities
β βββ package.json
β βββ README.md
β
βββ BBMS_backend/ # Ballerina Backend API
β βββ main.bal # Main service endpoints
β βββ database.bal # Database configuration
β βββ types.bal # Type definitions
β βββ utils.bal # Utility functions
β βββ *_service.bal # Service modules
β βββ Config.toml # Configuration file
β βββ README.md
β
βββ README.md # This file
- Node.js (v16+) for frontend
- Ballerina Swan Lake for backend
- MySQL Server for database
- SMTP Account for email notifications
git clone https://github.com/nadilHesara/iwb25-203-code-drift.git
cd iwb25-203-code-driftcd BBMS_backend
# Create Config.toml with your database credentials
# Setup MySQL database and tables
bal build
bal runBackend will run on http://localhost:9191
cd bbms
npm install
npm run devFrontend will run on http://localhost:5173
Open your browser and navigate to http://localhost:5173
- Register and maintain profile
- Browse available donation campaigns
- Track personal donation history
- Complete eligibility assessments
- Manage blood donation campaigns
- Monitor blood inventory levels
- Request blood units from other facilities
- Track campaign performance
- Oversee entire system operations
- Manage user accounts and permissions
- Monitor system-wide blood inventory
- Maintain system security
- π Multi-language Support (English, Sinhala, Tamil)
- π± Mobile Application (React Native)
- π€ AI-Powered Demand Prediction
- π Advanced Analytics Dashboard
- π SMS/Push Notifications
- π± QR Code Integration
- π PWA Support for offline functionality
We welcome contributions from the community! Please see our individual component READMEs for specific contribution guidelines:
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
Development Team:
- Thilokya Angeesa - thilokyaangeesa@gmail.com
- Nadil Hesara - nadilheasara@gmail.com
- Sandenie Withana - pisandeniwith@gmail.com
- Hesandi Siwmini - hesandism@gmail.com
For technical support, bug reports, or feature requests, please:
- Create an issue on GitHub
- Contact the development team
- Check the component-specific READMEs for detailed documentation
This project is licensed under the MIT License.
- Thanks to all contributors who have helped shape this project
- Special appreciation to the healthcare community for their valuable feedback
- Built with β€οΈ for the greater good of society
π©Έ BBMS - Making Blood Donation Accessible, Organized, and Transparent