A comprehensive web-based Blood Donation Management System built with Django for managing blood donations, donors, and emergency blood requests.
- User registration and secure authentication
- Personalized dashboard with donation statistics
- Health metrics tracking (hemoglobin, blood pressure, weight)
- Donation scheduling system
- Emergency blood request alerts
- Interactive map for location updates
- Blood inventory checker
- Admin dashboard with analytics
- Donor management and tracking
- Donation request approval workflow
- Blood inventory management
- Emergency request creation
- System-wide notifications
- Report generation
- Backend: Django 5.2.8
- Database: PostgreSQL
- Frontend: HTML5, CSS3, JavaScript
- Maps: Leaflet.js for interactive location selection
- Charts: Chart.js for visualizations
- Python 3.12+
- PostgreSQL 13+
- Clone the repository
git clone https://github.com/Codingincloud/BDIMS.git
cd BDIMS- Install dependencies
pip install -r requirements.txt- Configure database
Edit blood_donation/settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'bdims_db',
'USER': 'postgres',
'PASSWORD': 'your_password',
'HOST': 'localhost',
'PORT': '5432',
}
}- Run migrations
python manage.py migrate- Create superuser
python manage.py createsuperuser- Populate initial data (optional)
python manage.py populate_hospitals- Run development server
python manage.py runserverVisit http://127.0.0.1:8000/
BDIMS/
├── accounts/ # Authentication system
├── admin_panel/ # Admin dashboard
├── donor/ # Donor features
├── blood_donation/ # Project settings
├── static/ # CSS, JS, images
├── templates/ # HTML templates
├── utils/ # Helper functions
└── requirements.txt # Dependencies
Donor
- Register and manage profile
- Schedule donations
- Track health metrics
- Respond to emergencies
Admin
- Manage donors and requests
- Control blood inventory
- Create emergency requests
- View analytics
- Click-to-select location
- GPS auto-detection
- Search functionality
- Reverse geocoding
- Hemoglobin monitoring
- Blood pressure tracking
- Eligibility checking
- Real-time alerts
- Blood type matching
- Hospital integration
- CSRF protection
- Secure password hashing
- Role-based access control
- Session management
Run in debug mode for development:
# In settings.py
DEBUG = True- Set
DEBUG = False - Configure
ALLOWED_HOSTS - Set strong
SECRET_KEY - Use HTTPS
- Collect static files:
python manage.py collectstatic- Use production WSGI server (gunicorn/uWSGI)
Academic project - 5th Semester, 2025
For issues: GitHub Issues
Note: This is an academic/development project. Ensure proper security audits before production use.