How subhadeepadhikary-codes/jago-pwa works
JAGO is a scholarship-services PWA for tribal students, with a separate officer console. Its main user journey runs from onboarding and sign-in through scholarship discovery, eligibility and application, then document management and status tracking; officers have queue, exception-review and coverage-analysis views. The sampled files establish routing, shared app/auth state, consent-record retrieval, exception-review and analytics calls, and the API service’s storage/OTA dependencies. Other feature relationships are shown only where the route structure or sampled imports support them; unsampled page internals are not inferred.
Main entry points: App.jsx Application router · AppContext.jsx Shared app state · apiService.js Unified API service · db.js Database service
Components 32
App and access
- Application router
src/App.jsx - Authentication state
src/context/AuthContext.jsx - Shared app state
src/context/AppContext.jsx
Student scholarship journey
- Onboarding
src/pages/Onboarding.jsx - Student login
src/pages/Login.jsx - Student dashboard
src/pages/Dashboard.jsx - Scholarship discovery
src/pages/ScholarshipExplorer.jsx - Find scholarships
src/pages/FindScholarship.jsx - Eligibility check
src/pages/EligibilityChecker.jsx - Scholarship application
src/pages/ApplyScholarship.jsx - Scholarship details
src/pages/ScholarshipDetail.jsx - Application tracking
src/pages/ApplicationTracker.jsx - Document wallet
src/pages/DocumentWallet.jsx - Consent management
src/pages/ConsentManager.jsx - Family hub
src/pages/FamilyHub.jsx - JAGO assistant
src/components/chatbot/JagoChatbot.jsx
Officer console
- Officer login
src/pages/officer/OfficerLogin.jsx - Officer dashboard
src/pages/officer/OfficerDashboard.jsx - Officer queue
src/pages/officer/OfficerQueue.jsx - Exception review
src/pages/officer/OfficerExceptionReview.jsx - Coverage radar
src/pages/officer/OfficerCoverageRadar.jsx
Application services
- Unified API service
src/services/apiService.js - Eligibility rules
src/services/rulesEngine.js - Exception queue service
src/services/exceptionQueueService.js - Ministry analytics
src/services/ministryAnalyticsService.js - OTA cloud service
src/services/otaCloudService.js - Language service
src/services/languageService.js
Data and persistence
- Database service
src/services/db.js - Local data store
src/services/db.js - REST persistence server
server/index.js
Other components
- Student
- Officer
Connections 33
- Student → Application router: uses
- Officer → Application router: uses
- Application router → Authentication state: provides auth
- Application router → Shared app state: provides app state
- Application router → Onboarding: routes to
- Application router → Student login: routes to
- Application router → Student dashboard: routes to
- Application router → Scholarship discovery: routes to
- Application router → Find scholarships: routes to
- Application router → Eligibility check: routes to
- Application router → Scholarship application: routes to
- Application router → Scholarship details: routes to
- Application router → Application tracking: routes to
- Application router → Document wallet: routes to
- Application router → Consent management: routes to
- Application router → Family hub: routes to
- Application router → Officer login: routes to
- Application router → Officer dashboard: routes to
- Application router → Officer queue: routes to
- Shared app state → Unified API service: calls
- Shared app state → Database service: calls
- Shared app state → OTA cloud service: calls
- Shared app state → Language service: calls
- Consent management → Unified API service: gets consent records
- Unified API service → Database service: uses
- Unified API service → OTA cloud service: publishes broadcasts
- Database service → Local data store: reads and writes
- Exception review → Exception queue service: calls
- Coverage radar → Ministry analytics: gets radar data
- Officer login → Authentication state: checks officer access
- Officer dashboard → Shared app state: uses shared state
- Officer queue → Shared app state: uses shared state
- JAGO assistant → Student: assists