API REST pour la gestion d'une entreprise de transit (transport aérien et maritime) avec système de traçabilité complet.
- Gestion des colis : Enregistrement, suivi, mise à jour des statuts
- Gestion des administrateurs : Système de rôles et permissions
- Traçabilité complète : Audit de toutes les opérations
- Gestion des paiements : Enregistrement des paiements (sans traitement)
- Statistiques : Tableaux de bord et rapports
- Node.js (v14 ou supérieur)
- MongoDB (v4.4 ou supérieur)
- npm ou yarn
- Cloner le projet
git clone [URL_DU_REPO]
cd transit-api- Installer les dépendances
npm install- Configurer les variables d'environnement
cp .env.example .envModifier le fichier .env avec vos paramètres.
- Créer le premier Super Admin
node scripts/init-admin.js- Démarrer le serveur
# Mode développement
npm run dev
# Mode production
npm start| Rôle | Description | Permissions |
|---|---|---|
| SUPER_ADMIN | Administrateur système | Accès total |
| ADMIN | Administrateur | Gestion des utilisateurs et colis |
| GESTIONNAIRE | Gestionnaire | Consultation et gestion des colis |
| COMPTABLE | Comptable | Gestion des paiements |
| AGENT_SAISIE | Agent de saisie | Création et modification des colis |
| AGENT_LIVRAISON | Agent de livraison | Mise à jour des statuts de livraison |
- ENREGISTRE : Colis enregistré dans le système
- EN_ATTENTE_PAIEMENT : En attente de paiement
- PAYE : Paiement effectué
- EN_PREPARATION : En préparation pour l'expédition
- EN_TRANSIT : En cours de transport
- ARRIVE_DESTINATION : Arrivé à destination
- EN_COURS_LIVRAISON : En cours de livraison finale
- LIVRE : Livré au destinataire
- RETOUR : Retour à l'expéditeur
- PERDU : Colis perdu
- ENDOMMAGE : Colis endommagé
- ANNULE : Expédition annulée
POST /api/auth/login- ConnexionGET /api/auth/me- Profil utilisateurPUT /api/auth/change-password- Changer mot de passe
GET /api/admins- Liste des administrateursPOST /api/admins- Créer un administrateurGET /api/admins/:id- Détails d'un administrateurPUT /api/admins/:id- Modifier un administrateurPATCH /api/admins/:id/toggle-status- Activer/DésactiverPUT /api/admins/:id/reset-password- Réinitialiser mot de passe
GET /api/colis- Liste des colis (avec filtres)POST /api/colis- Créer un colisGET /api/colis/statistics- StatistiquesGET /api/colis/:identifier- Détails (ID ou numéro de suivi)PUT /api/colis/:id- Modifier un colisPATCH /api/colis/:id/status- Changer le statutPOST /api/colis/:id/payment- Enregistrer un paiement
GET /api/audit- Logs d'auditGET /api/audit/summary- Résumé des activitésGET /api/audit/user/:userId- Logs par utilisateurGET /api/audit/entity/:entite/:id- Logs par entité
// POST /api/auth/login
{
"email": "user@example.com",
"motDePasse": "password123"
}// POST /api/colis
{
"type": "Colis standard",
"description": "Documents importants",
"masse": 2.5,
"volume": 0.05,
"valeurDeclaree": 500,
"typeTransport": "AERIEN",
"expediteur": {
"nom": "Jean Dupont",
"telephone": "+237600000000",
"email": "jean@example.com",
"adresse": "123 Rue Example"
},
"destinataire": {
"nom": "Marie Martin",
"telephone": "+33600000000",
"email": "marie@example.com",
"adresse": "456 Avenue Test",
"ville": "Paris",
"pays": "France"
},
"paiement": {
"montant": 15000,
"momentPaiement": "AVANCE"
}
}- Authentification JWT
- Hachage des mots de passe avec bcrypt
- Validation des données entrantes
- Protection contre les injections
- Traçabilité complète des actions
L'API utilise CORS et accepte les requêtes de toutes les origines en développement. Pour la production, configurez les origines autorisées.
Headers requis pour les requêtes authentifiées:
Authorization: Bearer [TOKEN_JWT]
Content-Type: application/json
Les logs détaillés sont disponibles en mode développement. Pour activer:
NODE_ENV=development npm run dev[Votre licence ici]