Application de livraison de colis multi-rôles au Bénin.
- 5 rôles : Client, Agent/Livreur, Entreprise, Manager, Admin
- Authentification : Email/mot de passe, biométrie (FaceID/Empreinte), OTP par email
- Commandes : Création en 3 étapes, suivi temps réel, annulation
- Tracking GPS : Position des coursiers en temps réel avec ETA
- Portefeuille : Solde, transactions, retrait Mobile Money
- Enterprise : Gestion d'équipe, documents, planning de collecte, modèles de commande
- Manager : Gestion des coursiers, litiges, revenus
- Admin : Supervision système, audit logs, configuration
- Frontend : React Native (Expo SDK 54), TypeScript, Zustand, React Navigation
- Backend : Supabase (PostgreSQL, Auth, Realtime, Storage, Edge Functions)
- Tests : Jest (structurels), Playwright (E2E)
- CI/CD : EAS Build
Node.js >= 18
npm >= 9
Expo CLI npm install -g expo-cli# Cloner le projet
git clone <repo-url> && cd om-express
# Installer les dépendances
npm install
# Configuration des variables d'environnement
cp .env.example .env.local
# Éditer .env.local avec vos valeurs SupabaseCréer un fichier .env.local :
EXPO_PUBLIC_SUPABASE_URL=https://<votre-projet>.supabase.co
EXPO_PUBLIC_SUPABASE_ANON_KEY=<votre-cle-anon># Développement (web)
npm run web
# Développement (Android)
npm run android
# Tests
node scripts/run-tests.js # Tests structurels
node scripts/run-tests-phase3.js # Tests Phase 3
node scripts/run-tests-phase4.js # Tests accessibilité
# Typecheck
npx tsc --noEmit
# Lint
npm run lintsrc/
├── core/ # Code partagé
│ ├── components/ # UI components (Button, Card, Logo, etc.)
│ ├── hooks/ # Custom hooks (useAuth, useRealtimeTracking, etc.)
│ ├── i18n/ # Internationalisation (FR)
│ ├── lib/ # Utilities (Supabase client)
│ ├── services/ # API services (à venir)
│ ├── storage/ # AsyncStorage + SecureStore
│ ├── store/ # 11 Zustand stores
│ ├── theme/ # Design tokens + ThemeContext
│ └── utils/ # Helpers (retry, a11y, validation)
├── features/ # Features par domaine
│ ├── admin/ # Admin (5 écrans)
│ ├── agent/ # Agent/Livreur (8 écrans)
│ ├── auth/ # Authentification (7 écrans)
│ ├── enterprise/ # Entreprise (10 écrans)
│ ├── home/ # Accueil (5 écrans)
│ ├── manager/ # Manager (7 écrans)
│ ├── orders/ # Commandes (3 écrans)
│ └── profile/ # Profil (6 écrans)
└── navigation/ # 8 navigateurs (role-based)
| Fonction | Description |
|---|---|
get_current_profile |
Récupère le profil de l'utilisateur connecté |
accept_order_v2 |
Un agent accepte une commande |
admin_revoke_user_access |
Admin révoque l'accès d'un utilisateur |
admin_save_system_config |
Admin sauvegarde une config système |
manager_finalize_user_creation |
Manager finalise la création d'un utilisateur |
manager_set_agent_status |
Manager change le statut d'un agent |
manager_save_system_config |
Manager sauvegarde une config système |
# Build preview (APK Android)
eas build --platform android --profile preview
# Build production
eas build --platform android --profile productionPropriétaire — ZOO Company