Logo Lanfrica

vroymv/AfroLingo

Domain:

natural language processingeducation

Record type:

software
Creator:
vro
Host:
A mobile app that teaches people about African cultures, heritage and languages AfroLingo AfroLingo is a cross-platform (iOS/Android/Web) African language-learning app designed for micro-learning. It combines structured lessons and progress tracking with real-time experiences (chat, presence, in-app notifications) using Socket.IO, Postgres (Prisma), Redis, and Firebase Auth. ## Table of Contents 1. Introduction 2. About 3. Tech Stack 4. Features 5. Architecture 6. Screenshots 7. Quick Start 8. Snippets 9. Links ## Introduction This repository contains both: - **Client**: Expo + React Native app in the `Client/` directory. - **Server**: Node.js (Express) API + Socket.IO realtime server in the `Server/` directory. The client talks to the server over HTTP (REST endpoints under `/api`) and subscribes to realtime updates via Socket.IO. ## About AfroLingo’s goal is to help learners reconnect with African languages and cultural context through: - Bite-sized lessons and practice activities - Progress + XP tracking - Tutor discovery and 1:1 messaging (real-time) - Community experiences (UI prototype demonstrating scalable feature structure) This README is written to be useful in understanding how the project works. ## Tech Stack - **Client**: React Native (Expo), Expo Router, TypeScript, Firebase (Auth), Socket.IO client - **Server**: Node.js, Express, TypeScript, Socket.IO, Zod - **Database**: PostgreSQL - **ORM**: Prisma - **Realtime infra**: Redis (presence, rate limiting, Socket.IO adapter) ## Features ### Learning + progress 1. Lessons / units / stories / grammar tips / practice activities 2. Progress tracking and XP/streak mechanics ### Onboarding + personalization 3. Onboarding flow and preference storage (theme + notification preferences) ### Tutors + 1:1 realtime chat 4. Tutor discovery served by the backend 5. 1:1 chat with persisted threads/messages in Postgres (Prisma) 6. Realtime delivery over Socket.IO with read/unread tracking ### Community (prototype UI) 7. A prototype-only Community tab implemented with * …