Pan-African digital savings platform. Built by IBridge. Cameroon-first launch
# TerahBank
**Pan-African digital savings platform. Built by IBridge. Cameroon-first launch.**
> Mobile-first banking for individuals and small businesses across Cameroon and the CEMAC zone.
> Savings accounts · Goal vaults · Term deposits · Virtual VISA cards · MTN MoMo · Orange Money.
---
## Table of Contents
1. Prerequisites
2. First-Time Setup
3. Daily Development
4. Project Structure
5. Claude Code Skills
6. Key Docs
7. Tech Stack
8. Environment Files
9. Troubleshooting
---
## Prerequisites
Install these before doing anything else:
| Tool | Version | Install |
|---|---|---|
| Python | 3.12+ |
python.org |
| Node.js | 20+ |
nodejs.org |
| Docker Desktop | latest |
docker.com |
| VS Code | latest |
code.visualstudio.com |
| Claude Code | latest | VS Code extension marketplace |
| Expo CLI | latest | `npm install -g expo-cli` |
| Android Studio | latest | For mobile development only |
---
## First-Time Setup
Do this once when you first join the project.
### Step 1 — Clone the repo and open in VS Code
```bash
# Open VS Code in the project root — the folder containing CLAUDE.md
```
### Step 2 — Generate JWT keys
```bash
mkdir -p apps/api/secrets
openssl genrsa -out apps/api/secrets/jwt_private.pem 2048
openssl rsa -in apps/api/secrets/jwt_private.pem -pubout -out apps/api/secrets/jwt_public.pem
```
### Step 3 — Set up environment files
```bash
cp .env.example apps/api/.env
```
Open `apps/api/.env` and update these four values for local dev:
```env
DATABASE_URL=postgresql+asyncpg://terahbank:terahbank_dev_password@localhost:5432/terahbank_dev
REDIS_URL=redis://localhost:6379/0
JWT_PRIVATE_KEY_PATH=./secrets/jwt_private.pem
JWT_PUBLIC_KEY_PATH=./secrets/jwt_public.pem
```
Leave all provider keys (MTN MoMo, SendGrid, FCM, etc.) as the mockup values. You will not need real keys until Phase 3.
### Step 4 — Start local services
```bash
docker compose up -d
# Starts PostgreSQL on port 5432 and R …