A real-time, event-driven platform designed to optimize emergency blood donation — connecting hospitals with nearby donors through automated geolocation matching and SMS notifications.
- Overview
- Core Features
- Technical Architecture
- CI/CD & Containerization
- Getting Started
- System Monitoring
The Blood Donor System bridges the critical time gap during medical emergencies by intelligently matching blood requests from hospitals with the most compatible, available, and geographically proximate donors — automatically and in real time.
- 🎯 Smart Donor Matching — Prioritizes donors based on blood type compatibility, real-time availability, and GPS proximity.
- 🏥 Hospital Inventory Management — Allows medical centers to monitor and update blood stock levels across all eight primary blood groups in real time.
- 📲 Automated Notifications — Integrated SMS alerts notify the top-ranked donors immediately upon an emergency request trigger.
- 📊 Live Analytics Dashboards — Built-in visualizations to track donor distribution, blood demand trends, and system health metrics.
Built using a modern Agile-DevOps hybrid lifecycle:
| Layer | Technology |
|---|---|
| Backend | FastAPI (Python) — high-performance, asynchronous API management |
| Database | PostgreSQL via SQLAlchemy ORM with connection pooling and SSL encryption |
| Frontend | Streamlit — interactive UI and data visualization dashboards |
| Version Control | Git with modular Backend / frontend repository structure |
An automated delivery pipeline ensures high reliability and consistency across all environments:
-
Continuous Integration (CI) — Managed via Jenkins. The
Jenkinsfilecontains a declarative pipeline that automates environment setup, dependency resolution fromrequirements.txt, and code verification. -
Containerization — The entire application is containerized using Docker to eliminate environment disparity and ensure portability.
-
Orchestration — Docker Compose manages the multi-container lifecycle, handling network port binding and service dependencies:
8000→ Backend API8501→ Frontend UI
- Docker and Docker Compose installed on your system.
- A
.envfile in theBackenddirectory containing theDATABASE_URL.
1. Clone the repository:
git clone <repository-url>
cd blood-donor-system2. Launch the services:
Build and start the backend and frontend containers in detached mode:
docker-compose up -d --build3. Access the platform:
| Service | URL |
|---|---|
| Frontend UI | http://localhost:8501 |
| API Documentation | http://localhost:8000/docs |
The platform includes an integrated monitoring suite that tracks:
- 📦 Inventory Trends — Visual alerts for low-stock blood types.
- 📍 Donor Density — Geographic mapping of registered donors to identify coverage gaps.
- 🔄 Request Status — Real-time tracking of pending, accepted, and fulfilled emergency requests.
Built to save lives — one matched donation at a time. 🩸