Prototype of eCivil — a unified digital citizenship platform for Mali. Citizens request, pay for, track and receive official documents online, chained to their NINA. React + Node/Express + MongoDB. Demo only: all external integrations are mocked and documents carry a SPÉCIMEN watermark.
# eCivil — Plateforme Unifiée de la Citoyenneté Numérique
Prototype of a unified digital citizenship platform for Mali: a single virtual counter
(*guichet unique*) where citizens request, pay for, track and receive official documents,
keyed on the **NINA** national identification number.
> **⚠️ Prototype — not a production system.**
> All external integrations (NINA registry, SMS, payments) are mocked. All data is
> fictional. Generated documents are watermarked `SPÉCIMEN — SANS VALEUR LÉGALE` and have
> no legal value. Never load real personal data into this project.
**New here? Run the demo walkthrough** — a citizen requests a document, pays
for it, an agent instructs it, and the citizen collects a QR-signed specimen anyone can
verify. About 10 minutes.
## Modules
| Module | Services | State partner |
| --- | --- | --- |
| Identité & Voyage | Passport, biometric ID card | Ministère de la Sécurité |
| Événements de Vie | Birth & marriage certificates | Communes & Consulats |
| Mobilité Urbaine | Vehicle registration, carte grise | Direction des Transports |
| Titres Fonciers | Property deeds, cadastral verification | Urbanisme & Domaines |
## What works today
The whole citizen journey, end to end, plus the back-office that serves it.
- **Identity** — NINA + SMS OTP login, JWT sessions, rate limited per IP+NINA
- **Catalog** — four modules, transparent official tariffs
- **Requests** — smart form pre-filled from the registry, attachments, a server-side state
machine with an append-only timeline
- **Payment** — Orange Money, Wave and card, all mocked; amounts read server-side, settlement
atomic against replay
- **Back-office** — four-tier RBAC (`CITIZEN` / `AGENT` / `ADMIN` / `SUPER_ADMIN`) with module
scoping, an agent inbox, and an audit log
- **Delivery** — watermarked SPÉCIMEN PDFs with a QR code, stored privately and served
through short-lived signed URLs
- **Verification** — a public, unauthenticated endpoint and page for anyone holding a document
- **N …