العودة إلى المشاريع

MediTrack

MediTrack متتبع خاص لنتائج التحاليل يعمل على جهازك فقط، يحوّل ملفات PDF إلى رؤى مبسّطة عبر التعرّف الضوئي على النصوص محليًا وتخزين مشفّر.

السنة
2026
النوع
تطبيق ويب
الحالة
متاح

دراسة الحالة الكاملة متوفرة بالإنجليزية.

The problem. People collect lab results as a pile of cryptic PDFs. The apps that make them readable want you to upload your bloodwork to their servers — so the fix for confusion costs you your medical privacy. MediTrack refuses that trade: it turns lab PDFs into plain-language, trended insights while every piece of health data stays on your own device. No accounts, no servers, no telemetry.

The hard part. "Local-only" and "AI analysis" pull in opposite directions — a plain-language summary normally means shipping the results to a model in the cloud. I kept both by drawing the privacy boundary inside the device: results are parsed and stored in an encrypted on-device SQLite database, and the one time the network is touched — the optional AI summary — the payload is stripped of identifying data on-device first. The model sees values, never a patient.

The approach. One canonical JSON schema code-generates the models for both the Vue 3 PWA and the Flutter app, so web and mobile can never drift apart. On-device OCR (Tesseract WASM) maps an uploaded PDF or photo onto a 70-test catalogue for review before save; reference-range markers and 12-month trend charts do the interpretation. A Clean Architecture split keeps the presentation layer from ever reaching into storage or the AI client directly, and mobile encrypts at rest with SQLCipher (AES-256).

The outcome. A genuinely private health tracker that still feels modern — family profiles, retest reminders, password-gated encrypted backups, idle and tab-blur auto-lock, and full Arabic/English RTL enforced by a CI gate that fails the build on a physical-direction CSS rule.

دوري

Architect & Full-Stack Developer — sole engineer across the shared schema, the Vue PWA, and the Flutter app. Owned the on-device privacy model, the schema-driven codegen that keeps both apps in lockstep, the OCR + encrypted-storage pipeline, and the CI gates enforcing RTL parity and layered architecture across web and mobile.
  • Vue 3
  • TypeScript
  • Vite
  • Pinia
  • Tailwind CSS
  • vite-plugin-pwa
  • Flutter
  • Riverpod
  • Drift (SQLCipher)
  • SQLite
  • Tesseract WASM
  • Claude API
  • Vitest
  • Playwright
  • GitHub Actions
MediTrack — لقطة شاشة 1 من 1