How faixan-akhtar/life-link works
LifeLink connects blood recipients with donors through role-specific accounts, donor discovery, blood requests, donor responses, and status tracking. The React application exposes these user experiences; the Express API handles authentication, donor and request operations, responses, and enquiries, with MongoDB-backed models. The graph follows route mounts and controller/model calls visible in sampled source. Frontend API call wiring and several controller implementations were not sampled, so those connections are not inferred.
Main entry points: server.js Express server · App.jsx React routes · User.js User records · donorRoutes.js Donor routes
Components 28
User experience
- React routes
client/src/App.jsx - Account pages
client/src/RegisterPage.jsx - Donor discovery
client/src/FindDonor.jsx - Request pages
client/src/RequestBlood.jsx - Role dashboards
client/src/RecipientDashboard.jsx - Contact page
client/src/ContactPage.jsx
API and access
- Express server
server/server.js - Authentication routes
server/routes/authRoute.js - Donor routes
server/routes/donorRoutes.js - Request routes
server/routes/requestRoute.js - Donation routes
server/routes/donationRoute.js - Dashboard routes
server/routes/donorDashboardRoutes.js - Contact routes
server/routes/contactRoute.js - Authentication
server/controllers/authController.js - JWT verification
server/middleware/authmiddleware.js
Donation workflow
- Donor operations
server/controllers/donorController.js - Request operations
server/controllers/requestController.js - Donation responses
server/controllers/donationController.js - Donor dashboard operations
server/controllers/donorDashboardController.js - Contact enquiries
server/controllers/contactController.js
Persistence
- User records
server/models/User.js - Blood requests
server/models/BloodRequest.js - Donation responses
server/models/DonationResponse.js - Dashboard request records
server/models/donorDashboardBloodRequest.js - Contact records
server/models/Contact.js - MongoDB connection
server/config/db.js
Other components
- Donors and recipients
- MongoDB
Connections 31
- Donors and recipients → React routes: use app
- React routes → Account pages: routes to
- React routes → Donor discovery: routes to
- React routes → Request pages: routes to
- React routes → Role dashboards: routes to
- React routes → Contact page: routes to
- Express server → Authentication routes: mounts
- Express server → Donor routes: mounts
- Express server → Request routes: mounts
- Express server → Donation routes: mounts
- Express server → Dashboard routes: mounts
- Express server → Contact routes: mounts
- Authentication routes → Authentication: dispatches
- Donor routes → Donor operations: dispatches
- Request routes → Request operations: dispatches
- Donation routes → Donation responses: dispatches
- Dashboard routes → Donor dashboard operations: dispatches
- Contact routes → Contact enquiries: dispatches
- Donor routes → JWT verification: protects routes
- Dashboard routes → JWT verification: protects routes
- Authentication → User records: reads and writes
- Donor operations → User records: reads and writes
- Request operations → Blood requests: reads and writes
- Request operations → User records: finds donors
- Donation responses → Blood requests: reads and updates
- Donation responses → Donation responses: reads and updates
- Donor dashboard operations → User records: reads and updates
- Donor dashboard operations → Dashboard request records: reads and updates
- Contact enquiries → Contact records: persists enquiries
- Express server → MongoDB connection: connects through
- MongoDB connection → MongoDB: connects