Scheme Setu is a full-stack web app that helps citizens discover Indian government scholarship and healthcare schemes they're actually eligible for — instead of digging through scattered official portals.
Users can either fill in a short eligibility form or just describe themselves in plain text, and the app matches them against a curated database of real government schemes, explains why they qualify, and lets them chat with an AI assistant about their results.
⚠️ Disclaimer: Scheme Setu is an independent informational and awareness platform. It does not represent any government entity, does not process applications, and never asks for Aadhaar numbers or fees. All applications must be completed on the official government portal linked from each scheme.
- Eligibility Matching — Enter age, income, state, gender, category, education level, CGPA, BPL status, and medical need to get a filtered list of schemes you qualify for, each with a plain-language "why you qualify" explanation.
- Express Match — Skip the form. Describe yourself in a sentence or two and a Gemini-powered endpoint extracts your profile automatically, asking follow-up questions for anything it couldn't determine.
- AI Chat Assistant — Ask questions about your matched schemes (answered strictly from your matched data to avoid made-up info) or general questions about the scheme database if you haven't searched yet.
- 24 real schemes covering scholarships and healthcare, sourced with official application links.
| Layer | Technology |
|---|---|
| Frontend | Single self-contained index.html (HTML/CSS/vanilla JS) — no build step |
| Backend | Node.js + Express |
| Data | Local schemes.json file, loaded into memory at startup |
| AI | Google Gemini API (free-text profile extraction + chat) |
govt-scheme-finder/
│
├── Frontend/
│ └── index.html # Complete UI, styling, and fetch logic
│
├── Backend/
│ ├── package.json # Dependencies: express, cors, dotenv
│ ├── package-lock.json
│ ├── schemes.json # Database of 24 scholarship/healthcare schemes
│ └── server.js # Express server, matching engine, Gemini integration
│
└── .gitignore # Excludes node_modules
- Node.js (v18 or later recommended)
- A Google Gemini API key
git clone https://github.com/SurashriBanerjee/govt-scheme-finder.git
cd govt-scheme-findercd Backend
npm installStart the server:
npm startYou should see:
[Cache] Loaded 24 schemes.
[Gemini] API key loaded ✓
[Server] Running at http://localhost:5000
[Server] Health check: http://localhost:5000/api/health
Visit http://localhost:5000/api/health any time to confirm the server is running, the scheme cache loaded, and your Gemini key is valid.
Simply open Frontend/index.html in your browser (or serve it with any static file server). It talks to the backend at http://localhost:5000 by default.
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/health |
Checks server status, scheme count, and Gemini connectivity |
| POST | /api/match |
Matches a structured user profile against the scheme database |
| POST | /api/chat |
AI chat — answers from matched schemes, or the full database if none yet |
| POST | /api/extract-profile |
Express Match — extracts a structured profile from free-text input |
Matching is fully rule-based and runs entirely on the server (no AI call needed), checking:
- Income ceiling
- Age range
- State (or "All India" schemes)
- Gender eligibility
- Demographic category
- Education level
- Minimum score/CGPA (where applicable)
- BPL card requirement
- Medical need type
The AI (Gemini) is only used for two things: turning free-text descriptions into structured profiles (Express Match), and answering natural-language questions in the chat assistant.
- Basic prompt-injection sanitization strips common override phrases (e.g. "ignore previous instructions") from user input before it reaches the Gemini API.
- The chat assistant is restricted to answering from matched scheme data only, once a match has been run — it's told not to invent information.