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 π GitHub Release: 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 d 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.