How wacxv/havenbloom works
HavenBloom combines a patient/doctor telemedicine web app, an Express/MongoDB backend, and Python BLE monitoring tools. The main workflow is account access, care coordination and consultation, with a separate device workflow that sends heart-rate readings through MQTT for persistence and live WebSocket display. Paths and links for unsampled capabilities are based on the README and repository tree; detailed wiring is shown only where the excerpts or documentation support it.
Main entry points: App.jsx HavenBloom client · routes REST route groups · app.js Express entry point · mqttService.js MQTT ingestion
Components 24
Web application
- HavenBloom client
havenbloom-frontend-main/src/App.jsx - Sign-in and profiles
havenbloom-frontend-main/src/components/SignIn/SignIn.jsx - Appointments
havenbloom-frontend-main/src/components/Calendar/Calendar.jsx - Messaging
havenbloom-frontend-main/src/components/Messages/Messages.jsx - Video consultation
havenbloom-frontend-main/src/components/Videocall/Videocall.jsx - Health analytics
havenbloom-frontend-main/src/components/Analytics/Analytics.jsx - Device linking
havenbloom-frontend-main/src/components/LinkDevice/LinkDevice.jsx - Care administration
havenbloom-frontend-main/src/pages/admin/AssignPatient.jsx - Socket client
havenbloom-frontend-main/src/services/socketService.js
Backend API
- Express entry point
havenbloom-backend-master/app.js - REST route groups
havenbloom-backend-master/routes - Account and OTP logic
havenbloom-backend-master/controllers/userController.js - Care workflows
havenbloom-backend-master/controllers - Device and readings
havenbloom-backend-master/controllers/deviceController.js - Socket.IO signaling
havenbloom-backend-master/app.js
Device monitoring
- BLE monitor tools
GUI/SMARTWATCH.py - MQTT ingestion
havenbloom-backend-master/services/mqttService.js - Live BPM broadcast
havenbloom-backend-master/services/websocketService.js
Data and files
- MongoDB
havenbloom-backend-master/db.js - Domain data models
havenbloom-backend-master/models - Fetal audio files
havenbloom-backend-master/routes/audioRoutes.js
Other components
- Patient or clinician
- MQTT broker
- SMTP email
Connections 30
- Patient or clinician → HavenBloom client: uses
- HavenBloom client → Sign-in and profiles: routes to
- HavenBloom client → Appointments: routes to
- HavenBloom client → Messaging: routes to
- HavenBloom client → Video consultation: routes to
- HavenBloom client → Health analytics: routes to
- HavenBloom client → Device linking: routes to
- HavenBloom client → Care administration: routes to
- Messaging → Socket client: uses
- Video consultation → Socket client: uses
- Socket client → Socket.IO signaling: Socket.IO
- HavenBloom client → Express entry point: REST requests
- Express entry point → REST route groups: mounts
- REST route groups → Account and OTP logic: dispatches
- REST route groups → Care workflows: dispatches
- REST route groups → Device and readings: dispatches
- Account and OTP logic → Domain data models: reads and writes
- Care workflows → Domain data models: care records
- Device and readings → Domain data models: reads and writes
- BLE monitor tools → MQTT broker: publishes BPM
- BLE monitor tools → Express entry point: device lookup
- MQTT broker → MQTT ingestion: delivers readings
- Express entry point → MQTT ingestion: starts listener
- MQTT ingestion → Domain data models: stores aggregates
- MQTT ingestion → Live BPM broadcast: broadcasts readings
- Device and readings → Live BPM broadcast: broadcasts live BPM
- Live BPM broadcast → Health analytics: streams BPM
- Account and OTP logic → SMTP email: sends OTP email
- REST route groups → Fetal audio files: audio download route
- Fetal audio files → MongoDB: reads GridFS