Skip to content

A modern, full-stack blood bank management system connecting donors, hospitals, and blood banks. Features real-time inventory, emergency requests, donation drive coordination, and an AI chatbot. Built with Next.js, React, and MongoDB. Originally made by Shah Dev M, Shah Meet H, Savani Utsav D

Notifications You must be signed in to change notification settings

DevSsChar/BloodBond

Repository files navigation

🩸 BloodBond - Blood Bank Management System

BloodBond Logo

A comprehensive blood bank management system connecting donors, hospitals, and blood banks

Next.js React Node.js MongoDB NextAuth.js TailwindCSS Lucide React Groq AI Vercel


πŸ“‹ Table of Contents


🌟 Overview

BloodBond is a modern, full-stack blood bank management system designed to streamline blood donation and distribution processes. The platform connects three main stakeholders: Donors, Hospitals, and Blood Banks through an intuitive web interface with real-time notifications, inventory management, and AI-powered assistance.

🎯 Mission

To create a seamless, efficient, and life-saving blood management ecosystem that reduces the gap between blood availability and medical needs.


✨ Key Features

🩸 Advanced Blood Request Management

  • Emergency Blood Requests: Instant blood requests with nearby blood bank notifications
  • Request Tracking: Real-time status tracking for all blood requests
  • Smart Matching: Automatic blood type compatibility checking with blood compatibility matrix
  • Status Updates: Comprehensive request lifecycle management (Pending β†’ Accepted β†’ Fulfilled)
  • Hospital Request System: Specialized hospital-to-blood bank request management
  • Bulk Request Processing: Handle multiple blood requests efficiently

πŸ‘€ Multi-Role Authentication

  • JWT-based Authentication: Secure session management with NextAuth.js
  • Role-based Access Control: Distinct interfaces for Donors, Hospitals, and Blood Banks
  • Protected Routes: Secure access to role-specific functionalities with RoleGuard components
  • Session Persistence: Automatic session management and refresh
  • Multi-step Registration: Comprehensive registration flow with role-specific profile completion

πŸ“Š Comprehensive Inventory Management

  • Dual Inventory Systems: Separate inventory management for Blood Banks and Hospitals
  • Real-time Blood Inventory: Live tracking of blood units by type with expiry monitoring
  • Hospital Inventory Management: Independent hospital blood stock control with batch tracking
  • Automated Logging: Comprehensive inventory change tracking with audit trails
  • Stock Level Indicators: Visual indicators for stock status (Good/Low Stock/Critical)
  • Expiry Management: Advanced expiration tracking with automated alerts

🚨 Enhanced Emergency System

  • Emergency Requests: Priority handling for urgent blood needs with emergency call interface
  • Proximity Search: Location-based blood bank recommendations
  • Instant Notifications: Real-time alerts to relevant blood banks
  • Guest Access: Emergency requests without mandatory registration
  • Emergency Contact Management: Direct communication channels for urgent situations

🩸 Donation Drive Management

  • Drive Creation: Blood banks can create and manage donation drives
  • Registration System: Donors can register for specific drives
  • Drive Analytics: Comprehensive statistics and reporting for donation drives
  • Automated Notifications: Drive reminders and updates to registered donors
  • Multi-location Support: Manage drives across different locations

πŸ”— Donor-Blood Bank Connection System

  • Direct Donor Requests: Blood banks can request specific donors for rare blood types
  • Donor Contact System: Secure communication between blood banks and donors
  • Critical Settings: Donors can set availability for emergency situations
  • Response Management: Streamlined donor response tracking and management
  • Smart Matching: AI-powered donor-request matching based on location and blood type

πŸ€– AI-Powered Chatbot

  • Groq AI Integration: Intelligent assistance for blood-related queries
  • Contextual Help: Role-specific guidance and information
  • 24/7 Availability: Round-the-clock support for users
  • Enhanced Chat Interface: Improved chat UI with message processing and history

πŸ“± Real-time Notifications

  • Toast Notifications: Instant feedback for user actions with contextual messaging
  • Emergency Alerts: Priority notifications for urgent requests with emergency notification hooks
  • Status Updates: Automatic notifications for request status changes
  • Inventory Alerts: Low stock and expiry warnings for both blood banks and hospitals
  • Cross-platform Sync: Consistent notifications across devices

🎨 Enhanced User Interface

  • Responsive Design: Mobile-first design with seamless desktop experience
  • Dark/Light Theme: System-aware theme switching with CSS variables
  • Interactive Landing Page: Multi-section home page with feature highlights and statistics
  • Role-based Dashboards: Customized dashboards with relevant statistics and quick actions
  • Modern UI Components: Clean, accessible interface with Lucide React icons and advanced form components

πŸ—οΈ Architecture

BloodBond follows a modern JAMstack architecture with enhanced modularity:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Frontend      β”‚    β”‚   API Layer      β”‚    β”‚   Database      β”‚
β”‚   (Next.js)     │◄──►│   (Next.js API)  │◄──►│   (MongoDB)     β”‚
β”‚                 β”‚    β”‚                  β”‚    β”‚                 β”‚
β”‚ β€’ React 18      β”‚    β”‚ β€’ RESTful APIs   β”‚    β”‚ β€’ Blood Banks   β”‚
β”‚ β€’ TailwindCSS   β”‚    β”‚ β€’ Authentication β”‚    β”‚ β€’ Blood Requestsβ”‚
β”‚ β€’ Lucide Icons  β”‚    β”‚ β€’ Role Guards    β”‚    β”‚ β€’ Donations     β”‚
β”‚ β€’ Context APIs  β”‚    β”‚ β€’ Data Validationβ”‚    β”‚ β€’ Inventory     β”‚
β”‚ β€’ Custom Hooks  β”‚    β”‚ β€’ AI Integration β”‚    β”‚ β€’ Drive Managementβ”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ”§ Tech Stack

Frontend

  • Framework: Next.js 15.5.2 (App Router)
  • UI Library: React 18
  • Styling: TailwindCSS with custom CSS variables for theming
  • Icons: Lucide React (1,000+ SVG icons)
  • State Management: React Context API + Custom Hooks
  • Form Management: Advanced form components with validation

Backend

  • Runtime: Node.js 20+
  • Framework: Next.js API Routes
  • Database: MongoDB with Mongoose ODM
  • Authentication: NextAuth.js with JWT strategy
  • Data Processing: Advanced message processing and blood compatibility checking

AI & External Services

  • AI Chatbot: Groq API for intelligent assistance with enhanced knowledge base
  • Authentication: NextAuth.js providers with multi-role support
  • Deployment: Vercel platform

Development Tools

  • Package Manager: npm
  • Linting: ESLint with Next.js configuration
  • Build Tool: Next.js with Turbopack (dev mode)
  • Environment: .env.local for configuration

πŸ“ Project Structure

bloodbond/
β”œβ”€β”€ πŸ“ app/                          # Next.js App Router directory
β”‚   β”œβ”€β”€ πŸ“„ layout.js                 # Root layout with providers
β”‚   β”œβ”€β”€ πŸ“„ page.js                   # Enhanced landing page with feature sections
β”‚   β”œβ”€β”€ πŸ“„ globals.css               # Global styles & CSS variables for theming
β”‚   β”œβ”€β”€ πŸ“„ chatbot.css               # Specialized chatbot styling
β”‚   β”œβ”€β”€ πŸ“„ dark-theme.css            # Dark theme specific styles
β”‚   β”œβ”€β”€ πŸ“ api/                      # Backend API routes
β”‚   β”‚   β”œβ”€β”€ πŸ“ auth/                 # Enhanced authentication with session management
β”‚   β”‚   β”œβ”€β”€ πŸ“ requests/             # Blood request management with tracking
β”‚   β”‚   β”œβ”€β”€ πŸ“ inventory/            # Blood bank inventory APIs with logging
β”‚   β”‚   β”œβ”€β”€ πŸ“ hospital-inventory/   # Hospital inventory management APIs
β”‚   β”‚   β”œβ”€β”€ πŸ“ hospital-requests/    # Hospital-specific request handling
β”‚   β”‚   β”œβ”€β”€ πŸ“ emergency/            # Emergency request handling
β”‚   β”‚   β”œβ”€β”€ πŸ“ chatbot/              # AI chatbot integration
β”‚   β”‚   β”œβ”€β”€ πŸ“ bloodbank/            # Blood bank specific operations
β”‚   β”‚   β”œβ”€β”€ πŸ“ donors/               # Donor management and statistics
β”‚   β”‚   β”œβ”€β”€ πŸ“ donations/            # Donation tracking and management
β”‚   β”‚   β”œβ”€β”€ πŸ“ donation-drives/      # Drive creation and management
β”‚   β”‚   β”œβ”€β”€ πŸ“ donor-contact-request/# Donor-blood bank communication
β”‚   β”‚   └── πŸ“ bloodbank-donor-requests/ # Blood bank to donor requests
β”‚   β”œβ”€β”€ πŸ“ dashboard/                # Role-based dashboards with enhanced analytics
β”‚   β”‚   β”œβ”€β”€ πŸ“ donor/                # Donor-specific dashboard
β”‚   β”‚   β”œβ”€β”€ πŸ“ hospital/             # Hospital dashboard with inventory overview
β”‚   β”‚   └── πŸ“ bloodbank/            # Blood bank dashboard with drive management
β”‚   β”œβ”€β”€ πŸ“ hospital-inventory/       # Hospital inventory management interface
β”‚   β”œβ”€β”€ πŸ“ emergency/                # Emergency request interface
β”‚   β”œβ”€β”€ πŸ“ emergency-call/           # Emergency call interface
β”‚   β”œβ”€β”€ πŸ“ track-request/            # Universal request tracking system
β”‚   β”œβ”€β”€ πŸ“ donor-requests/           # Donor request management
β”‚   β”œβ”€β”€ πŸ“ hospital-requests/        # Hospital request interface
β”‚   β”œβ”€β”€ πŸ“ hospital-request-acceptance/ # Hospital request acceptance
β”‚   β”œβ”€β”€ πŸ“ register/                 # Multi-role registration system
β”‚   └── πŸ“ login/                    # Authentication pages
β”œβ”€β”€ πŸ“ components/                   # Reusable UI components
β”‚   β”œβ”€β”€ πŸ“„ navbar.jsx                # Enhanced navigation with role-based menus
β”‚   β”œβ”€β”€ πŸ“„ Login.jsx                 # Authentication form
β”‚   β”œβ”€β”€ πŸ“„ Chatbot.jsx               # AI chatbot interface
β”‚   β”œβ”€β”€ πŸ“„ ChatInput.jsx             # Enhanced chat input component
β”‚   β”œβ”€β”€ πŸ“„ ChatMessage.jsx           # Message display component
β”‚   β”œβ”€β”€ πŸ“„ RoleGuard.jsx             # Role-based access control
β”‚   β”œβ”€β”€ πŸ“„ RoleSelection.jsx         # Registration role selection
β”‚   β”œβ”€β”€ πŸ“„ ProtectedRoute.jsx        # Route protection wrapper
β”‚   β”œβ”€β”€ πŸ“„ SessionProvider.jsx       # Authentication wrapper
β”‚   β”œβ”€β”€ πŸ“„ footer.jsx                # Site footer
β”‚   └── πŸ“ forms/                    # Specialized form components
β”œβ”€β”€ πŸ“ context/                      # React Context providers
β”‚   β”œβ”€β”€ πŸ“„ ToastContext.jsx          # Enhanced notification system
β”‚   └── πŸ“„ ThemeContext.jsx          # Advanced dark/light theme management
β”œβ”€β”€ πŸ“ hooks/                        # Custom React hooks
β”‚   β”œβ”€β”€ πŸ“„ useUserRole.js            # Enhanced role management hook
β”‚   β”œβ”€β”€ πŸ“„ useEmergencyNotifications.js # Emergency alerts system
β”‚   β”œβ”€β”€ πŸ“„ useEmergencyRequestCheck.js # Emergency request validation
β”‚   └── πŸ“„ useRequestStatus.js       # Advanced request tracking
β”œβ”€β”€ πŸ“ lib/                          # Utility libraries
β”‚   β”œβ”€β”€ πŸ“„ roleAuth.js               # Role-based authorization
β”‚   β”œβ”€β”€ πŸ“„ groqClient.js             # AI chatbot client
β”‚   β”œβ”€β”€ πŸ“„ knowledgeBase.js          # Enhanced chatbot knowledge base
β”‚   β”œβ”€β”€ πŸ“„ messageProcessor.js       # Message processing utilities
β”‚   └── πŸ“„ bloodCompatibility.js     # Blood type compatibility matrix
β”œβ”€β”€ πŸ“ model/                        # MongoDB schemas
β”‚   β”œβ”€β”€ πŸ“„ user.js                   # Enhanced user model with roles
β”‚   β”œβ”€β”€ πŸ“„ BloodRequest.js           # Blood request schema with status tracking
β”‚   β”œβ”€β”€ πŸ“„ BloodBank.js              # Blood bank information
β”‚   β”œβ”€β”€ πŸ“„ BloodInventory.js         # Blood bank inventory management
β”‚   β”œβ”€β”€ πŸ“„ HospitalInventory.js      # Hospital inventory schema with batch tracking
β”‚   β”œβ”€β”€ πŸ“„ HospitalInventoryLog.js   # Hospital inventory audit trail
β”‚   β”œβ”€β”€ πŸ“„ HospitalProfile.js        # Hospital profile management
β”‚   β”œβ”€β”€ πŸ“„ HospitalRequest.js        # Hospital-specific requests
β”‚   β”œβ”€β”€ πŸ“„ InventoryLog.js           # Blood bank inventory change logs
β”‚   β”œβ”€β”€ πŸ“„ Donation.js               # Donation records
β”‚   β”œβ”€β”€ πŸ“„ DonationDrive.js          # Donation drive management
β”‚   β”œβ”€β”€ πŸ“„ DriveRegistration.js      # Drive registration tracking
β”‚   β”œβ”€β”€ πŸ“„ Doner.js                  # Donor profile and statistics
β”‚   └── πŸ“„ DonorContactRequest.js    # Donor-blood bank communication
β”œβ”€β”€ πŸ“ db/                           # Database configuration
β”‚   └── πŸ“„ connectDB.mjs             # MongoDB connection
└── πŸ“„ next.config.mjs               # Next.js configuration

πŸš€ Getting Started

Prerequisites

  • Node.js 20+ installed
  • MongoDB database (local or cloud)
  • Groq API key for chatbot functionality

Installation

  1. Clone the repository

    git clone https://github.com/DevSsChar/BloodBond.git
    cd BloodBond
  2. Install dependencies

    npm install
  3. Environment Setup Create .env.local file in the root directory:

    # Database
    MONGODB_URI=mongodb://localhost:27017/bloodbond
    
    # Authentication
    NEXTAUTH_SECRET=your-nextauth-secret
    NEXTAUTH_URL=http://localhost:3000
    
    # AI Chatbot
    GROQ_API_KEY=your-groq-api-key
  4. Run the development server

    npm run dev
  5. Open your browser Navigate to http://localhost:3000


πŸ”‘ Authentication System

Enhanced NextAuth.js Integration

// Advanced authentication configuration
providers: [
  CredentialsProvider({
    async authorize(credentials) {
      // Custom authentication logic with role validation
      // Multi-step registration support
      // Enhanced session management
      // JWT token generation and validation
    }
  })
]

Session Management

  • JWT Strategy: Stateless authentication with secure tokens
  • Role Persistence: User roles stored in JWT payload with session refresh
  • Auto Refresh: Automatic session renewal with auth refresh endpoints
  • Secure Storage: HTTP-only cookies for token storage
  • Session Update: Dynamic session updates for profile changes

Protected Routes

// Enhanced route protection with role-based access
export async function middleware(request) {
  // Check authentication status
  // Validate user roles with granular permissions
  // Redirect unauthorized access
  // Handle emergency access exceptions
}

πŸ‘₯ User Roles & Permissions

🩸 Donor

  • Enhanced Profile Management: Comprehensive donor profile with medical history
  • Request Tracking: Monitor blood request status with real-time updates
  • Donation History: Track past donations with detailed statistics
  • Emergency Requests: Submit urgent blood needs with priority handling
  • Drive Participation: Register for and participate in donation drives
  • Critical Settings: Configure availability for emergency blood needs
  • Contact Responses: Respond to blood bank contact requests

πŸ₯ Hospital

  • Patient Management: Handle patient blood requirements with comprehensive tracking
  • Hospital Inventory Management: Independent blood stock management with batch tracking
  • Inventory Dashboard: Real-time inventory overview with blood type breakdown
  • Stock Level Management: Minimum stock level configuration with automated alerts
  • Expiry Tracking: Blood unit expiration monitoring with 30-day warnings
  • Inventory Logs: Complete audit trail of inventory changes and transactions
  • Hospital Requests: Submit and manage hospital-to-blood bank requests
  • Request Acceptance: Process incoming blood requests with status management
  • Emergency Access: Priority blood request handling with instant notifications

πŸ›οΈ Blood Bank

  • Advanced Inventory Management: Complete blood stock control with analytics
  • Request Processing: Accept/reject blood requests with automated notifications
  • Donor Coordination: Manage donor appointments and communication
  • Emergency Notifications: Receive urgent request alerts with proximity-based matching
  • Donation Drive Management: Create, manage, and track donation drives
  • Donor Contact System: Direct communication with registered donors
  • Analytics Dashboard: Comprehensive statistics and reporting tools
  • Multi-location Management: Handle operations across different locations

πŸ“Š Core Modules

1. Enhanced Blood Request Management (/app/api/requests/)

// Advanced functionality
- Create new blood requests with automatic blood bank matching
- Track request status with real-time updates (pending/accepted/rejected/fulfilled)
- Update request information with audit trails
- Emergency request processing with priority handling
- Automated blood bank notifications with proximity search
- Hospital-specific request management
- Bulk request processing capabilities

2. Comprehensive Inventory Management (/app/api/inventory/ & /app/api/hospital-inventory/)

// Blood Bank Inventory Operations
- Real-time blood unit tracking with advanced analytics
- Blood type categorization with compatibility matrix
- Expiry date management with automated alerts
- Low stock alerts with configurable thresholds
- Comprehensive inventory transaction logging
- Multi-location inventory support

// Hospital Inventory Operations
- Independent hospital blood stock management
- Batch number tracking with expiration monitoring
- Minimum and maximum stock level configuration
- Complete audit trail with detailed change logs
- Stock level indicators with visual dashboards
- Automated reorder suggestions

3. Donation Drive System (/app/api/donation-drives/)

// Drive management features
- Create and schedule donation drives
- Registration system for donor participation
- Drive analytics and reporting
- Automated notifications and reminders
- Multi-location drive support
- Performance tracking and statistics

4. Donor-Blood Bank Communication (/app/api/donor-contact-request/)

// Enhanced communication system
- Direct donor contact requests from blood banks
- Secure messaging between parties
- Response tracking and management
- Critical donor availability settings
- Emergency contact protocols
- Communication history and audit trails

5. Advanced Emergency System (/app/emergency/)

// Comprehensive emergency features
- Guest access with minimal registration
- Location-based blood bank search with distance calculation
- Priority request processing with immediate notifications
- Emergency contact management with direct communication
- Real-time status tracking with updates
- Emergency call interface for urgent situations

πŸ€– AI Chatbot Integration

Enhanced Groq AI Implementation

// Advanced chatbot capabilities
- Blood-related query assistance with context awareness
- Role-specific guidance and personalized responses
- Emergency procedure information with step-by-step guidance
- Donation process guidance with detailed instructions
- Real-time conversation handling with message processing
- Enhanced knowledge base with blood compatibility information

Enhanced Knowledge Base Topics:

  • Blood donation eligibility with detailed criteria
  • Blood types and compatibility with visual matrix
  • Emergency procedures with immediate actions
  • Donation process steps with preparation guidelines
  • Health and safety guidelines with best practices
  • Drive participation and scheduling assistance

Features:

  • Contextual Responses: Role-aware assistance with personalized guidance
  • Multi-turn Conversations: Advanced conversation context management
  • Emergency Guidance: Immediate help for urgent situations with action items
  • Educational Content: Comprehensive blood donation awareness and education

πŸ“± Enhanced API Documentation

Authentication Endpoints

POST /api/auth/signin           # User login with role validation
POST /api/auth/signout          # User logout with session cleanup
GET  /api/auth/session          # Current session with role information
POST /api/auth/refresh          # Session refresh and renewal
POST /api/users/register        # Multi-step user registration
POST /api/users/complete-registration # Profile completion after role selection

Blood Request Endpoints

GET    /api/requests            # List requests with advanced filtering
POST   /api/requests            # Create request with automatic matching
PUT    /api/requests/:id        # Update request status with notifications
DELETE /api/requests/:id        # Cancel request with status tracking
GET    /api/requests/track      # Universal request tracking system

Hospital Request System

GET    /api/hospital-requests   # Hospital-specific request management
POST   /api/hospital-requests   # Create hospital requests
PUT    /api/hospital-requests/:id # Update hospital request status
GET    /api/hospital-requests/respond # Hospital request response system

Donation Drive Endpoints

GET    /api/donation-drives     # List available drives with filtering
POST   /api/donation-drives/create # Create new donation drive
POST   /api/donation-drives/register # Register for drive participation
GET    /api/donation-drives/my-drives # User's registered drives

Donor Communication Endpoints

POST   /api/donor-contact-request # Create donor contact request
GET    /api/donor-contact-request # List contact requests
POST   /api/donor-contact-request/respond # Respond to contact requests

Enhanced Inventory Endpoints

GET    /api/inventory           # Blood bank inventory with analytics
POST   /api/inventory           # Update inventory with logging
GET    /api/inventory/logs      # Detailed inventory change history
GET    /api/hospital-inventory  # Hospital inventory with breakdown
POST   /api/hospital-inventory  # Add/update hospital inventory
GET    /api/hospital-inventory/logs # Hospital inventory audit logs

🎨 Enhanced UI Components

Core Components

Enhanced Navigation (/components/navbar.jsx)

  • Role-based Menus: Dynamically generated navigation based on user roles
  • Multi-level Navigation: Hierarchical menu structure for complex workflows
  • Authentication State: Advanced login/logout with session management
  • Responsive Design: Mobile-optimized with collapsible sections
  • Theme Integration: Seamless dark/light mode transitions

Advanced Authentication (/components/Login.jsx & /components/RoleSelection.jsx)

  • Multi-step Registration: Guided registration with role-specific forms
  • Enhanced Validation: Client and server-side validation with real-time feedback
  • Role Selection: Interactive role selection with detailed descriptions
  • Error Handling: User-friendly error messages with actionable guidance
  • Responsive Forms: Mobile-optimized with accessible form controls

Enhanced Chatbot Interface (/components/Chatbot.jsx)

  • Advanced Chat UI: Modern chat interface with message threading
  • Message Processing: Enhanced message handling with context awareness
  • Chat History: Persistent conversation history with search functionality
  • Typing Indicators: Real-time typing status and response indicators
  • File Attachments: Support for sharing relevant documents and images

Specialized Components

Role Guard System (/components/RoleGuard.jsx & /components/ProtectedRoute.jsx)

// Advanced access control
- Granular permission checking
- Role-based component rendering
- Automatic redirection for unauthorized access
- Emergency access exceptions
- Session validation with real-time updates

Enhanced Form Components (/components/forms/)

// Specialized form handling
- Blood type selection with compatibility info
- Date/time pickers for scheduling
- Location selection with maps integration
- File upload with validation
- Multi-step form wizards

πŸ”§ Enhanced Utilities & Hooks

Advanced Custom Hooks

Emergency Management (/hooks/useEmergencyNotifications.js & /hooks/useEmergencyRequestCheck.js)

// Comprehensive emergency handling
const { notifications, emergencyCheck, handleEmergency } = useEmergencyNotifications();
// Real-time emergency request validation
// Automated alert distribution
// Priority-based notification routing
// Emergency contact management

Enhanced Role Management (/hooks/useUserRole.js)

// Advanced role-based functionality
const { userRole, permissions, checkAccess, hasPermission } = useUserRole();
// Granular permission checking
// Dynamic role updates
// Session-aware role management
// Multi-level authorization

Request Status Management (/hooks/useRequestStatus.js)

// Comprehensive request tracking
const { requests, updateStatus, trackProgress, getHistory } = useRequestStatus();
// Real-time status synchronization
// Request lifecycle management
// Automated status notifications
// Historical tracking and analytics

Enhanced Utility Libraries

Blood Compatibility System (/lib/bloodCompatibility.js)

// Advanced compatibility checking
- Complete blood type compatibility matrix
- Donor-recipient matching algorithms
- Emergency compatibility protocols
- Rare blood type handling

Message Processing (/lib/messageProcessor.js)

// Enhanced chatbot integration
- Context-aware message processing
- Multi-turn conversation handling
- Intent recognition and response routing
- Personalized response generation

πŸš€ Deployment

Vercel Deployment (Recommended)

  1. Connect Repository

    # Push to GitHub with latest changes
    git push origin main
  2. Configure Environment Variables

    MONGODB_URI=your-production-mongodb-uri
    NEXTAUTH_SECRET=your-production-secret
    NEXTAUTH_URL=https://your-domain.vercel.app
    GROQ_API_KEY=your-groq-api-key
  3. Deploy

    • Connect GitHub repository to Vercel
    • Add environment variables
    • Configure build settings for optimal performance
    • Deploy automatically on push with preview deployments

🀝 Contributing

Enhanced Development Guidelines

  1. Code Standards: Follow ESLint configuration with Prettier formatting
  2. Component Architecture: Modular components with custom hooks
  3. API Design: RESTful endpoints with comprehensive error handling
  4. Database Design: Optimized schemas with proper indexing
  5. Authentication: Multi-layered security with role-based access
  6. Testing: Unit and integration tests for critical components
  7. Documentation: Comprehensive inline documentation
  8. Performance: Optimized queries and component rendering

Built with ❀️ for saving lives through technology

BloodBond - Connecting blood donors, hospitals, and blood banks for a healthier tomorrow

πŸ†• Latest Updates (Version 2.0)

  • βœ… Donation Drive Management: Complete drive creation and participation system
  • βœ… Advanced Donor-Blood Bank Communication: Direct contact and request system
  • βœ… Enhanced Emergency System: Improved emergency call interface and handling
  • βœ… Hospital Request Management: Specialized hospital-to-blood bank request system
  • βœ… Blood Compatibility Matrix: Advanced blood type compatibility checking
  • βœ… Enhanced Chatbot: Improved AI assistance with message processing
  • βœ… Role Guard System: Comprehensive role-based access control
  • βœ… Multi-step Registration: Enhanced user onboarding experience
  • βœ… Advanced Analytics: Comprehensive statistics and reporting
  • βœ… Enhanced UI/UX: Improved interface with better navigation and theming

GitHub stars GitHub forks

About

A modern, full-stack blood bank management system connecting donors, hospitals, and blood banks. Features real-time inventory, emergency requests, donation drive coordination, and an AI chatbot. Built with Next.js, React, and MongoDB. Originally made by Shah Dev M, Shah Meet H, Savani Utsav D

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages