Go to file
David 76d940d73b feat: ajouter l'onglet Historique des devis et remplacer le statut Paiement en attente
Le statut PENDING_PAYMENT ne designe plus un paiement en attente mais un devis :
une reservation construite dont les frais de booking ne sont pas encore regles.
L'enum backend devient QUOTE, converti en place par migration.

Les deux onglets se partagent desormais la meme liste :
- « Reservations » n'affiche que PENDING, ACCEPTED et REJECTED ;
- « Historique des devis » regroupe QUOTE, PENDING_BANK_TRANSFER et CANCELLED,
  avec les actions propres a un devis (modifier, payer, supprimer).

La table, l'export et les filtres sont extraits dans BookingListView pour eviter
de dupliquer la page entre les deux vues.

Tableau de bord :
- l'alerte « Paiement en attente » disparait des points a traiter, les devis non
  regles ne bloquant aucun envoi en cours ;
- « Sans reponse du transporteur » devient « En attente du transporteur ».

Migration verifiee en transaction annulee sur la base de dev : les lignes
PENDING_PAYMENT deviennent QUOTE, l'enum et le defaut de colonne suivent.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NZJ5aowZJVAcyPZw5TiNEm
2026-09-14 11:43:57 +02:00
.agents/skills chore: ajouter les definitions d agents et le hook Codex 2026-09-07 21:40:49 +02:00
.claude chore: sync full codebase from cicd branch 2026-04-04 12:56:16 +02:00
.codex chore: ajouter les definitions d agents et le hook Codex 2026-09-07 21:40:49 +02:00
.github/workflows feat(deploy): pipeline CD et composition Docker complete 2026-09-07 21:40:50 +02:00
apps feat: ajouter l'onglet Historique des devis et remplacer le statut Paiement en attente 2026-09-14 11:43:57 +02:00
docker feat(deploy): pipeline CD et composition Docker complete 2026-09-07 21:40:50 +02:00
docs docs: documenter le serveur MCP et le registre de capacites 2026-09-07 21:40:54 +02:00
infra feat(infra): provisionnement Hetzner, k3s et secrets SOPS 2026-09-07 21:40:50 +02:00
postman chore: sync full codebase from cicd branch 2026-04-04 12:56:16 +02:00
scripts chore: sync full codebase from cicd branch 2026-04-04 12:56:16 +02:00
.gitignore fix 2026-04-06 13:09:03 +02:00
.prettierignore first commit 2025-10-07 18:39:32 +02:00
.prettierrc first commit 2025-10-07 18:39:32 +02:00
AGENTS.md chore: ajouter les definitions d agents et le hook Codex 2026-09-07 21:40:49 +02:00
CLAUDE.md chore: sync full codebase from cicd branch 2026-04-04 12:56:16 +02:00
INDEX.md fix celan v2 2026-05-14 21:11:54 +02:00
package-lock.json fix types check 2026-04-04 15:28:13 +02:00
package.json first commit 2025-10-07 18:39:32 +02:00
QUICK-START.md revert: restore root-level docs mistakenly deleted 2026-04-04 13:02:27 +02:00
README.md fix celan v2 2026-05-14 21:11:54 +02:00

Xpeditis — Maritime Freight Booking Platform

Plateforme B2B SaaS permettant aux transitaires de rechercher, comparer et réserver du fret maritime en temps réel.


Démarrage rapide

# 1. Installer les dépendances
npm run install:all

# 2. Démarrer l'infrastructure (PostgreSQL + Redis + MinIO)
docker-compose up -d

# 3. Configurer l'environnement
cp apps/backend/.env.example apps/backend/.env
cp apps/frontend/.env.example apps/frontend/.env.local

# 4. Exécuter les migrations
cd apps/backend && npm run migration:run && cd ../..

# 5. Démarrer les serveurs
npm run backend:dev    # http://localhost:4000 · Swagger: /api/docs
npm run frontend:dev   # http://localhost:3000

Structure du projet

xpeditis/
├── apps/
│   ├── backend/          # NestJS 10 — Architecture hexagonale
│   │   └── src/
│   │       ├── domain/          # Logique métier pure (TypeScript)
│   │       ├── application/     # Controllers, DTOs, Guards
│   │       └── infrastructure/  # TypeORM, Redis, S3, Email, Stripe
│   └── frontend/         # Next.js 14 App Router
│       ├── app/[locale]/        # Routing i18n (fr, en)
│       └── src/                 # Components, hooks, lib/api
├── docker-compose.yml    # PostgreSQL 15 + Redis 7 + MinIO
└── docs/                 # Documentation complète

Documentation

Sujet Fichier
Index complet docs/README.md
Architecture hexagonale + conventions CLAUDE.md
Vue d'ensemble système docs/architecture/overview.md
Schéma BDD (21 tables) docs/architecture/database.md
Démarrage rapide docs/getting-started/quick-start.md

Commandes de développement

# Backend
npm run backend:dev       # Serveur avec hot-reload
npm run backend:test      # Tests unitaires Jest
npm run backend:lint      # ESLint
npm run backend:build     # Build production

# Frontend
npm run frontend:dev      # Serveur avec hot-reload
npm run frontend:test     # Tests unitaires Jest
npm run frontend:lint     # ESLint
cd apps/frontend && npm run test:e2e  # Playwright E2E

# Qualité
npm run format            # Prettier (tous les fichiers)

# Base de données
cd apps/backend
npm run migration:generate -- src/infrastructure/persistence/typeorm/migrations/NomMigration
npm run migration:run
npm run migration:revert

Stack technique

Backend

Composant Technologie
Framework NestJS 10 + TypeScript 5 (strict)
Base de données PostgreSQL 15 + TypeORM
Cache Redis 7 (ioredis)
Auth JWT (15min) + Refresh + OAuth2 + API Keys (Argon2)
Temps réel Socket.IO
Email Nodemailer + MJML
Paiements Stripe
Stockage S3/MinIO
Logging nestjs-pino
Monitoring Sentry

Frontend

Composant Technologie
Framework Next.js 14 App Router + TypeScript
Styling Tailwind CSS + shadcn/ui (Radix UI)
State serveur TanStack Query v5
Tables TanStack Table v8 + Virtual
Formulaires react-hook-form + zod
Temps réel Socket.IO client
i18n next-intl (fr, en)
Graphiques recharts

Carriers intégrés

Carrier Code Statut
Maersk MAEU Connecteur API
MSC MSCU Connecteur API
CMA CGM CMDU Connecteur API
Hapag-Lloyd HLCU Connecteur API
ONE ONEY Connecteur API
SSC Consolidation — CSV
ECU Worldwide — CSV + API
TCC Logistics — CSV
NVO Consolidation — CSV

Fonctionnalités principales

  • Recherche tarifs : FCL (carriers API + cache Redis 15min) + LCL CSV
  • Réservation standard : workflow 4 étapes, numéro WCM-YYYY-XXXXXX
  • Réservation CSV + Portail Carrier : magic link, accept/reject
  • Dashboard : KPI, graphiques, table interactive virtuelle
  • Auth : JWT, OAuth2 (Google/Microsoft), API Keys, RBAC (5 rôles)
  • Abonnements : Stripe (FREE/BRONZE/SILVER/GOLD/PLATINIUM)
  • Notifications : WebSocket temps réel + webhooks tiers
  • GDPR : export/suppression des données utilisateur
  • Blog : gestion de contenu bilingue (fr/en)
  • Audit : journal d'audit de toutes les actions

Architecture hexagonale — NestJS 10 + Next.js 14 — PostgreSQL 15 + Redis 7