Inspiration

I interpret at in-person appointments, and nearly every visit starts with an English form. Older Nepali-speaking patients often depend on family members or paid interpreters to complete five to ten pages of paperwork.

I wanted to build something that would help my community, including my parents and family. Originally called Speak-to-Form, the project became Saathi (साथी), meaning friend or companion.

What it does

Saathi lets Nepali-speaking patients complete healthcare forms by telling their story once, in their own language.

  • Clinics upload their existing fillable English PDF. Gemini generates plain-language questions in English and Nepali for staff to review before publishing a patient link.
  • Patients answer by voice, typing, or tapping on their phone. Saathi fills in what it understands and asks only the remaining questions, one at a time, read aloud in Nepali.
  • Bilingual verification shows each answer in Nepali and English so patients can catch transcription or translation mistakes.
  • Accessible consent explains consent sections in plain Nepali and supports typed-name signatures.
  • Clinic-ready output returns the clinic's original PDF, filled in English, by email. Skipped answers are marked "Patient will provide at visit." Patients can download their copy, and Saathi retains no copy of their answers after sending.
  • Nepali dates support the Bikram Sambat calendar through deterministic date conversion.

The core decision was to fill the clinic's actual form, not create a replacement.

How we built it

I worked as a solo developer, using Claude Code to write the code following the plan I created. I defined the idea, requirements, architecture, and product decisions, then reviewed the implementation.

  • Python + FastAPI: Backend.
  • HTML, CSS, JavaScript: Minimal interface with no frontend framework or build step.
  • Gemini: Generates bilingual questions, processes recorded Nepali answers, and produces Nepali read-aloud audio.
  • PyMuPDF + ReportLab: Reads and fills PDFs and generates sample forms.
  • nepali-datetime: Bikram Sambat date conversion.
  • Zoho SMTP: Emails completed forms to clinics.

AI handles language; deterministic code handles dates, phone numbers, options, and PDF filling.

I built and verified six stages, from sample PDF filling and Nepali speech testing to clinic uploads, patient links, and email delivery.

47 automated tests pass. Licensed under MIT.

GitHub: https://github.com/woooj02/saathi

Challenges we ran into

The biggest challenge was Nepali speech recognition. In an early test, Chrome recognized none of the six Nepali answers. I had identified this risk in advance and specified a Gemini audio-processing fallback. Switching to it required one change and enabled patients to tell their story once instead of answering every field separately.

Gemini's usage limits and periods of high demand also required fallback models, retries, and recording reuse.

AI transcription is imperfect. During a demo, Gemini misheard a name as "Hak Kamal" while filling nine answers. This validated two key safeguards: show patients both versions of every answer, and leave unclear information unanswered rather than guess.

Accomplishments that we're proud of

  • Built an end-to-end workflow from the clinic's existing PDF to a patient link and completed English PDF delivered by email.
  • Enabled voice-first Nepali form completion with bilingual verification.
  • Integrated Nepali consent explanations and Bikram Sambat dates.
  • Completed six verified development stages and achieved 47 passing automated tests.

Most importantly, I turned a problem I have personally witnessed into a working tool for my community.

What we learned

Testing the riskiest assumption early prevented a major redesign. A planned fallback turned a failed browser speech test into a working voice workflow.

I also learned to use AI for language understanding while keeping correctness-sensitive operations deterministic. Because AI can mishear people, verification and honest handling of unanswered questions are essential.

Working solo with Claude Code reinforced the value of clear specifications, small build stages, and testing each stage before moving forward.

What's next for Saathi

  • More languages: Extend beyond Nepali.
  • More document types: Explore scanned and non-fillable forms.
  • Easier access: Let clinics send patient links by text message.
  • Real-world testing: Work with Nepali-speaking patients and clinic staff to improve usability, translation quality, reliability, and privacy safeguards before broader deployment.

Built With

Share this project:

Updates

Submission history