Vue d'ensemble de l'écosystème Tranoo
Monorepo tranoo-api
L'écosystème Tranoo est regroupé dans un seul dépôt à la racine tranoo-api :
tranoo-api/
├── src/ # API Express (backend principal)
├── tranoo/ # App Flutter — acheteurs
├── tranoo_pro/ # App Flutter — professionnels
├── tranoo_landing/ # Dashboard admin Next.js + site public
├── docs/ # Notes techniques backend
├── scripts/ # Migrations, vérification Swagger, diagnostics
├── uploads/ # Uploads vidéo temporaires
└── data/ # Cache runtime (PDF vérification)
Applications et rôles
| Application | Dossier | Utilisateurs cibles |
|---|---|---|
| Tranoo | tranoo/ | Acheteurs (acheteur) |
| Tranoo Pro | tranoo_pro/ | Vendeurs, chauffeurs, transitaires, agents |
| Dashboard web | tranoo_landing/ | Administrateurs (admin + sous-types) |
| API backend | src/ | Toutes les apps ci-dessus |
URLs de production
| Service | URL |
|---|---|
| API | https://api.tranoo.store |
| Swagger | https://api.tranoo.store/api-docs |
| Dashboard | https://tranoo.store |
Rôles utilisateurs
Rôles métier (User.role)
| Rôle | Application | Description |
|---|---|---|
acheteur | Tranoo | Achète véhicules, motos, pièces |
vendeur | Tranoo Pro | Publie et vend des articles |
livreur | (legacy) | Rôle historique — livraison désormais via Livro (tiers) |
chauffeur | Tranoo Pro | Chauffeur / tricycle |
transitaire | Tranoo Pro | Missions de transit international |
agentCommercial | Tranoo Pro | Agent commercial terrain |
admin | Dashboard | Administration plateforme |
Sous-types admin (User.typeAdmin)
superAdmin, principal, moderateur, gestionnaire, responsablePaiement, responsableService, responsablePartenaires, analyste, marketing
Domaines fonctionnels du backend
Le backend expose ~45 fichiers de routes montés dans src/app.js :
| Domaine | Préfixes API | Documentation |
|---|---|---|
| Auth & profil | /api/auth, /api/protected, /api/users | Authentification |
| Commerce | /api/articles, /api/achat, /api/orders | Base de données |
| Paiements | /api/payments, /api/wallet | Paiements FeexPay |
| Livraison | Livro (tiers, via app Tranoo) | Intégration Livro |
| Transit | /api/transit-missions, /api/transitaires | Transit international |
| Communication | /api/chat, /api/notifications | WhatsApp & notifications |
| Admin tarifs | /api/admin/* | API Swagger |
| Agents | /api/agents, /api/demo-events | Agents commerciaux |
| Parrainage | /api/referrals, /api/referral-tariffs | Parrainage |
| Géolocalisation | /api/geo, /api/geo/benin | Swagger |
| Public | /api/public, /api/publicites | Swagger |
Intégrations externes
| Service | Usage |
|---|---|
| Firebase | Auth, FCM push, Storage, App Check (optionnel) |
| MongoDB Atlas | Base de données principale |
| Cloudinary | Images, PDF, vidéos |
| FeexPay | Paiements Mobile Money et cartes |
| Meta WhatsApp | OTP reset MDP, rapports vérification PDF |
| Cloudflare Turnstile | CAPTCHA web |
| OpenStreetMap | Cartes (Flutter, gratuit) |
| Socket.io | Chat temps réel, indicateurs de frappe |
Workers au démarrage
Lancés depuis src/app.js au boot du serveur :
- Payment status worker — polling statuts FeexPay
- Cron jobs — expiration publicités, vues automatiques articles
- Delivery offer worker — (legacy, livraison interne — hors périmètre)
Documentation source dans le dépôt
Fichier tranoo-api/ | Sujet |
|---|---|
docs/SWAGGER.md | Maintenance OpenAPI |
docs/CAPTCHA.md | Turnstile + checklist PM2 |
docs/I18N.md | Internationalisation |
docs/MIGRATION_AUTH_TELEPHONE.md | Auth téléphone + MDP |
docs/DEMO_TRACKING_TRANOO_PRO.md | KPI démos agents (voir Agents commerciaux) |
whatsapp.env.example | Variables WhatsApp Meta |