How jellyacez/community-disaster-learning-management-system works
B ಕಲ? This is a React/Express disaster-preparedness learning and certification platform for Bacolor residents, with scoped administration for barangay, MDRRMO, and system staff. Residents sign in, discover and enroll in progressive hazard modules, complete assessments, synchronize progress, and obtain verifiable certificates. Administrators create and approve learning content, manage users and feedback, and monitor community and platform performance. The map includes authentication, authorization, and persistence as internal layers. Relationships are limited to README statements and source-index references or shown route wiring; unsampled client-to-API details are left unverified.
Main entry points: moduleRoutes.js Module Routes · adminMdrrmoRoutes.js MDRRMO Routes · server.js API Application · db.js PostgreSQL
Components 24
Resident Learning
- Web App Routes
client/src/App.jsx - Resident Dashboard
client/src/pages/user/dashboard/Dashboard.jsx - Module Catalog
client/src/pages/user/catalog/ModuleCatalog.jsx - Module Viewer
client/src/pages/user/module-viewer/ModuleDetailsPage.jsx - Enrollment Hook
client/src/hooks/useModuleEnrollment.js - Offline Progress Sync
client/src/lib/LocalSave/syncManager.js - Certificates
client/src/pages/user/certificates/Certificates.jsx
Administration
- MDRRMO Routes
server/routes/admin/adminMdrrmoRoutes.js - Barangay Operations
server/controllers/admin/barangayController.js - Feedback Management
client/src/pages/admin/feedback/AdminFeedbackManager.jsx
Backend Workflows
- Module Routes
server/routes/modules/moduleRoutes.js - Module Operations
server/controllers/modules/moduleController.js - Module Services
server/services/modules/ModuleService.js - Progress Operations
server/controllers/modules/moduleProgressController.js - Progress Service
server/services/modules/ModuleProgressService.js - Certificate Operations
server/controllers/certificatesController.js
Identity and Security
- Session Authentication
server/utils/auth.js - Session Guard
server/middleware/authenticate.js - Role Permissions
server/config/permissions.js
Platform Services
- PostgreSQL
server/config/db.js - API Application
server/server.js - Live Notifications
server/services/notif/sseService.js
Other components
- Resident
- Administrator
Connections 29
- Resident → Web App Routes: uses
- Administrator → Web App Routes: uses
- Web App Routes → Resident Dashboard: routes to
client/src/App.jsx - Resident → Module Catalog: browses
- Module Catalog → Enrollment Hook: enrolls with
- Enrollment Hook → Module Routes: requests API
- Module Routes → Session Guard: guards
server/routes/modules/moduleRoutes.js - Module Routes → Module Operations: dispatches
server/routes/modules/moduleRoutes.js - Module Routes → Progress Operations: dispatches
server/routes/modules/moduleRoutes.js - Module Operations → Module Services: calls
server/controllers/modules/moduleController.js - Module Services → PostgreSQL: queries
server/services/modules/ModuleService.js - Module Viewer → Offline Progress Sync: saves progress
- Offline Progress Sync → PostgreSQL: syncs remotely
- Progress Operations → Progress Service: calls
server/controllers/modules/moduleProgressController.js - Progress Service → PostgreSQL: queries
- Certificates → Certificate Operations: requests certificate
- Certificate Operations → Progress Service: reads progress
server/controllers/certificatesController.js - Administrator → MDRRMO Routes: manages modules
- MDRRMO Routes → Module Operations: dispatches
server/routes/admin/adminMdrrmoRoutes.js - MDRRMO Routes → Barangay Operations: dispatches
server/routes/admin/adminMdrrmoRoutes.js - Barangay Operations → PostgreSQL: via service
- Feedback Management → MDRRMO Routes: manages feedback
- Session Guard → Session Authentication: checks session
server/middleware/authenticate.js - Session Guard → Role Permissions: checks roles
server/middleware/authenticate.js - API Application → Module Routes: mounts routes
server/server.js - API Application → MDRRMO Routes: mounts routes
- API Application → Session Authentication: mounts auth
server/server.js - API Application → Live Notifications: mounts notifications
server/server.js - Barangay Operations → Live Notifications: publishes updates
server/controllers/admin/barangayController.js