How mgp07/bloodbridge works
BloodBridge is a blood-donation portal with donor, patient, and hospital registration and role-based login, plus role-specific dashboards and donor discovery. The visible backend workflow routes authentication requests to controllers, which validate credentials or registration data and use role-specific models; the server connects to MongoDB. The frontend source files indicate additional dashboard and donor-search capabilities, but their request wiring was not excerpted, so those links are omitted. A separate MySQL helper is present, but its relationship to the main server is not shown.
Main entry points: authController.js Auth controller · server.js API server · authRoutes.js Auth routes · db.js MySQL pool
Components 21
Portal interface
- Registration UI
register.js - Login UI
login.js - Donor dashboard
donor-dashboard.js - Patient dashboard
patient-dashboard.js - Hospital dashboard
hospital-dashboard.js - Admin dashboard
admin-dashboard.js - Donor search
find-donors.js
Authentication API
- API server
backend/server.js - Auth routes
backend/routes/authRoutes.js - Auth controller
backend/controllers/authController.js
Domain records
- Admin record
backend/models/Admin.js - Donor record
backend/models/Donor.js - Patient record
backend/models/Patient.js - Hospital record
backend/models/Hospital.js - Blood request
backend/models/BloodRequest.js - Donation record
backend/models/Donation.js
Data connections
- MongoDB
- MySQL pool
backend/config/db.js
Other components
- Donor
- Patient
- Hospital
Connections 8
- API server → Auth routes: mounts routes
backend/server.js - Auth routes → Auth controller: dispatches auth
backend/routes/authRoutes.js - Auth controller → Admin record: queries
backend/controllers/authController.js - Auth controller → Donor record: queries
backend/controllers/authController.js - Auth controller → Patient record: queries
backend/controllers/authController.js - Auth controller → Hospital record: queries
backend/controllers/authController.js - API server → MongoDB: connects
backend/server.js - MySQL pool → MySQL pool
backend/config/db.js