Logo Lanfrica

Builder106/med-core

Domaine:

healthcare

Type de record:

software
Créateur:
Bui
Hôte:
Centralised digital health records platform for African healthcare providers — PWA + Express + SQLite, FHIR-compatible, offline-first, AI-assisted. MedCore is a centralised digital health records platform for African healthcare providers — a **Vite + React PWA**front-end with a**Node + Express + SQLite (libSQL)** API. It implements the PRD's eight features end-to-end with FHIR-shaped resources, RBAC-gated access, and an AI assist layer that summarises patient context and surfaces risk flags. Every external integration (Daily.co, OpenAI Whisper, Africa's Talking, OpenFDA, Web Push) ships with a working mock so the demo runs offline. ## 🏆 Recognition **Winner — Yale Africa Innovation Symposium IV (April 16–18, 2026)**, built within the **Technology & AI Innovation Lab** track under the symposium's "The Pulse of Progress" theme. Final presentation, Yale, April 18, 2026 Technology & AI Innovation Lab participants, YAIS IV ## Quick start ```bash git clone github.com cd MedCore npm install npm --prefix server install npm run dev ``` - Web: - API: The Vite dev server proxies `/api/*`to the Express server on port 3001 and binds to`0.0.0.0`, so a phone on the same Wi-Fi can open `http:// :5173`. ### Sign-in (demo) | Role | User ID | Default PIN | | ------ | --------- | ------------- | | Doctor | `DOC-001` | `4242` | | Patient | `PAT-001` | `1212` | | Admin | `ADM-001` | `3434` | PINs are configurable in `server/.env`(see`server/.env.example`). For production, set `SESSION_SECRET` to a long random string (≥32 characters). If a login fails after editing PINs, restart the API to resync demo PINs — dev does this on every start. ## How it works ```mermaid sequenceDiagram actor Doctor participant PWA as PWA (Vite + React) participant API as Express API participant DB as SQLite (libSQL) participant Ext as External APIs (OpenFDA · Daily · AT · Whisper) participant AI as AI Layer (OpenRouter · Groq) Doctor->>PWA: Open patient chart PWA->>API: GET /api/patients/:id (session cookie) API->>API: requireApiSession + audit API->>DB: SELECT patient, meds, labs, encounters DB-->>A …