Tafsiri AI - neural machine translation for low-resource African languages, with a real trained model, community review, a domain glossary, and the auth/billing/admin infrastructure a production product needs.
# Tafsiri AI
_Tafsiri_ is Swahili for "translation." A full-stack neural machine
translation platform focused on low-resource African
and Sub-Saharan languages (Swahili, Amharic, Hausa, Igbo, Yoruba, Zulu, Xhosa,
Somali, Lingala, Wolof, Fulah, Ganda) alongside major world languages, with
real persistence, a trained multilingual model, and the account/community/
billing infrastructure a production product needs around it.
The project is organized as three cooperating services — a React frontend, a
FastAPI backend, and a dedicated translation microservice — plus the Docker
Compose infrastructure that ties them together with Postgres, Redis, and
MinIO.
## What it does
Visitors can translate text between dozens of language pairs, with optional
domain-specific terminology forcing (medical, legal, technical glossaries)
that guarantees a chosen term appears in the output regardless of general
model quality. Every translation is persisted with a confidence score, so
registered users get a real history and personal analytics, and low-confidence
translations automatically enter an active-learning review queue where
translators and admins can submit corrections that feed back into future
model improvement.
Beyond translation, the platform includes a community forum for discussion,
a real blog with an admin-authored CMS, dataset upload and sharing for
parallel corpora, GDPR-compliant data export and account erasure, configurable
privacy/consent settings, and a Stripe-backed subscription/billing layer. An
admin panel provides user management (role changes, account activation), full
control over the domain glossary, and blog publishing — all gated behind role-
based access control.
Every optional third-party integration — email delivery, Google/GitHub OAuth,
and Stripe billing — is designed to degrade gracefully. The application boots
and every core feature works normally whether or not those credentials are
configured; the dependent endpoint either logs what it would have …