How nanikandikonda/schemeconnectai works
SchemeConnect AI helps citizens discover Indian government schemes and assess eligibility through a conversational web app. The main workflow gathers profile details, requests clarification when important information is missing, narrows scheme candidates, retrieves relevant scheme content, evaluates eligibility, ranks results, and generates a grounded response. The frontend also provides home, scheme-browsing, and how-it-works pages. The conversation flow is documented in sampled source; route internals and several supporting modules were not sampled, so their wiring is shown only where the tree and sampled entry points support it.
Main entry points: conversation_manager.py Conversation manager · main.py FastAPI app · api.js API client · schemes.py Scheme route
Components 23
Web application
- React app
frontend/src/App.jsx - Chat page
frontend/src/pages/Chat.jsx - Scheme pages
frontend/src/pages/Schemes.jsx - API client
frontend/src/services/api.js
API entry
- FastAPI app
backend/main.py - Chat route
backend/api/routes/chat.py - Scheme route
backend/api/routes/schemes.py
Conversation workflow
- Conversation manager
backend/conversation/conversation_manager.py - Profile extraction
backend/llm/profile_extractor.py - Missing-info check
backend/conversation/missing_info.py - Clarification generation
backend/llm/response_generator.py - Response generation
backend/services/generation_service.py - Citizen profile
backend/models/citizen.py
Scheme matching
- Candidate filtering
backend/services/scheme_filter.py - Eligibility engine
backend/eligibility/eligibility_engine.py - Scheme ranking
backend/services/ranking_service.py
Scheme knowledge
- Scheme loader
backend/data/scheme_loader.py - Semantic retrieval
backend/rag/retriever.py - Vector store
backend/rag/vector_store.py - Context builder
backend/rag/context_builder.py - Scheme model
backend/models/scheme.py
Other components
- Citizen
- Gemini service
Connections 28
- Citizen → Chat page: asks about schemes
- React app → Chat page: routes to
- React app → Scheme pages: routes to
- Chat page → API client: submits messages
- Scheme pages → API client: requests schemes
- API client → Chat route: sends requests
- API client → Scheme route: sends requests
- FastAPI app → Chat route: registers route
- FastAPI app → Scheme route: registers route
- FastAPI app → Scheme loader: loads schemes
- FastAPI app → Vector store: indexes schemes
- Chat route → Conversation manager: processes messages
- Scheme route → Scheme loader: loads scheme data
- Conversation manager → Profile extraction: extracts profile
- Conversation manager → Missing-info check: checks required fields
- Conversation manager → Clarification generation: requests clarification
- Conversation manager → Citizen profile: builds profile
- Conversation manager → Candidate filtering: filters schemes
- Conversation manager → Semantic retrieval: retrieves candidates
- Semantic retrieval → Vector store: queries chunks
- Conversation manager → Context builder: builds context
- Conversation manager → Eligibility engine: evaluates schemes
- Conversation manager → Scheme ranking: ranks evaluations
- Conversation manager → Response generation: generates answer
- Response generation → Gemini service: generates text
- Scheme loader → Scheme model: loads scheme records
- Conversation manager → Scheme model: uses scheme records
- Scheme route → Scheme model: returns scheme data