Djilali Liabès University Master's Thesis: A verified, GPS-aware healthcare infrastructure platform for Algeria, featuring an integrated web portal, mobile application, developer API, and AI agent tools (MCP).
# CityHealth
**Algeria's verified healthcare infrastructure, accessible everywhere.**
*Solo full-stack. 12 months. 5 deployed platforms.*
---
The Problem
Healthcare data in Algeria is fragmented, unverified, and almost entirely offline. When someone needs a specialist at night, they call friends, scroll through Facebook posts from months ago, or drive to three pharmacies hoping one is still open. There is no authoritative directory. There is no verified source.
That gap is what this project addresses.
---
What I Built
CityHealth is a **unified monorepo** — one strictly verified PostgreSQL database feeding five separate, production-deployed platforms. Every provider in the system has passed through an automated OCR validation pipeline before appearing in any search result.
| Platform | What it does | Status |
|:---|:---|:---:|
| **Web Platform** | GPS-aware search for doctors, clinics, pharmacies — with an admin verification dashboard and blood donation hub | ✅ Live |
| **Mobile Application** | React Native app with offline map caching, emergency routing, and Gemini-powered triage | ✅ Live |
| **REST API** | Tiered developer API (SHA-256 auth, rate limiting, PostGIS endpoints, Swagger docs) | ✅ Live |
| **AI MCP Server** | Model Context Protocol server — Claude and ChatGPT can natively query Algeria's health directory | ✅ Live |
| **Browser Extension** | Manifest V3 Chrome/Firefox extension that pushes blood donation alerts to matched donors in real time | ✅ Live |
---
Architecture
The entire system is built around a single principle: **one source of truth, no exceptions.**
**Key decisions that shaped the stack:**
- **PostgreSQL over Firebase** — Healthcare data is relational. PostGIS handles proximity queries in a single SQL call. Row-Level Security enforces access control at the database layer, not the application layer.
- **Railway over Vercel for the MCP server** — Vercel serverless functions cap SSE connections at ~25 seconds. Th …