Muraho Rwanda is a 9-module cultural tourism platform that brings Rwanda's history, memorials, and stories to life through interactive storytelling, AI-guided museum experiences, walking routes, and survivor testimonies — all with full data sovereignty.
# 🇷🇼 Muraho Rwanda
**Self-hosted, AI-powered digital heritage platform for Rwanda.**
Muraho Rwanda is a 9-module cultural tourism platform that brings Rwanda's history, memorials, and stories to life through interactive storytelling, AI-guided museum experiences, walking routes, and survivor testimonies — all with full data sovereignty.
> 485 files · 74,000+ lines · Zero external AI dependencies
---
## Architecture
```
muraho-rwanda/
├── frontend/ React 18 + Vite + Tailwind — 51 pages, 226 components
├── cms/ Payload CMS 3.0 + Next.js — 12 collections, 15 endpoints
├── ai-service/ FastAPI — RAG pipeline, LLM, embeddings, TTS, transcription
├── mobile/ React Native (Expo) — 6 screens, Mapbox, offline support
├── shared/ Shared TypeScript types between web and mobile
├── infra/ Docker Compose (9 services), nginx, SSL, scripts
├── tests/ Integration tests (Python + TypeScript)
└── .github/ CI/CD pipelines
```
## Tech Stack
| Layer | Technology | Notes |
|---|---|---|
| **Frontend** | React 18, Vite, Tailwind, Shadcn/ui | PWA with offline support |
| **Mobile** | React Native, Expo, NativeWind | Shared types with web |
| **CMS** | Payload CMS 3.0 (Next.js embedded) | 12 collections, role-based access |
| **AI Service** | FastAPI, vLLM/Ollama, pgvector | RAG + multilingual |
| **LLM** | Mistral 7B / Mixtral 8×7B | Self-hosted, no data leaves infra |
| **Embeddings** | multilingual-e5-large | Kinyarwanda + French + English |
| **Transcription** | Faster-Whisper large-v3 | Self-hosted GPU |
| **Database** | PostgreSQL 16 + pgvector + PostGIS | Spatial queries + vector search |
| **Cache** | Redis 7 | Rate limiting + sessions |
| **Storage** | MinIO (S3-compatible) | Media, audio, documents |
| **Maps** | Mapbox GL JS / @rnmapbox/maps | Routes, POIs, spatial layers |
| **Payments** | Stripe (international) + Flutterwave (MTN MoMo/Airtel) | Dual gateway |
| **Proxy** | Nginx + Let's Encrypt | SSL, …