# I Built India's Missing Health App: Then Abandoned It. Here's How I Finished It.

> Source: <https://dev.to/labishbardiya/i-built-indias-missing-health-app-then-abandoned-it-heres-how-i-finished-it-4244>
> Published: 2026-06-04 10:39:32+00:00

*This is a submission for the GitHub Finish-Up-A-Thon Challenge*

**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.

**Tech Stack:** Flutter/Dart · Node.js/Express · MongoDB · NVIDIA NIM (Llama 3.2 90B Vision) · FHIR R4 · ABDM Sandbox · Bhashini ULCA · Render

🔗 **GitHub:** [github.com/labishbardiya/CureNet](https://github.com/labishbardiya/CureNet)

🔗 **GitHub Release:** [https://github.com/labishbardiya/CureNet/releases/tag/v2.0.0](https://github.com/labishbardiya/CureNet/releases/tag/v2.0.0)

📱 **APK Download:** [Download CureNet APK](https://github.com/labishbardiya/CureNet/releases/download/v2.0.0/app-release.apk)

🖥️ **Live Demo:** [https://youtu.be/QU5zbPB3XJw](https://youtu.be/QU5zbPB3XJw)

🌐 **Live Backend:** [curenet.onrender.com](https://curenet.onrender.com)

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.

I rebuilt CureNet from the ground up — same codebase, completely different app. Here's the arc:

**🧠 AI Architecture Overhaul**

**📸 Document Scanner Rebuilt**

**🏗️ 6 New Features**

**💅 Enterprise-Grade Polish**

`CureNetBottomNav`

widget (eliminated ~210 lines of duplication across 7 screens)`print()`

with `debugPrint()`

`withOpacity()`

calls to `withValues(alpha:)`

`flutter analyze`

: **☁️ Cloud Deployment**

| 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) |

GitHub Copilot was my constant pair programmer throughout this finish-up. Here's specifically how it helped:

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.

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.

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.

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.

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.

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.
