La solution complète pour la gestion et la réservation de transport au Bénin. Expérience utilisateur fluide, gestion de flotte optimisée et sécurité accrue. Connectez-vous, réservez, voyagez.
- 🎯 Vue d'ensemble
- ✨ Fonctionnalités Clés
- 🛠 Stack Technique
- 🏗 Architecture du Projet
- 🔄 Workflows Métier
- 🚀 Installation & Démarrage
- 📚 Documentation
- 🤝 Contribution
VoyageBj est une solution SaaS complète conçue pour moderniser le secteur du transport au Bénin. Elle offre une interface unifiée pour :
- Les Voyageurs : Réservation de billets en ligne, et suivi des trajets.
- Les Compagnies : Gestion de flotte, planification des départs, et suivi des réservations.
- L'Administration : Supervision du réseau, validation des acteurs, et statistiques globales.
Le design system est ancré dans l'identité nationale :
- 🟢 Vert (#008751) : Espérance & Renouveau (Actions principales, Succès)
- 🟡 Jaune (#FCD116) : Richesse & Présage (Éléments Premium, Avertissements)
- 🔴 Rouge (#E8112D) : Courage & Force (Actions destructives, Erreurs)
| Module | Fonctionnalités |
|---|---|
| 👤 Espace Voyageur | • Recherche intelligente avec filtres avancés • Affichage des gares en grille interactive • Visualisation des trajets directs par gare • Sélection de siège en temps réel • Billets QR Code avec design premium |
| 🏢 Espace Compagnie | • Dashboard de gestion de flotte et stations • Gestion des horaires et tarifs (Standard/Premium) • Scan QR pour validation des billets • Analyse des revenus et réservations |
| 🛡️ Espace Admin | • Validation KYC des comptes compagnies • Monitoring global système • Gestion des utilisateurs et rôles |
- Framework : React 19 (Hooks, Context API)
- Langage : TypeScript 5.7 (Strict Mode)
- Build Tool : Vite 6.1 (HMR, Optimisation)
- Styling : Tailwind CSS 4 (JIT, Design System)
| Lib | Usage |
|---|---|
lucide-react |
Icônes vectorielles légères |
recharts |
Visualisation de données (Graphiques) |
react-router-dom |
Routage client-side (SPA) |
jspdf / html2canvas |
Génération de documents PDF |
framer-motion |
Animations fluides (Transitions) |
L'architecture suit une approche Feature-Based pour une scalabilité maximale.
graph TD
SRC[src/] --> FEAT[features/]
SRC --> SHARED[shared/]
FEAT --> AUTH[auth/ (Login, Signup)]
FEAT --> CLIENT[client/ (Dashboard Voyageur)]
FEAT --> COMPANY[company/ (Dashboard Compagnie)]
FEAT --> ADMIN[admin/ (Dashboard Admin)]
FEAT --> PUBLIC[public/ (Landing, Search)]
SHARED --> COMPS[components/ (UI Kit)]
SHARED --> SERV[services/ (API, Storage)]
SHARED --> TYPES[types/ (Interfaces TS)]
SHARED --> UTILS[utils/ (Helpers)]
sequenceDiagram
participant U as Voyageur
participant S as Système
participant C as Compagnie
U->>S: Recherche (Départ, Arrivée, Date)
S-->>U: Liste des trajets disponibles
U->>S: Sélectionne un trajet & Siège
U->>S: Confirme la réservation (PENDING)
Note over U,S: Génération du Ticket Provisoire
C->>S: Valide le paiement/embarquement
S-->>U: Ticket Final (QR Code Validé)
S->>S: Mise à jour du statut (COMPLETED)
graph LR
A[Inscription Compagnie] -->|Upload Docs| B(Statut: PENDING)
B --> C{Validation Admin}
C -->|Documents Valides| D[Statut: APPROVED]
C -->|Documents Incomplets| E[Statut: REJECTED]
D --> F[Accès Dashboard]
E --> A
- Node.js v18+
- npm v9+
# 1. Cloner le projet
git clone https://github.com/REBCDR07/VoyageBj.git
# 2. Installer les dépendances
cd VoyageBj
npm install
# 3. Lancer en mode développement
npm run devL'application sera accessible sur
http://localhost:5173
La documentation technique détaillée est disponible dans le dossier /docs :
- 📂 Architecture Détaillée : Structure des dossiers et choix techniques.
- 🚦 Guide de Démarrage : Setup environnement et scripts.
- 📝 Règles de Contribution : Conventions de code et Git flow.
Les contributions sont les bienvenues ! Veuillez suivre ces étapes :
- Forker le projet
- Créer une branche (
git checkout -b feature/AmazingFeature) - Commit vos changements (
git commit -m 'Add some AmazingFeature') - Push vers la branche (
git push origin feature/AmazingFeature) - Ouvrir une Pull Request
VoyageBj © 2025 - Made in Bénin 🇧🇯
