ERP SaaS pour petits commerces africains
# BizLink AI Africa
ERP SaaS léger pour petits commerces africains (boutiques, pharmacies, restaurants,
vendeurs WhatsApp/Facebook/TikTok, PME locales) : stock, achats, ventes, dépenses,
dettes clients, inventaire automatique, assistant IA, abonnements, parrainage et
affiliation.
## Stack technique
- **Frontend** : Next.js 15 (App Router), React, TypeScript, Tailwind CSS, shadcn/ui, React Hook Form, Zod, Recharts
- **Backend** : Server Actions, Route Handlers, Supabase (PostgreSQL, Auth, Row Level Security)
- **IA** : OpenAI API (Chat Completions)
- **Déploiement cible** : Vercel
## Structure du projet
Voir `ARCHITECTURE.md` pour le détail de l'organisation des dossiers
et des choix de conception (multi-tenant, séparation UI/actions/services).
## Installation locale
### 1. Prérequis
- Node.js 20+
- Un projet Supabase (gratuit sur supabase.com)
- Une clé API OpenAI
### 2. Cloner et installer les dépendances
```bash
npm install
```
### 3. Configurer les variables d'environnement
```bash
cp .env.example .env.local
```
Remplir `.env.local` avec :
- `NEXT_PUBLIC_SUPABASE_URL` et `NEXT_PUBLIC_SUPABASE_ANON_KEY` : Project Settings → API, dans votre projet Supabase
- `SUPABASE_SERVICE_ROLE_KEY` : même page (⚠️ à ne jamais exposer publiquement)
- `NEXT_PUBLIC_SITE_URL` : `
localhost` en local
- `OPENAI_API_KEY` : platform.openai.com
- `CRON_SECRET` : une chaîne aléatoire de votre choix
- `MANUAL_PAYMENT_WEBHOOK_SECRET` : une chaîne aléatoire de votre choix (fournisseur de paiement de référence)
### 4. Initialiser la base de données
Dans l'éditeur SQL de votre projet Supabase (Dashboard → SQL Editor), exécuter
les fichiers de `database/` **dans l'ordre numérique** :
```
001_schema.sql
002_rls_policies.sql
003_triggers_functions.sql
004_rpc_functions.sql
005_referrals_signup.sql
006_affiliate_attribution.sql
```
### 5. Activer l'authentification Google (optionnel)
Dashboard Supabase → Authentication → Providers → Google → renseigner Client ID/Secre …