Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

API Transit - Gestion d'Entreprise de Transport

API REST pour la gestion d'une entreprise de transit (transport aérien et maritime) avec système de traçabilité complet.

🚀 Fonctionnalités

  • 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

📋 Prérequis

  • Node.js (v14 ou supérieur)
  • MongoDB (v4.4 ou supérieur)
  • npm ou yarn

🛠️ Installation

  1. Cloner le projet
git clone [URL_DU_REPO]
cd transit-api
  1. Installer les dépendances
npm install
  1. Configurer les variables d'environnement
cp .env.example .env

Modifier le fichier .env avec vos paramètres.

  1. Créer le premier Super Admin
node scripts/init-admin.js
  1. Démarrer le serveur
# Mode développement
npm run dev

# Mode production
npm start

🔑 Rôles et Permissions

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

📊 Statuts des Colis

  • 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

🔌 Endpoints API

Authentification

  • POST /api/auth/login - Connexion
  • GET /api/auth/me - Profil utilisateur
  • PUT /api/auth/change-password - Changer mot de passe

Administrateurs

  • GET /api/admins - Liste des administrateurs
  • POST /api/admins - Créer un administrateur
  • GET /api/admins/:id - Détails d'un administrateur
  • PUT /api/admins/:id - Modifier un administrateur
  • PATCH /api/admins/:id/toggle-status - Activer/Désactiver
  • PUT /api/admins/:id/reset-password - Réinitialiser mot de passe

Colis

  • GET /api/colis - Liste des colis (avec filtres)
  • POST /api/colis - Créer un colis
  • GET /api/colis/statistics - Statistiques
  • GET /api/colis/:identifier - Détails (ID ou numéro de suivi)
  • PUT /api/colis/:id - Modifier un colis
  • PATCH /api/colis/:id/status - Changer le statut
  • POST /api/colis/:id/payment - Enregistrer un paiement

Audit

  • GET /api/audit - Logs d'audit
  • GET /api/audit/summary - Résumé des activités
  • GET /api/audit/user/:userId - Logs par utilisateur
  • GET /api/audit/entity/:entite/:id - Logs par entité

📝 Format des Requêtes

Authentification

// POST /api/auth/login
{
  "email": "user@example.com",
  "motDePasse": "password123"
}

Création de Colis

// 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"
  }
}

🔒 Sécurité

  • Authentification JWT
  • Hachage des mots de passe avec bcrypt
  • Validation des données entrantes
  • Protection contre les injections
  • Traçabilité complète des actions

📱 Utilisation avec Frontend

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

🐛 Débogage

Les logs détaillés sont disponibles en mode développement. Pour activer:

NODE_ENV=development npm run dev

📄 Licence

[Votre licence ici]

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages