Scan any medicine. Verify it's real. Find safe pharmacies near you. Talk to an AI doctor in your language.
Built for Bharat. Not just India.
Report a Bug · Request a Feature · Join Discord · Read the Docs
- 🩺 SahiDawa — सही दवा
- 🚨 The Problem We're Solving
- ✨ What SahiDawa Does
- 🏗️ Architecture
- 🛠️ Tech Stack
- 🗺️ Roadmap & Phases
- 🚀 Getting Started
- 📁 Project Structure
- 🤝 Contributing
- 🌏 Supported Languages
- 📊 Data Sources (All Free & Public)
- 🏆 GSSoC 2026
- 💬 Community
- 📜 License
- 👥 Contributors
- 🙏 Acknowledgements
- ❤️ Why Open Source?
India has a three-layer healthcare crisis that no existing platform solves simultaneously:
| Problem | Scale | Current Solution |
|---|---|---|
| 12–25% of medicines in India are fake or substandard | 1.4 billion people at risk | ❌ None — no citizen-facing verifier exists |
| 65% of population is in rural areas with almost no qualified doctor | 900M+ people | ❌ eSanjeevani exists but requires English + stable internet |
| 22 official languages — health info mostly in English/Hindi only | 500M+ non-Hindi speakers | ❌ No voice-first multilingual health app |
Real incident: In July 2025, Delhi Police busted a counterfeit medicine ring supplying fake Johnson & Johnson and GSK medicines — made of chalk powder and starch — all the way into government hospitals. Patients had zero way to verify these medicines before consuming them.
SahiDawa fixes this. For free. Forever. Open source.
- 📱 Scan Medicine ➔ 🔍 AI Verifies (CDSCO) ➔ ✅ Real /
⚠️ Suspicious / ❌ Fake - 🗣️ Speak Symptoms ➔ 🤖 AI Triage (22 Languages) ➔ 🏥 Find Nearest Pharmacy
- 📸 Report Fakes ➔ 🗺️ Community Heatmap ➔ 📢 District-Level Alerts
| Feature | Description | Status |
|---|---|---|
| 🔍 Medicine Scanner | Scan barcode/QR → verify against CDSCO database | 🚧 Building |
| 🖼️ AI Image Analysis | Cloudinary-powered packaging comparison (real vs fake visual) | 🔜 Planned |
| 🗣️ Voice Health Assistant | Symptoms in 22 Indian languages via Whisper + Sarvam AI | 🔜 Planned |
| 🗺️ Pharmacy & ASHA Map | Verified Jan Aushadhi stores + ASHA workers via PostGIS | 🔜 Planned |
| 📊 Counterfeit Heatmap | Community-reported fake medicines aggregated by district | 🔜 Planned |
| 🤖 CDSCO Alert Agent | Autonomous agent monitoring CDSCO drug recalls every 6h | 🔜 Planned |
| 📶 Offline-First PWA | Works without internet after first load (Workbox) | 🔜 Planned |
| 🆓 100% Free | No ads, no premium plan, no data sold. Ever. | ✅ Always |
flowchart TD
A[Rural Citizen / Patient] -->|Scan Barcode / Voice Input| B[Next.js PWA Client]
B -->|API Request| C[Node.js Express API]
C <-->|Verify Data| D[(Supabase PostgreSQL)]
C <-->|Cache| E[(Redis Cache)]
B -->|Media Uploads| F[Python FastAPI Service]
F -->|Process Voice| G[Whisper ASR]
F -->|Analyze Image| H[OpenCV / TF Lite]
F -->|Medical Triage| I[Sarvam AI / LangChain]
I --> C
J[LangChain CDSCO Poller] -->|Fetch Recalls| K[CDSCO Portal]
J -->|Update Alerts| D
- Next.js 16 — React 19 framework with App Router + SSR
- Tailwind CSS 4.0 — High-performance utility-first CSS
- shadcn/ui — UI components
- Workbox — PWA offline caching
- @zxing/browser — In-browser barcode/QR scanning
- Leaflet.js + OpenStreetMap — Maps (free, no API key)
- next-intl — i18n for 22 Indian languages
- Node.js 22 + Express 5.0 + TypeScript — API server
- Redis (Upstash free tier) — Drug lookup caching
- FastAPI + Python — ML microservice
- OpenCV.js — In-browser image analysis
- TensorFlow Lite — On-device packaging classifier
- Whisper (self-hosted) — Voice input, 22 languages
- Sarvam AI — Indian language LLM
- LangChain — RAG pipeline + agent orchestration
- PostgreSQL + PostGIS — Primary DB + geo queries
- pgvector — Vector search for RAG
- Supabase — Managed Postgres (free tier for dev)
- Cloudinary — Medicine photo storage + image analysis (GSSoC 2026 bounty partner)
- Docker + Docker Compose — Containerization
- GitHub Actions — CI/CD
- Vercel — Frontend deployment (free)
- Railway — Backend deployment (free tier)
- Project scaffolding (Next.js + TypeScript + Tailwind)
- CDSCO drug database scraper + PostgreSQL schema
- Barcode/QR scanner UI (ZXing)
- Medicine lookup REST API
- Supabase integration
- GitHub Actions CI pipeline
- English UI with i18n setup
- PostGIS pharmacy + ASHA worker map (Leaflet.js)
- i18n system — 22 Indian language JSON files
- Cloudinary photo upload integration
- Offline PWA (Workbox cache strategies)
- FastAPI ML microservice scaffolding
- Redis caching for drug lookups
- OpenCV.js packaging geometry detection
- TF Lite medicine image classifier
- Whisper ASR voice input (22 languages)
- Sarvam AI + LangChain RAG health assistant
- CDSCO drug alert monitoring agent (LangChain)
- Counterfeit heatmap + D3.js visualization
- Push notification system for district alerts
- WCAG 2.1 accessibility audit
- Lighthouse CI (target 90+ score)
- Docker Compose for self-hosting
- OpenAPI/Swagger documentation
- ABHA health card integration (optional)
- Public launch
node >= 20.0.0
python >= 3.10
docker >= 24.0 (optional, for full stack)# 1. Clone the repository
git clone https://github.com/RatLoopz/sahidawa-india.git
cd sahidawa-india
# 2. Install frontend dependencies
cd apps/web
npm install
# 3. Copy environment variables
cp .env.example .env.local
# Fill in your Supabase URL + anon key (free at supabase.com)
# 4. Run development server
npm run dev
# Open http://localhost:3000If you encounter No matching version found errors while running npm install, it may be caused by the canary package versions used in this project.
Try running:
npm install --legacy-peer-depsor:
npm install --forceIf the issue still persists, you may temporarily downgrade package versions locally to get the project running on your machine.
⚠️ Important: Do not commit modifiedpackage.jsonorpackage-lock.jsonfiles created during local downgrades. Revert those changes before pushing your PR.
# Clone and start everything
git clone https://github.com/RatLoopz/sahidawa-india.git
cd sahidawa-india
cp .env.example .env
# Edit .env with your keys
docker compose up --build
# Frontend: http://localhost:3000
# API: http://localhost:4000
# ML service: http://localhost:8000
# API Docs: http://localhost:4000/api/docs# Ensure environment variables are set at the project root
cp .env.example .env
# Edit .env with your keys
# Start API Server
cd apps/api
npm install
npm run dev
# API Docs: http://localhost:4000/api/docsFor detailed setup instructions, see: ML Setup Guide
For local setup instructions, see: Local Setup Guide
Quick start:
cd apps/ml
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
uvicorn main:app --reload --port 8000sahidawa-india/
├── apps/
│ ├── web/ # Next.js PWA frontend
│ │ ├── app/ # App Router pages
│ │ ├── components/ # Reusable UI components
│ │ ├── lib/ # Utilities, API clients
│ │ ├── messages/ # i18n JSON files (22 languages)
│ │ │ ├── en.json
│ │ │ ├── hi.json
│ │ │ ├── ta.json
│ │ │ └── ... # one file per language
│ │ └── public/ # Static assets
│ ├── api/ # Node.js + Express API
│ │ ├── src/
│ │ │ ├── routes/ # API route handlers
│ │ │ ├── services/ # Business logic
│ │ │ ├── middleware/ # Auth, rate limiting
│ │ │ └── db/ # Database models + migrations
│ │ └── tests/
│ └── ml/ # Python FastAPI ML service
│ ├── routers/ # ML API endpoints
│ ├── models/ # TF Lite models
│ ├── services/ # Whisper, OpenCV, LangChain
│ └── agent/ # CDSCO monitoring agent
├── packages/
│ └── shared/ # Shared TypeScript types
├── data/
│ └── seeds/ # CDSCO drug database seeds
├── docs/ # Project documentation
├── .github/
│ ├── workflows/ # GitHub Actions CI/CD
│ ├── ISSUE_TEMPLATE/ # Bug report, feature request templates
│ └── PULL_REQUEST_TEMPLATE.md
├── docker-compose.yml
├── docker-compose.dev.yml
└── README.md
We love contributions! SahiDawa is built entirely by the community.
👉 Read the CONTRIBUTING.md before submitting your first PR.
- Check open issues — look for
good-first-issuelabel - Comment on the issue saying you want to work on it
- Fork → branch → code → test → PR
- A maintainer will review within 24 hours
| Skill Level | What to pick |
|---|---|
| 🟢 Beginner | Language translations (messages/*.json), UI components, documentation, database seed data |
| 🟡 Intermediate | Barcode scanner, pharmacy map, Cloudinary integration, i18n wiring, API routes |
| 🔴 Advanced | Image classifier, Whisper ASR, LangChain RAG, CDSCO agent, PostGIS queries |
SahiDawa aims to support all 22 Indian scheduled languages. (We are just getting started! Help us translate.)
| Language | Status | Contributor |
|---|---|---|
| English | 🚧 In Progress | Core Team |
| Hindi (हिन्दी) | 🚧 In Progress | — |
| Tamil (தமிழ்) | 🚧 In Progress | — |
| Telugu (తెలుగు) | ✅ Complete | GSSoC 2026 |
| Kannada (ಕನ್ನಡ) | ✅ Complete | GSSoC 2026 |
| Malayalam (മലയാളം) | 🔜 Open | — |
| Bengali (বাংলা) | 🚧 In Progress | — |
| Gujarati (ગુજરાતી) | 🚧 In Progress | — |
| Marathi (मराठी) | 🚧 In Progress | — |
| Punjabi (ਪੰਜਾਬੀ) | 🚧 In Progress | — |
| Odia (ଓଡ଼ିଆ) | 🚧 In Progress | — |
| Assamese (অসমীয়া) | 🔜 Open | — |
| Urdu (اردو) | 🚧 In Progress | — |
| Sanskrit (संस्कृत) | 🚧 In Progress | — |
| Maithili | 🔜 Open | — |
| Kashmiri | 🔜 Open | — |
| Konkani | 🔜 Open | — |
| Sindhi | 🔜 Open | — |
| Dogri | 🔜 Open | — |
| Bodo | 🔜 Open | — |
| Manipuri | 🔜 Open | — |
| Santali | 🔜 Open | — |
| Source | Used For |
|---|---|
| CDSCO | Master medicine database — batch numbers, manufacturers, drug alerts |
| Jan Aushadhi Portal | Generic medicine store locations across India |
| PMJAY Hospital Locator | Ayushman Bharat empanelled hospitals |
| OpenStreetMap / Overpass API | Pharmacy locations, routing |
| NHP — National Health Portal | Drug monographs for RAG health assistant |
This project is participating in GirlScript Summer of Code 2026 under both:
- 📂 Open Source Track — 10 labeled issues (Coming Soon) for all skill levels
- 🤖 Agents for India Track — CDSCO autonomous alert agent (Coming Soon)
We are also a Cloudinary Bounty Partner project — contributors who build features using Cloudinary's Media API earn bonus GSSoC leaderboard points.
- Discord: Join SahiDawa Discord
- GitHub Discussions: Discuss ideas & questions
SahiDawa is licensed under the MIT License — free to use, modify, distribute, and deploy.
See LICENSE for full text.
Thank you to all the incredible people who have contributed to making SahiDawa a reality! 🙌
- GirlScript Foundation for GSSoC 2026
- CDSCO for the public drug database
- Sarvam AI for Indian language models
- Cloudinary for media infrastructure & GSSoC bounty partnership
- Every contributor who believes healthcare is a right, not a privilege
Healthcare accessibility should not depend on income, location, or language.
SahiDawa is community-driven and built to remain free forever.
Built with ❤️ for 1.4 billion Indians
If this project helps even one person avoid a fake medicine, it was worth it.