This is a submission for the GitHub Finish-Up-A-Thon Challenge
What I Built
CureNet — a mobile app that gives every Indian citizen real ownership of their medical records through the government's ABDM (Ayushman Bharat Digital Mission) infrastructure.
The pitch is simple: scan any prescription with your phone camera, and CureNet converts it into a structured, FHIR R4-compliant digital health record — linked to your ABHA (Ayushman Bharat Health Account). No manual data entry. No hospital portals. Just point, scan, own.
It started as a semester project at university. We had 3 weeks. I built the ABDM authentication flow, a basic AI chat, and a records list — then ran out of time. The UI was rough, the scanner didn't work on half the documents, and the "AI assistant" hallucinated medical advice. I submitted what I had, got my grade, and moved on.
Five months later, I opened the repo again.
The code was a graveyard of // TODO comments and hardcoded demo data. But the idea was still good — 1.4 billion people in India have no portable health records. The government built the rails (ABDM), but nobody built a train that regular people would actually ride. So I decided to finish what I started.
What CureNet Does Today
- 🔐 ABDM-Compliant Auth — Login with Aadhaar, mobile, ABHA number, or ABHA address. Real RSA-OAEP encryption. Real ABDM sandbox integration.
- 📸 AI Document Scanner — Point your camera at any prescription, lab report, or discharge summary. NVIDIA NIM Vision classifies the document, extracts medications, dosages, lab values, and diagnosis — and packages it all into FHIR R4 bundles.
- 🤖 ABHAy AI — A medical AI assistant that knows your health context. It reads your scanned records, understands your medications and conditions, and answers questions in your language (all 22 scheduled Indian languages via Bhashini ULCA).
- 🔒 Health Locker — Biometric-protected vault for your most sensitive records. Fingerprint or Face ID to access.
- 📊 Health Trends — Biomarker tracking with interactive charts. Watch your HbA1c, blood pressure, or cholesterol trend over time.
- 🚨 Emergency Digital Pass — One-tap emergency card with your allergies, medications, blood group, and emergency contact. Saveable as an image for your lock screen.
- 🔑 Consent-Based Sharing — Grant doctors time-limited, scope-limited access to your records via QR code. Revoke anytime.
- 🌐 Multilingual — Full UI and AI translation across all 22 scheduled Indian languages via Bhashini ULCA.
Tech Stack: Flutter/Dart · Node.js/Express · MongoDB · NVIDIA NIM (Llama 3.2 90B Vision) · FHIR R4 · ABDM Sandbox · Bhashini ULCA · Render
Demo
🔗 GitHub: github.com/labishbardiya/CureNet
🔗 GitHub Release: https://github.com/labishbardiya/CureNet/releases/tag/v2.0.0
📱 APK Download: Download CureNet APK
🖥️ Live Demo: https://youtu.be/QU5zbPB3XJw
🌐 Live Backend: curenet.onrender.com
The Comeback Story
Where It Was (January 2026)
When I paused CureNet in February, here's what "existed":
| Feature | Status |
|---|---|
| ABDM Login | ✅ Working (barely) — single auth method, no encryption |
| AI Chat | ⚠️ Basic Groq integration — hallucinated freely, no medical context |
| Document Scanner | ❌ Camera opened but OCR was broken on 60%+ of documents |
| Health Records | ⚠️ Hardcoded demo list — no real persistence |
| Health Locker | ❌ Didn't exist |
| Emergency Pass | ❌ Didn't exist |
| Multilingual | ❌ English only |
| Consent Sharing | ❌ Didn't exist |
| Health Trends | ❌ Didn't exist |
| Backend | ⚠️ Local only — no cloud deployment |
The UI looked like a college prototype because it was a college prototype. Text arrows (←) instead of proper icons. Hardcoded names leaking everywhere. print() statements in production code. Deprecated API calls. Unused imports stacked 10-deep in every file.
What Changed (May–June 2026)
I rebuilt CureNet from the ground up — same codebase, completely different app. Here's the arc:
🧠 AI Architecture Overhaul
- Migrated from basic Groq completion to a Gold Standard Architecture: NVIDIA NIM for vision OCR → Server-Sent Events for real-time streaming → smart routing across 3 API keys for rate-limit resilience.
- ABHAy AI now has full medical context — it reads your uploaded records, knows your medications, and grounds its responses in your actual health data. No more hallucinations about medications you don't take.
- Added Bhashini ULCA pipeline real-time translation across all 22 scheduled Indian languages. The AI responds in whatever language you ask in.
📸 Document Scanner Rebuilt
- Replaced the broken OCR pipeline with NVIDIA NIM Llama 3.2 90B Vision.
- Added intelligent document classification: prescriptions, lab reports, discharge summaries — each parsed differently.
- Every scan produces a FHIR R4 Bundle — the international healthcare data standard. Not just text extraction, but structured clinical data.
🏗️ 6 New Features
- Health Locker with biometric authentication
- Interactive biomarker trends with fl_chart
- Emergency Digital Pass (screenshot-saveable)
- QR-based consent sharing with time-limited access grants
- Access request monitoring with real-time notifications
- Profile with editable medical information
💅 Enterprise-Grade Polish
- Extracted shared bottom navigation into a reusable
CureNetBottomNavwidget (eliminated ~210 lines of duplication across 7 screens) - Replaced every
print()withdebugPrint() - Migrated all deprecated
withOpacity()calls towithValues(alpha:) - Removed every unused import, dead method, and orphaned variable
-
flutter analyze: 0 errors, 0 warnings (only 2 structural infos remain) - Zero hardcoded demo data leaking to live users — all demo content gated behind identity checks
- Proper Material icons everywhere (no more text arrow "←" buttons)
☁️ Cloud Deployment
- Backend deployed to Render with Nginx SSE buffering fixes
- MongoDB Atlas for persistent storage
- ABDM Sandbox integration with live RSA-OAEP encryption
By The Numbers
| Metric | Before | After |
|---|---|---|
| Dart files | ~15 | 57 |
| Lines of code | ~3,000 | 13,654 |
| Screens | 5 | 28 |
| Commits | ~20 | 64 |
flutter analyze warnings |
40+ | 2 (structural only) |
| Supported languages | 1 | all 22 |
| Auth methods | 1 | 4 |
| AI models used | 1 (Groq) | 3 (NIM Vision + Llama 3.3 + Gemma) |
My Experience with GitHub Copilot
GitHub Copilot was my constant pair programmer throughout this finish-up. Here's specifically how it helped:
1. Boilerplate Acceleration
Flutter is verbose. Every new screen needs a StatefulWidget, State class, initState, dispose, build method, Scaffold, SafeArea... Copilot autocompleted these structural patterns instantly. For CureNet's 28 screens, that's hours saved on scaffolding alone.
2. FHIR R4 Bundle Generation
Writing FHIR-compliant JSON structures by hand is painful — deeply nested resources with strict field requirements. I'd type createPrescriptionBundle( and Copilot would suggest the entire Bundle structure with proper resourceType, entry arrays, Patient, Practitioner, and MedicationRequest resources. I still had to verify compliance, but the starting point was 90% correct.
3. Dart API Migrations
Flutter's API evolves fast. Copilot caught deprecated patterns I didn't even know about — suggesting withValues(alpha: 0.5) when I typed withOpacity(, flagging activeColor → activeThumbColor on Switch widgets, and recommending mounted guards on async BuildContext usage. It acted like a real-time migration guide.
4. SharedPreferences Patterns
CureNet's offline-first architecture relies heavily on SharedPreferences for record persistence. Copilot learned the project's DataMode.storageKey() namespacing pattern and consistently suggested properly-namespaced keys. When I wrote save logic, it suggested the corresponding load logic with the correct JSON encoding patterns.
5. Copilot Chat for Debugging
When my SSE (Server-Sent Events) streaming broke after deploying to Render, I pasted the Nginx config into Copilot Chat and asked "why is my SSE connection dropping after 30 seconds?" It identified the missing proxy_buffering off directive immediately — a fix that would have taken me hours of Stack Overflow archaeology.
The Honest Take
Copilot didn't write CureNet. But it removed the friction that makes finishing a project so hard. The boring parts — boilerplate, type annotations, JSON parsing, import management — got handled in the background while I focused on the actual hard problems: ABDM cryptography, FHIR compliance, and making an AI assistant that doesn't hallucinate your medication list.
That's exactly what "finishing" needs. Not a magic wand, but a tireless partner that handles the tedium so you can focus on the craft.
CureNet is open for feedback. If you're building in Indian healthtech or working with ABDM, I'd love to connect.
Top comments (0)