Telehealth platform connecting patients in rural Rwanda with doctors and healthcare providers. Built with TanStack Start, React 19, TanStack Router, TanStack Query, TailwindCSS v4, and Radix UI.
# Health Access Africa
A telehealth platform connecting patients in rural and underserved communities in Rwanda / East Africa with licensed doctors — without travelling to a health facility. The system provides role-based portals for **Patients**, **Doctors**, and **Admins** to manage appointments, video consultations, patient records, health information, and notifications.
| | |
|---|---|
| **Live application** |
health-access-africa.vercel… |
| **API base URL** |
healthcare.iduka.store |
| **API documentation (Swagger)** |
healthcare.iduka.store |
This is a monorepo containing two applications:
- **`backend/`** — REST API built with Express.js, TypeScript, PostgreSQL, and Prisma.
- **`frontend/`** — Web client built with TanStack Start (React 19), TanStack Router/Query, and TailwindCSS v4.
---
## Table of Contents
- Demo Accounts
- Architecture Overview
- Deployment
- Tech Stack
- Project Structure
- Prerequisites
- Setup & Installation
- Running the Project
- Environment Variables
- User Roles & Portals
- Implemented Requirements
- API Documentation
- Available Scripts
- Troubleshooting
- Author
- License
---
## Demo Accounts
Use these accounts on the live application to explore each portal.
| Role | Email | Password |
|------|-------|----------|
| **Doctor** | `johnmugabo@gmail.com` | `Mugabo@pass123` |
| **Patient** | `mukunzicedric@gmail.com` | `pj4f4DJr6wTDyCr` |
| **System Admin** | `admin@healthaccessafrica.rw` | `Password123!` |
> To see a video consultation end-to-end, sign in as the **doctor** in one browser window and as the **patient** in another (or use a private/incognito window). The doctor starts the call; the patient then joins from the notification or the appointment.
If you run the project locally, `npx prisma db seed` creates its own set of Rwanda-based demo users (admins, doctors, and patients) and prints their credentials to the terminal.
---
## Architecture Overview
```
┌────────────── …