Skip to content

Repository files navigation

M.O.M

A private, self-hostable health-research & tracking companion — built fully on Firebase / Google Cloud.

mom helps a patient and their caregiver turn scattered research (mainstream and holistic/alternative — YouTube videos, PDFs, notes) into a private, searchable knowledge base, then chat with it in plain language with citations. It also tracks medications, labs, daily wellness, meals, and doctor visits, helps run a disciplined N-of-1 experiment, and keeps a medication/appointment schedule with reminders.

It was built to help one family navigate Parkinson's disease, but it's a general template: clone it, point it at your own Firebase project, ingest your own sources, and run your own private instance.

⚕️ Medical disclaimer

This software is a private research, tracking, and organization tool. It is not a medical device and does not provide medical advice. It does not diagnose, prescribe, or replace a licensed clinician. Discuss every supplement, medication, diet, or therapy change with a qualified physician before acting on anything surfaced here.


Features

  • RAG knowledge base — ingest YouTube transcripts, PDFs, and notes into Firestore vector search; ask grounded questions and get cited answers with source-trust labels.
  • Research digests — plain-language, cited summaries of a topic across your sources.
  • Health records — medications/supplements, lab results, med files, and a profile/fact-sheet.
  • Journaling — daily wellness scorecard, meals (with protein-vs-medication timing), events, and mood.
  • Protocols / experiments — track regimens and N-of-1 experiments against your own metrics.
  • Scheduler & reminders — medication timing, meals, therapies, and appointments via push notifications.
  • Doctor-visit recorder — record, transcribe, and auto-summarize visits into structured notes.
  • Accessibility-first — large type, high contrast, big tap targets, voice input — designed for elderly users.
  • Family collaboration — invite family to learn the research, comment, and chat; the medical record stays caregiver-controlled.
  • Wearable sync (optional) — pull Fitbit/Google Health metrics (resting HR, HRV, sleep) as objective N-of-1 signals.
  • Brain games — offline, ad-free Sudoku / word / card games for cognitive engagement.

Architecture

Flutter (Web + Android) client → Firebase (Auth, Firestore, Storage, Cloud Functions, FCM) → Vertex AI (embeddings + Gemini). The vector store is Firestore vector search (find_nearest); text chat, synthesis, embeddings, and audio transcription run through an LLMProvider interface (swappable by config), while image/vision extraction, rerank, and document parsing are Gemini/Google-specific in v1 (ADR-0011). Full detail:

Layer Technology
Frontend Flutter (Web + Android) · Riverpod · GoRouter · Freezed
Auth Firebase Auth (email/password)
Data + vectors Firestore (find_nearest)
Files Cloud Storage
Compute Cloud Functions (Python 3.13)
AI Vertex AI — embeddings + Gemini; chat/synthesis/embeddings/audio behind an LLMProvider interface, vision/rerank/doc-parsing Gemini-specific in v1 (ADR-0011)
Notifications Firebase Cloud Messaging
Wearable (optional) Google Health API (OAuth 2.0) — Fitbit Charge 4
Hosting Firebase Hosting

Deploy your own

Prerequisites: Flutter (Dart 3.11+) · Firebase CLI · FlutterFire CLI · gcloud · Python 3.13 + uv · a GCP project with billing enabled.

# 1. Clone
git clone <your-fork-url> mom && cd mom

# 2. Create / pick a Firebase project, then point this repo at it
cp .firebaserc.example .firebaserc        # edit: set your project id
cp .env.example .env                       # edit: set project + Vertex settings

# 3. Enable the Google Cloud APIs you'll use
gcloud services enable \
  firestore.googleapis.com aiplatform.googleapis.com \
  cloudfunctions.googleapis.com run.googleapis.com \
  firebasestorage.googleapis.com cloudscheduler.googleapis.com

# 4. Generate Flutter Firebase config (writes the gitignored firebase_options.dart)
cd mom && flutterfire configure && cd ..

# 5. Deploy backend (rules, indexes, functions)
firebase deploy --only firestore:rules,firestore:indexes,storage,functions

# 6. Run the app
cd mom && flutter run -d chrome          # web
# flutter run                            # Android device/emulator

# 7. (optional) Deploy the web build to Firebase Hosting
flutter build web && cd .. && firebase deploy --only hosting

Enable Email/Password sign-in in Firebase Console → Authentication → Sign-in method, and create your users.

See CONTRIBUTING.md for the dev workflow and SECURITY.md for how secrets and private data are handled.

Repository layout

mom/                 Flutter app (Web + Android)
functions/           Cloud Functions (Python 3.13) — ingestion, RAG, transcription
docs/                System design, implementation plan, ADRs
  research/          (gitignored) your private source corpus — only README is committed
firestore.rules      Firestore security rules
storage.rules        Cloud Storage security rules
firestore.indexes.json   includes the chunks.embedding vector index
*.example            templates you copy to create your own private config

Privacy & your data

Your data lives in your own Firebase project — there is no shared backend. This repository is structured so private medical data is never committed: the personal research corpus (docs/research/*), any *.private.* files, real seed data, and per-project config (.firebaserc, firebase_options.dart, service-account keys, .env) are all gitignored. You populate your instance from the *.example templates. This is a private app and is not HIPAA-certified; secure your GCP project accordingly.

Contributing & License

Contributions welcome — see CONTRIBUTING.md. Licensed under the MIT License.

About

No description, website, or topics provided.

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages