Pidgin-english AI assistant
# Sango
A conversational AI web app that speaks **Cameroonian Pidgin** (plus English and
French) naturally. Pick a language and just talk — Sango replies warmly, like
someone from home.
This repo is a two-app monorepo:
```
Sango/
├── frontend/ # Next.js 15 (App Router, TypeScript, Tailwind CSS)
└── backend/ # FastAPI (Python) — holds the prompt + Gemini call
```
> **Status:** working. Full chat UI (Pidgin/English/French) talking to Gemini,
> with conversation history persisted in SQLite so a refresh restores the session.
## Prerequisites
- Node.js 18.18+ (20+ recommended) and npm
- Python 3.10+
## Backend — FastAPI (`/backend`)
```bash
cd backend
# Create and activate a virtual environment
python -m venv .venv
# Windows (PowerShell):
.venv\Scripts\Activate.ps1
# macOS / Linux:
# source .venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Configure environment
cp .env.example .env # Windows: copy .env.example .env
# then edit .env and set GEMINI_API_KEY when ready
# Run (
localhost)
uvicorn main:app --reload --port 8000
```
Quick check: `
localhost` returns `{"status":"ok"}`.
## Frontend — Next.js (`/frontend`)
```bash
cd frontend
# Install dependencies
npm install
# Configure environment
cp .env.local.example .env.local # Windows: copy .env.local.example .env.local
# Run (
localhost)
npm run dev
```
Open `
localhost`, pick a language, and start chatting with Sango.
## Environment variables
| App | File | Variable | Purpose |
| -------- | ------------- | ------------------- | ---------------------------------------- |
| backend | `.env` | `GEMINI_API_KEY` | Google Gemini API key (server-side only) |
| backend | `.env` | `GEMINI_MODEL` | Gemini model id (default `gemini-2.5-flash-lite`) |
| backend | `.env` | `GEMINI_TEMPERATURE` / `GEMINI_MAX_OUTPUT_TOKENS` | Reply warmth …