Logo Lanfrica

Ib-uth/arewapay

Domain:

socioeconomic

Record type:

software
Creator:
Ib-
Host:
Full-stack invoicing app: React + FastAPI, PostgreSQL, RevenueCat subscriptions, dark-mode dashboard, and client/invoice workflows built for African businesses. # ArewaPay **Invoicing and receivables for African SMEs** — multi-currency clients and invoices, balance visibility, and overdue tracking. **Live demo:** _Add your deployed URL (e.g. Railway + static host)._ **Deploy for free (tiers & caveats):** see docs/DEPLOYMENT.md. **Fly.io:** docs/FLY.md. --- ## Stack overview | Layer | Technologies | |--------|----------------| | **Frontend** | React 19, TypeScript, Vite, Tailwind CSS v4, TanStack Query, React Router, React Hook Form + Zod, Recharts, `@react-pdf/renderer` | | **Backend** | Python 3.11+, FastAPI, SQLAlchemy 2, Alembic, Pydantic, JWT + httpOnly cookies, bcrypt, slowapi | | **Data** | PostgreSQL 16, Redis 7 | | **Infra** | Docker Compose, nginx (frontend image), GitHub Actions CI | --- ## What’s in the product - **Auth & session:** Email OTP registration (`/auth/register/request` → `/auth/register/verify`), login only after verified email, JWT access + refresh in httpOnly cookies, `/auth/me`, logout. - **Onboarding:** First-run flow (country, currency, optional company name, short survey) before the main app. - **Dashboard:** Revenue summary, monthly chart, top clients. - **Clients:** Table view, CSV export, structured address fields; **Add client** on a dedicated page. - **Invoices:** Table + export, create flow with line items, tax, due date; **bill-to** snapshot from the client address; PDF download; settlement rows and status (draft → paid / overdue). - **Settings:** Full-width **Profile** and **Account** (display name, country, currency, theme). Theme (light / dark / system) applies **inside the signed-in app** only; marketing and auth pages stay light. - **Marketing:** Landing, features, about (FAQ link), legal pages; nav shows an **avatar menu** when you’re logged in (dashboard, profile, logout). --- ## Architecture ```mermaid flowchart LR subgraph client [Browser] FE[React + Vite] end subgraph server [Backend] API[FastAPI] DB[(PostgreSQL)] RD[(Redis)] end FE -->|REST JSON + cookies …