How joydip-007/blood-donor-management works
This is a blood donor management web application. Users authenticate with OTP, register or maintain donor profiles, search donors by blood group and location, and submit emergency requests; administrators manage donors and requests and view statistics. The React app routes these workflows through a shared API configuration to a Node/Express backend. The README documents a relational database and email/geocoding/map integrations. Several feature relationships are documented or visible in the excerpts; unsampled implementation details are not inferred.
Main entry points: App.tsx App router · api.ts API client · index.js Express API · DonorRegistration.tsx Donor registration
Components 21
Application routing
- App router
src/App.tsx - OTP sign-in
src/components/Auth/LoginSignup.tsx - Auth context
src/contexts/AuthContext.tsx
Donor workflows
- Donor registration
src/components/DonorRegistration.tsx - Donor profile
src/components/DonorProfile.tsx - Donor search
src/components/DonorSearch.tsx - Donor map
src/components/DonorMap.tsx
Requests and administration
- Emergency requests
src/components/EmergencyRequest.tsx - Admin dashboard
src/components/Admin/AdminDashboard.tsx - Add donor
src/components/Admin/AdminAddDonor.tsx - Manage donors
src/components/Admin/AdminDonorList.tsx - Review requests
src/components/Admin/AdminEmergencyRequests.tsx - Statistics
src/components/Statistics.tsx
Backend and integrations
- API client
src/utils/api.ts - Geocoding
src/utils/geocoding.ts - Express API
server/index.js - Relational database
- Resend email
- Maps provider
Other components
- User
- Administrator
Connections 29
- User → App router: uses
- Administrator → App router: uses
- App router → OTP sign-in: routes to
src/App.tsx - App router → Donor registration: routes to
src/App.tsx - App router → Donor profile: routes to
src/App.tsx - App router → Emergency requests: routes to
src/App.tsx - App router → Statistics: routes to
src/App.tsx - App router → Add donor: routes to
src/App.tsx - App router → Manage donors: routes to
src/App.tsx - App router → Review requests: routes to
src/App.tsx - OTP sign-in → Auth context: verifies OTP
src/components/Auth/LoginSignup.tsx - Auth context → API client: calls
src/contexts/AuthContext.tsx - Donor registration → API client: submits donor
src/components/DonorRegistration.tsx - Donor profile → API client: loads profile
src/components/DonorProfile.tsx - Donor search → API client: searches donors
src/components/DonorSearch.tsx - Donor search → Donor map: renders results
src/components/DonorSearch.tsx - Donor registration → Geocoding: geocodes location
src/components/DonorRegistration.tsx - Geocoding → Express API: requests geocoding
src/utils/geocoding.ts - Emergency requests → API client: submits request
src/components/EmergencyRequest.tsx - Admin dashboard → API client: loads dashboard data
src/components/Admin/AdminDashboard.tsx - Add donor → API client: creates donor
src/components/Admin/AdminAddDonor.tsx - Manage donors → API client: manages donors
src/components/Admin/AdminDonorList.tsx - Review requests → API client: manages requests
src/components/Admin/AdminEmergencyRequests.tsx - Statistics → API client: loads statistics
src/components/Statistics.tsx - API client → Express API: sends API requests
- Express API → Relational database: reads and writes
- Express API → Resend email: sends OTP
- Express API → Maps provider: geocodes locations
- Donor map → Maps provider: visualizes locations