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, β¦