A demo African finance app
# CowriPay
CowriPay is a Nigerian fintech pitch demo — a full personal + business money app with transfers, bills, airtime, savings, group savings (Ajo), payroll, budgeting, and a Gemini-powered AI money coach.
Everything runs client-side in the browser. There is no backend: accounts, balances, and transactions are simulated entirely in `localStorage`. No real money moves, and this is not connected to any bank or payment processor.
## Stack
- React 19 + Vite 8
- Tailwind CSS 4
- React Router 7
- jsPDF (transaction receipts)
- Google Gemini API (`@google/genai`) for the AI Coach
## Getting started
```bash
npm install
npm run dev
```
Copy `.env.example` to `.env` and set `VITE_GEMINI_API_KEY` to enable the AI Coach. Without it, the rest of the app works normally — the AI Coach will just show a connection error.
```bash
npm run build # production build to dist/
npm run lint # oxlint
npm run preview # preview the production build locally
```
## Deploying
This is a static single-page app (client-side routing via `react-router-dom`'s `BrowserRouter`), so any static host works — Render, Vercel, Netlify, etc.
- Build command: `npm run build`
- Publish directory: `dist`
- Set `VITE_GEMINI_API_KEY` as an environment variable on the host
- Configure an SPA rewrite/fallback (`/*` → `/index.html`), or deep links (e.g. `/transactions/:id`) will 404 on refresh
## Status
Pending CBN Mobile Money Operator licensing. This demo represents the product vision.