AfriSoro is an African-focused Soroban learning and mental arithmetic platform designed to make mathematics more engaging, practical, and culturally relevant for African learners.
# AfriSoro โ African Soroban Learning Platform
AfriSoro combines the traditional Japanese Soroban abacus with African market contexts to teach mental mathematics through culturally relevant scenarios.
## Features
- ๐งฎ **Interactive Soroban Engine** โ Digital abacus with bead manipulation
- ๐ **African Scenarios** โ Market, agriculture, transport, household contexts
- ๐ฎ **Gamification** โ XP, levels, badges, streaks
- ๐ **Adaptive Learning** โ Difficulty adjusts based on performance
- ๐ **Progress Tracking** โ Analytics for students and teachers
- ๐ฑ **Multi-Currency** โ Nigeria (โฆ), Ghana (โต), Kenya (KSh), and more
## Tech Stack
- **Frontend:** Next.js 14, React, TypeScript, Tailwind CSS, Framer Motion
- **Backend:** Express.js, Node.js, TypeScript
- **Database:** PostgreSQL with Prisma ORM
- **Authentication:** JWT tokens
## Getting Started
### Prerequisites
- Node.js 18+ and npm
- PostgreSQL database
### Installation
```bash
# Install Node.js from
nodejs.org (if not already installed)
# Navigate to project
cd afrisoro
# Install all dependencies (root + frontend + backend)
npm run install:all
# Set up backend environment
cd backend
cp .env.example .env
# Edit .env with your DATABASE_URL and JWT_SECRET
# Initialize database
npm run db:push
npm run db:generate
npm run db:seed
# Set up frontend environment
cd ../frontend
cp .env.example .env
# Edit .env with NEXT_PUBLIC_API_URL (default:
localhost)
# Run both frontend and backend
cd ..
npm run dev
```
**Frontend:**
localhost
**Backend API:**
localhost
## Project Structure
```
afrisoro/
โโโ backend/ # Express.js API server
โ โโโ prisma/
โ โ โโโ schema.prisma # Database schema
โ โ โโโ seed.ts # Seed data
โ โโโ src/
โ โ โโโ routes/ # API routes
โ โ โโโ middleware/ # Auth middleware
โ โ โโโ lib/ # Utilities (prisma, jwt, scenarios, adaptive, gamification)
โ โ โโโ server.ts # Expres โฆ