A modern web application connecting donors, hospitals, and blood banks
๐ Live Demo โข ๐ Documentation โข ๐ Report Bug
An academic project by IIT Jodhpur + LeapStart following SDLC & FRD principles
The Blood Bank Management System is a comprehensive web application designed to streamline blood donation and distribution processes. Built as an academic mini-project, it demonstrates modern web development practices while addressing real-world healthcare challenges.
Traditional blood bank management faces several challenges:
- โ Lack of real-time inventory visibility
- โ Inefficient communication between donors and hospitals
- โ Manual request tracking and approval processes
- โ No integration with public health infrastructure data
A centralized platform that:
- โจ Provides real-time blood availability tracking
- ๐ฅ Enables instant hospital blood requests
- ๐ฅ Facilitates donor registration and management
- ๐ Integrates public health infrastructure data
- ๐ค Offers AI-powered assistance via chatbot
Real-Time Blood Inventory Dashboard
- ๐ Live blood availability for all blood groups (A+, A-, B+, B-, O+, O-, AB+, AB-)
- ๐ Smart filtering by blood group
- ๐ Visual status indicators (OK / Low / Critical)
- ๐ Auto-updates from Firebase Firestore
Public Health Integration
- ๐ฅ State-wise hospital and bed capacity data
- ๐ก Integration with Rootnet COVID-19 Hospitals & Beds API
- ๐ Hospital load indicators
- ๐บ๏ธ Rural vs Urban distribution stats
Navigation Hub
- Quick access to Donor Registration
- Hospital Portal entry
- Admin Panel login
Smart Registration System
- ๐ Comprehensive donor information capture:
- Personal details (Name, Age, Gender)
- Contact info (Phone, Email, City)
- Blood group selection
- Last donation date tracking
- Current availability status
Intelligent Validation
- โ Age verification (โฅ18 years)
- โ Email format validation
- โ Phone number validation
- โ Date consistency checks
- โ Mandatory field enforcement
User Experience
- ๐จ Clean, intuitive interface
- โก Real-time validation feedback
- โ๏ธ Success confirmation messages
- ๐ฑ Mobile-responsive design
Secure Authentication
- ๐ Firebase Authentication (Email/Password)
- ๐ New hospital registration
- ๐ Secure login system
- ๐ค Session management
Comprehensive Dashboard
- ๐ Create blood requests with:
- Blood group specification
- Units required
- Patient information/reason
- Urgency level
- ๐ Real-time request tracking
- ๐ Status notifications
- ๐ View all submitted requests
- ๐ Timestamp tracking
- ๐ฏ Status monitoring (Pending/Approved/Rejected)
- ๐ Detailed request history
- ๐ Real-time inventory view
- ๐ Stock levels per blood group
โ ๏ธ Low stock alerts- ๐ Availability trends
Administrative Authentication
- ๐ Secure admin login
- ๐จโ๐ผ Role-based access control
- ๐ Protected routes
Inventory Management
- ๐ฆ Manage stock for all blood groups
- โ Add/Update units
- ๐พ Instant Firestore sync
- ๐ Visual stock indicators
Request Administration
- ๐ View all hospital requests
- โ Approve/Reject requests
- ๐ Update request status
- ๐ Monitor system activity
- ๐ Request analytics
Smart Assistant - "BloodBot"
- ๐ฌ Floating chat interface
- ๐ง Rule-based natural language understanding
- โ Common queries support:
- Donor registration process
- Hospital request procedures
- Admin panel features
- Blood availability checks
- Eligibility criteria
Features
- ๐ฏ Context-aware responses
- ๐ฑ Non-intrusive design
- ๐ Instant help access
- ๐ Available on all pages
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Frontend Layer โ
โ HTML5 + CSS3 + Vanilla JavaScript (Static Site) โ
โโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโผโโโโโโโโโโโโ
โ โ โ
โโโโโโโโโผโโโโโโโ โโโโผโโโโโโโ โโโผโโโโโโโโโโโโโโโโโ
โ Firebase โ โFirebase โ โ Rootnet API โ
โ Auth โ โFirestoreโ โ (Public Health) โ
โโโโโโโโโโโโโโโโ โโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ
โ โ โ
โโโโโโโโโโโโโดโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโผโโโโโโโโโโโโ
โ Vercel Hosting โ
โ (Static + Functions) โ
โโโโโโโโโโโโโโโโโโโโโโโโโ
| Layer | Technology | Purpose |
|---|---|---|
| Frontend | HTML5, CSS3, JavaScript (ES6+) | User interface and interactions |
| Authentication | Firebase Authentication | User login and security |
| Database | Firebase Firestore | Real-time data storage |
| External API | Rootnet Hospitals API | Public health data |
| Hosting | Vercel | Static hosting and serverless functions |
| Version Control | Git + GitHub | Source code management |
| Development | VS Code, Ubuntu/VirtualBox | Development environment |
1. Inventory Collection
inventory/{bloodGroup}
{
group: "A+",
units: 45,
lastUpdated: Timestamp,
status: "OK" | "Low" | "Critical"
}2. Blood Requests Collection
blood_requests/{requestId}
{
hospitalId: "hospital@example.com",
bloodGroup: "O+",
units: 5,
reason: "Emergency surgery",
status: "Pending" | "Approved" | "Rejected",
createdAt: Timestamp,
updatedAt: Timestamp
}3. Hospitals Collection
hospitals/{hospitalId}
{
email: "hospital@example.com",
name: "City Hospital",
address: "123 Main St",
phone: "+91-XXXXXXXXXX",
registeredAt: Timestamp
}blood-bank-app/
โโโ assets/
โ โโโ admin-page.png # Admin panel screenshot
โ โโโ logo.png # Application logo
โ โโโ hospital_login.png # Hospital portal background
โ โโโ hospital_page.png # Hospital portal screenshot
โ โโโ adminpage-background.png # Admin panel background
โ โโโ mainlogo.png # Main Application logo
โ โโโ homepage_screenshot.png # Homepage screenshot
โ
โโโ css/
โ โโโ styles.css # Global styles and themes
โ
โโโ js/
โ โโโ app.js # Homepage logic (availability + API)
โ โโโ donor.js # Donor form validation
โ โโโ hospital.js # Hospital portal logic
โ โโโ admin.js # Admin panel logic
โ โโโ chatbot.js # Floating chatbot functionality
โ
โโโ index.html # Homepage
โโโ donor_register.html # Donor registration page
โโโ hospital_portal.html # Hospital login + dashboard
โโโ admin_panel.html # Admin login + dashboard
โโโ README.md # This file
โโโ LICENSE # MIT License
Before you begin, ensure you have:
- โ Node.js (v14 or higher) - Optional, for local server
- โ Firebase Account (free tier works)
- โ Git installed on your system
- โ Modern Web Browser (Chrome, Firefox, Edge)
git clone https://github.com/yourusername/blood-bank-app.git
cd blood-bank-app- Go to Firebase Console
- Click "Add Project"
- Enter project name:
blood-bank-management - Follow the setup wizard
- Navigate to Authentication โ Sign-in method
- Enable Email/Password authentication
- (Optional) Enable Google sign-in
- Navigate to Firestore Database
- Click "Create Database"
- Start in production mode
- Choose your region
In Firebase Console โ Firestore โ Rules:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
// Public can READ inventory, only authenticated can WRITE
match /inventory/{group} {
allow read: if true;
allow write: if request.auth != null;
}
// Hospital and Admin can manage requests
match /blood_requests/{requestId} {
allow read, write: if request.auth != null;
}
// Hospital profiles
match /hospitals/{hospitalId} {
allow read, write: if request.auth != null;
}
// Default deny
match /{document=**} {
allow read, write: if false;
}
}
}- Go to Project Settings โ General
- Under "Your apps", select Web (</> icon)
- Copy the configuration object
Update hospital_portal.html and admin_panel.html:
const firebaseConfig = {
apiKey: "YOUR_API_KEY",
authDomain: "YOUR_PROJECT_ID.firebaseapp.com",
projectId: "YOUR_PROJECT_ID",
storageBucket: "YOUR_PROJECT_ID.appspot.com",
messagingSenderId: "YOUR_SENDER_ID",
appId: "YOUR_APP_ID"
};
if (!firebase.apps.length) {
firebase.initializeApp(firebaseConfig);
}- Open project in VS Code
- Install Live Server extension
- Right-click
index.htmlโ Open with Live Server - Navigate to
http://127.0.0.1:5500/
# Python 3
python -m http.server 8000
# Then open http://localhost:8000/npx http-server -p 8000- Go to Firebase Console โ Authentication โ Users
- Click "Add User"
- Create admin account:
- Email:
admin@bloodbank.com - Password: Choose a secure password
- Email:
- Visit
/admin_panel.html - Login with admin credentials
- Set initial units for each blood group (e.g., 50 units each)
- Click "Save" for each blood group
git add .
git commit -m "Initial commit"
git push origin main- Go to Vercel Dashboard
- Click "New Project"
- Import your GitHub repository
- Configure:
- Framework Preset: Other
- Build Command: (leave empty)
- Output Directory:
. - Install Command: (leave empty)
In Firebase Console โ Authentication โ Settings โ Authorized domains:
- Add your Vercel domain:
https://blood-bank-xi-eight.vercel.app
Click "Deploy" and wait for build completion.
Your app will be live at: https://blood-bank-xi-eight.vercel.app
-
Register as Donor
- Visit homepage โ Click "Donor Registration"
- Fill in personal details
- Select blood group
- Submit form
-
Update Availability
- Return to registration page
- Update availability status
- Re-submit form
-
Register Hospital
- Visit "Hospital Portal"
- Click "Register New Hospital"
- Enter credentials
- Complete registration
-
Request Blood
- Login to hospital portal
- Navigate to "Request Blood Units"
- Fill in requirements
- Submit request
-
Track Requests
- Go to "Track Request Status"
- View all submitted requests
- Monitor approval status
-
Check Availability
- Visit "View Availability"
- See real-time stock levels
- Plan requests accordingly
-
Login
- Visit "Admin Panel"
- Enter admin credentials
- Access dashboard
-
Manage Inventory
- View current stock
- Update units for each blood group
- Save changes
-
Process Requests
- Review all hospital requests
- Approve or reject based on availability
- Update request status
โ
Firebase Authentication - Secure user login
โ
Firestore Security Rules - Role-based access control
โ
Client-side Validation - Input sanitization
โ
HTTPS Only - Encrypted communications
โ
Session Management - Automatic timeout
- Basic homepage with blood availability
- Donor registration module
- Hospital portal with authentication
- Admin panel for inventory management
- Request tracking system
- Public health API integration
- Floating chatbot
- Store donor data in Firestore
- Donor-Hospital matching algorithm
- Email/SMS notifications
- Advanced analytics dashboard
- Mobile app (React Native)
- AI-powered demand prediction
- Blockchain for donation tracking
- IoT integration for blood storage monitoring
- Multi-language support
- PWA support for offline access
- Integration with government health systems
- ๐ฉธ 8 Blood Groups supported (A+, A-, B+, B-, O+, O-, AB+, AB-)
- ๐ฅ Unlimited Hospitals can register
- ๐ฅ Unlimited Donors can register
- โก Real-time inventory updates
- ๐ State-wise hospital data (28 states + 8 UTs)
- โก Page Load Time: < 2 seconds
- ๐ Real-time Sync: < 500ms
- ๐ฑ Mobile Responsive: Yes
- ๐ Browser Support: Chrome, Firefox, Safari, Edge
We welcome contributions from the community!
- Fork the repository
- Create a feature branch
git checkout -b feature/AmazingFeature
- Commit your changes
git commit -m "Add some AmazingFeature" - Push to the branch
git push origin feature/AmazingFeature
- Open a Pull Request
- Follow existing code style
- Add comments for complex logic
- Test thoroughly before submitting
- Update documentation as needed
This project is licensed under the MIT License - see the LICENSE file for details.
MIT License
Copyright (c) 2025 Blood Bank Management Team
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction...
|
kellampalli Saathvik Backend, API, Deployment |
Bashamoni Shiva Kumar Developer |
![]() Ashwith Thatipally UI/UX Designer |
![]() Abhishek Singh UI/UX Designer |
![]() Akash Akula Quality Assurance & Testing |
Academic Institution: IIT Jodhpur x LeapStart
Industry Mentor: Sai Ram Bingi
Special thanks to:
- IIT Jodhpur & LeapStart - For providing the learning platform
- Firebase Team - For excellent BaaS infrastructure
- Rootnet - For public health API access
- Vercel - For seamless deployment
- Open Source Community - For tools and inspiration
- Healthcare Professionals - For domain expertise
- ๐ Bug Reports: GitHub Issues
- ๐ฌ Discussions: GitHub Discussions
Q: Is this system ready for production use?
A: This is an academic project for demonstration. For production use, additional security, compliance, and testing are required.
Q: Can I use this for my institution?
A: Yes! This project is open-source under MIT License. Feel free to fork and customize.
Q: How do I report security vulnerabilities?
A: Please email security@example.com directly rather than opening a public issue.
This is an ACADEMIC PROJECT developed for educational purposes only.
โ ๏ธ NOT intended for real medical or clinical use
โ ๏ธ NOT compliant with healthcare regulations (HIPAA, etc.)
โ ๏ธ NOT tested for production deployment
โ ๏ธ NOT certified by any medical authority
For demonstration and learning purposes only.
- ๐ FRD Document - Functional Requirements Specification
- ๐ Case Study - Problem analysis and solution design
- ๐ DevOps Workflow - CI/CD pipeline documentation
- ๐๏ธ Architecture Design - System architecture diagrams
- ๐ API Documentation - Endpoint specifications
- ๐งช Testing Report - QA and test results
Made with โค๏ธ for saving lives
ยฉ 2025 Blood Bank Management Team โข IIT Jodhpur x LeapStart
"Every drop counts. Every second matters."




