How vthish/pulseaid-android works
PulseAid is an Android MVVM blood-donation coordination app for donors, hospitals, blood banks, and administrators. The principal workflow is authenticated role selection, profile verification, then coordination of donor appointments, hospital requests, blood-bank stock and deliveries, with administrators resolving requests and broadcasting emergencies. Sampled code confirms Firebase Auth/Firestore access, appointment booking, QR donor check-in, stock calculations, emergency alerts, and profile gating; several role-specific screens are represented from the repository tree because their implementations were not sampled.
Components 29
Access And Profiles
- Login Screen
app/src/main/java/com/pulseaid/ui/LoginActivity.java - Login ViewModel
app/src/main/java/com/pulseaid/viewmodel/LoginViewModel.java - Auth Repository
app/src/main/java/com/pulseaid/data/AuthRepository.java - Profile Verification
app/src/main/java/com/pulseaid/ui/LoginActivity.java
Donor Operations
- Appointment Booking
app/src/main/java/com/pulseaid/ui/donor/DonorBookingActivity.java - Donor Booking VM
app/src/main/java/com/pulseaid/viewmodel/donor/DonorBookingViewModel.java - Donor Repository
app/src/main/java/com/pulseaid/data/donor/DonorRepository.java - Urgent Alerts
app/src/main/java/com/pulseaid/ui/donor/DonorUrgentAlertsFragment.java
Hospital Requests
- Hospital Dashboard
app/src/main/java/com/pulseaid/ui/hospital/HospitalDashboard.java - Request Form
app/src/main/java/com/pulseaid/ui/hospital/RequestFormActivity.java - Active Requests
app/src/main/java/com/pulseaid/ui/hospital/HospitalActiveRequestsActivity.java - Hospital Profile
app/src/main/java/com/pulseaid/ui/hospital/HospitalProfileActivity.java
Blood Bank Operations
- Bank Dashboard
app/src/main/java/com/pulseaid/ui/bloodBank/BloodBankDashboardActivity.java - Bank Dashboard VM
app/src/main/java/com/pulseaid/viewmodel/bloodBank/BloodBankDashboardViewModel.java - Stock Repository
app/src/main/java/com/pulseaid/data/bloodBank/BloodBankDashboardRepository.java - Stock Monitor
app/src/main/java/com/pulseaid/ui/bloodBank/StockMonitosActivity.java - QR Check-In
app/src/main/java/com/pulseaid/ui/bloodBank/DonerCheckInQueryActivity.java - Check-In ViewModel
app/src/main/java/com/pulseaid/viewmodel/bloodBank/DonorCheckinViewModel.java
Administration
- Admin Dashboard
app/src/main/java/com/pulseaid/ui/admin/AdminDashboardActivity.java - Manage Requests
app/src/main/java/com/pulseaid/ui/admin/ManageRequestsActivity.java - Request Management VM
app/src/main/java/com/pulseaid/viewmodel/admin/ManageRequestsViewModel.java - Emergency Broadcasting
app/src/main/java/com/pulseaid/ui/admin/ManageRequestsActivity.java
Other components
- App User
- Firebase Auth
- Cloud Firestore
- Donor
- Hospital
- Blood Bank
- Administrator
Connections 33
- App User → Login Screen: opens app
- Login Screen → Login ViewModel: submits login
- Login ViewModel → Auth Repository: authenticates
- Auth Repository → Firebase Auth: signs in
- Auth Repository → Cloud Firestore: loads user
- Login Screen → Profile Verification: checks role
- Profile Verification → Cloud Firestore: reads profile
- Donor → Appointment Booking: books appointment
- Appointment Booking → Donor Booking VM: requests booking
- Donor Booking VM → Donor Repository: loads centers
- Donor Repository → Cloud Firestore: reads and writes
- Donor → Urgent Alerts: views alerts
- Urgent Alerts → Cloud Firestore: reads alerts
- Hospital → Request Form: submits request
- Hospital → Hospital Dashboard: opens dashboard
- Hospital Dashboard → Request Form: starts request
- Hospital → Active Requests: tracks requests
- Hospital → Hospital Profile: completes profile
- Hospital Profile → Cloud Firestore: updates profile
- Blood Bank → Bank Dashboard: opens dashboard
- Bank Dashboard → Bank Dashboard VM: loads metrics
- Bank Dashboard VM → Stock Repository: queries stock
- Stock Repository → Cloud Firestore: reads stock
- Blood Bank → Stock Monitor: monitors stock
- Blood Bank → QR Check-In: scans donor QR
- QR Check-In → Check-In ViewModel: verifies scan
- Check-In ViewModel → Cloud Firestore: loads appointment
- Administrator → Admin Dashboard: opens dashboard
- Admin Dashboard → Manage Requests: manages requests
- Manage Requests → Request Management VM: loads request lists
- Request Management VM → Cloud Firestore: resolves requests
- Administrator → Emergency Broadcasting: broadcasts shortage
- Emergency Broadcasting → Cloud Firestore: publishes alerts