MamaShop — app mobile (React Native/Expo + Supabase) de gestion pour un grossiste fruits & legumes : 3 roles, dashboard temps reel, offline-first avec synchro.
# MamaShop
Application mobile de gestion de boutique pour les petits commerces d'Afrique de l'Ouest.
Pensée pour des réseaux instables et des utilisateurs peu techniques : **offline-first**, interface simple en français, montants en FCFA.
## Fonctionnalités
- **Trois rôles, trois expériences** — chaque profil voit uniquement ses écrans :
- 👩💼 **Gérant(e)** : tableau de bord, finances, marges, stock, fournisseurs, employés
- 🛵 **Agent terrain** : ventes, arrivages de stock, crédits clients
- 🌍 **Diaspora** : vue lecture seule pour la famille à l'étranger qui soutient le commerce
- **Mode hors-ligne** : les ventes et arrivages sont enregistrés localement puis synchronisés automatiquement au retour du réseau
- **Ventes transactionnelles** : création de vente, lignes et décrément de stock dans une seule transaction Postgres (RPC) — pas d'état incohérent
- **Crédits clients** : suivi des dettes, fiches clients, niveaux de fidélité
- **Aide à la négociation fournisseur** : conseils basés sur l'historique des prix payés
- **Photos produits & avatars** : upload vers Supabase Storage
## Stack technique
| Couche | Outil |
|---|---|
| Mobile | React Native + Expo SDK 54 (New Architecture) |
| Langage | TypeScript strict |
| Navigation | Expo Router (file-based) + drawer animé custom |
| Backend | Supabase — Postgres, Auth, Storage, Edge Functions (Deno) |
| Hors-ligne | AsyncStorage + file de synchronisation, détection réseau NetInfo |
| Sessions | expo-secure-store (Keychain iOS / Keystore Android) |
## Architecture
```
app/ Écrans (Expo Router, un groupe de routes par rôle)
(auth)/ Connexion
(boss)/ Écrans gérant
(terrain)/ Écrans agent terrain
(diaspora)/ Écrans diaspora
components/ UI partagée, sans accès aux données
services/ Couche d'accès Supabase (products, sales, clients, …)
lib/ Client Supabase, types partagés, file offline, réseau
hooks/ useAuth, u …