How shravistadokuparthi/yojantha works
Yojantha is a citizen-facing government-scheme discovery and tracking platform. A typical workflow is to create an account, maintain a profile, get scheme recommendations, explore scheme details or ask the chatbot, and mark schemes as interested or applied. The backend also stores scheme data, supports semantic recommendation and chat, and schedules reminders. The graph follows explicit imports and calls where available; broader frontend-to-API interactions and government-data synchronization are documented capabilities but their wiring is not shown in the sampled source.
Main entry points: Schemes.js Scheme records · dashboard.jsx Dashboard · server.js Express server · User.js User records
Components 30
Citizen web app
- Page router
frontend/src/App.jsx - Dashboard
frontend/src/pages/dashboard.jsx - Home
frontend/src/pages/home.jsx - Profile page
frontend/src/pages/profile.jsx - Scheme browser
frontend/src/pages/schemes.jsx - Recommendations
frontend/src/pages/recommendations.jsx - My schemes
frontend/src/pages/MySchemes.jsx - Chatbot UI
frontend/src/pages/Chatbot.jsx - Thematic background
frontend/src/components/ThematicBackground.jsx
Identity and profiles
- Auth routes
backend/routes/authRoutes.js - Account controller
backend/controllers/authController.js - Profile routes
backend/routes/profileRoutes.js - Profile controller
backend/controllers/profileController.js - JWT middleware
backend/middleware/authMiddleware.js - User records
backend/models/User.js - OTP records
backend/models/OTP.js
Scheme discovery
- Scheme routes
backend/routes/schemesRoutes.js - Scheme controller
backend/controllers/SchemesController.js - Recommendations API
backend/routes/airoutes.js - Chat API
backend/routes/chatRoutes.js - Scheme records
backend/models/Schemes.js - Embedding generation
backend/Scripts/generateEmbeddings.js
Platform services
- Application tracking
backend/routes/applyRoutes.js - Scheme reminders
backend/cron/schemeReminders.js - Email service
backend/utils/emailService.js - Express server
backend/server.js
Other components
- Citizen
- MongoDB
- Government data source
- SMTP provider
Connections 45
- Citizen → Page router: uses
README.md - Page router → Dashboard: routes to
frontend/src/App.jsx - Page router → Recommendations: routes to
frontend/src/App.jsx - Page router → My schemes: routes to
frontend/src/App.jsx - Dashboard → Home: renders
frontend/src/pages/dashboard.jsx - Dashboard → Profile page: renders
frontend/src/pages/dashboard.jsx - Dashboard → Scheme browser: renders
frontend/src/pages/dashboard.jsx - Dashboard → Recommendations: renders
frontend/src/pages/dashboard.jsx - Dashboard → My schemes: renders
frontend/src/pages/dashboard.jsx - Dashboard → Chatbot UI: renders
frontend/src/pages/dashboard.jsx - Dashboard → Thematic background: uses
frontend/src/pages/dashboard.jsx - Express server → Auth routes: mounts
backend/server.js - Express server → Profile routes: mounts
backend/server.js - Express server → Scheme routes: mounts
backend/server.js - Express server → Application tracking: mounts
backend/server.js - Express server → Recommendations API: mounts
backend/server.js - Express server → Chat API: mounts
backend/server.js - Express server → Scheme reminders: initializes
backend/server.js - Auth routes → Account controller: dispatches
backend/routes/authRoutes.js - Account controller → User records: reads and writes
backend/controllers/authController.js - Account controller → OTP records: verifies OTP
backend/controllers/authController.js - Account controller → Email service: sends OTP
backend/controllers/authController.js - Profile routes → JWT middleware: authenticates
backend/routes/profileRoutes.js - Profile routes → Profile controller: dispatches
backend/routes/profileRoutes.js - Profile controller → User records: reads and updates
backend/controllers/profileController.js - Application tracking → JWT middleware: authenticates
backend/routes/applyRoutes.js - Application tracking → User records: updates tracking
backend/routes/applyRoutes.js - Scheme routes → Scheme records: queries
backend/routes/schemesRoutes.js - Scheme routes → Scheme controller: dispatches
- Recommendations API → Scheme records: retrieves candidates
backend/routes/airoutes.js - Chat API → Scheme records: retrieves schemes
backend/routes/chatRoutes.js - Embedding generation → Scheme records: updates embeddings
backend/Scripts/generateEmbeddings.js - Scheme reminders → User records: reads recipients
backend/cron/schemeReminders.js - Scheme reminders → Scheme records: reads schemes
backend/cron/schemeReminders.js - Scheme reminders → Email service: sends reminders
backend/cron/schemeReminders.js - Scheme records → User records: finds recipients
backend/models/Schemes.js - Scheme records → Email service: notifies new schemes
backend/models/Schemes.js - Email service → SMTP provider: sends mail
backend/utils/emailService.js - User records → MongoDB: persists records
- Scheme records → MongoDB: persists records
- Recommendations → Recommendations API: requests recommendations
- Chatbot UI → Chat API: sends questions
- Profile page → Profile routes: updates profile
- My schemes → Application tracking: tracks choices
- Government data source → Scheme records: supplies scheme data