A playful language-learning PWA
π£οΈ Bobea Ndimi
A playful, Duolingo-inspired language-learning PWA
Learn Spanish πͺπΈ Β· Mandarin π¨π³ Β· Traditional Chinese πΉπΌ Β· Kiswahili π°πͺ
Features Β·
Demo Β·
Getting Started Β·
Documentation Β·
Contributing Β·
License
## π Table of Contents
- Overview
- Features
- Demo
- Tech Stack
- Project Structure
- Getting Started
- Prerequisites
- Installation
- Environment Variables
- Running Locally
- Available Scripts
- Architecture
- Data Flow
- Database Schema
- Offline-First Design
- Spaced Repetition (SRS)
- Exercise Types
- Content Pipeline
- Mobile (Android)
- Documentation
- Contributing
- Roadmap
- License
- Acknowledgments
---
## π Overview
**Bobea Ndimi** (working name: **SPEAK**) is a full-featured, gamified language-learning application inspired by Duolingo. It currently supports **four languages** β Spanish, Mandarin (Simplified), Traditional Chinese, and Kiswahili β with a language-agnostic architecture that makes adding new languages a data-seeding exercise rather than an engineering effort.
The app features a complete pedagogical loop: **onboarding β placement testing β skill tree β interactive lessons β spaced-repetition review β progress dashboard**. Gamification mechanics (XP, streaks, hearts, leaderboards) keep learners engaged, while an offline-first architecture ensures progress is never lost.
> **Why "Bobea Ndimi"?** The name reflects the project's mission β helping learners *speak* with confidence. "Ndimi" echoes the Kiswahili word for "languages," embodying the multilingual spirit of the app.
---
## β¨ Features
### Core Learning
| Feature | Description |
|---|---|
| π **Skill Tree** | Visual unit/lesson progression path with unlock states and placement skip-ahead |
| π **12 Exercise Types** | Multiple choice, translation, word bank, matching, listening, tone drills, conjugation, gender match, stroke tracing, minimal pairs, listening passages |
| π§ **Spaced Repetition** | FSRS-powered review queue that surfaces vocabu β¦