Skip to content
HealthcareAndroid

iDoc

A personal sexual-health record app — STI test tracking, birth-control history, and a one-tap summary of what others will see

A Flutter personal health-record app: a user logs STI/STD lab test results, birth-control methods and disease-prevention/surgery history, all summarized on a dedicated 'Preview' screen framed as "what others will see" — the app's central value proposition, not a generic patient dashboard. Firebase-backed, with email and SMS phone verification and Firestore-synced records.

iDoc — app screenshot
iDoc — app screenshot
iDoc — app screenshot

Source is private. The three-record health data model and the two-step phone and email verification gate are explained below.

About this project

The app is organized around three record types, each with its own add/edit/delete flow synced to Cloud Firestore: lab test results (nine real STI/STD tests — HIV antibody, HIV combined antigen/antibody, HIV NAT, Hepatitis C antibody, Syphilis screen, Chlamydia, Gonorrhea, RPR titer, and a SARS-CoV-2/COVID-19 test — each with its own graded result options, e.g. Reactive/Non-Reactive or Negative/Intermediate/Positive), birth-control methods (separate male and female method lists — vasectomy on one side; tubal ligation, IUD, hormonal ring, implant, injections, oral, patch on the other), and a disease-prevention/surgery history log. A dedicated Preview screen then compiles all three into a single read-only report of what others will see.

Account creation is a two-step verification gate: Firebase email/password sign-up is followed by a live SMS phone-verification flow (country-code picker, OTP entry screen, a resend timer) and the app blocks entry until the email address is verified too. Profile photos are wired end-to-end too — camera/gallery picker uploads to Firebase Storage and the resulting URL is written back onto the user's Firestore document, not just held as a local file path. The whole app also blocks screenshots at launch (screenshot/screen-recording blocked app-wide), a deliberate choice appropriate for an app whose entire purpose is a personal health record.

My part was UI work to the design spec and part of the lab-result flow.

Key features

  • Three synced personal health records: STI/STD lab test results (9 real test types with graded result options), birth-control methods (separate male/female lists), and a disease-prevention/surgery history log — each with its own Firestore-backed add/edit/delete flow
  • A dedicated "Preview" screen — what others will see — that compiles all three records into a single shareable report; the app's central feature, not a generic dashboard
  • Two-step account verification: Firebase email/password sign-up gated by a live SMS phone-verification flow (country-code picker, OTP entry, resend timer) and an email-verification check before the main app is reachable
  • Profile photo upload wired end-to-end — camera/gallery picker to Firebase Storage, URL written back to the user's Firestore document
  • App-wide screenshot/screen-recording protection applied at launch, appropriate for an app whose whole purpose is sensitive personal health data
  • Localized into English, German and Spanish via GetX translations

More in Healthcare

~/sherazi.dev$./say-hello

Say hello.

Questions about a case study, one of the packages, AI tooling or Flutter in general are always welcome.

// or browse the packages on pub.dev(opens in a new tab)