Skip to content

Repository files navigation

OM Express

Application de livraison de colis multi-rôles au Bénin.

Fonctionnalités

  • 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

Stack Technique

  • 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

Prérequis

Node.js >= 18
npm >= 9
Expo CLI npm install -g expo-cli

Installation

# 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 Supabase

Configuration

Créer un fichier .env.local :

EXPO_PUBLIC_SUPABASE_URL=https://<votre-projet>.supabase.co
EXPO_PUBLIC_SUPABASE_ANON_KEY=<votre-cle-anon>

Lancement

# 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 lint

Structure du Projet

src/
├── 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)

API Supabase (RPC)

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

Déploiement

# Build preview (APK Android)
eas build --platform android --profile preview

# Build production
eas build --platform android --profile production

Licence

Propriétaire — ZOO Company

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages