Monorepo avec 4 workspaces indépendants :
.
├── INTERFACE/ # Frontend Next.js (port 3000)
├── api/ # API REST Express unifiée (port 3026)
├── parlant-agent/ # Agent IA FastAPI/Python (port 8800)
├── evidence-reports/ # Rapports BI Evidence (port 3010)
├── .claude/agents/ # 12 AI agents (Claude Code)
├── README.md # Ce fichier
├── RUN_LOCALLY.md # Guide de lancement local
└── logs.md # Journal des modifications
| Workspace | Stack | Port | Description |
|---|---|---|---|
INTERFACE/ |
Next.js 15.5, React 19, shadcn/ui, TailwindCSS v4 | 3000 | Interface web : IVR, Gestion SDA, Admin |
api/ |
Express.js, Sequelize 6, MSSQL | 3026 | API REST unifiée — modules telephony / svi / general-data |
parlant-agent/ |
Python, FastAPI, Mistral | 8800 | Assistant IA contextuel SDA (Vincenza) |
evidence-reports/ |
Evidence (SvelteKit), MSSQL | 3010 | Rapports BI (embed iframe derrière l'auth) |
# Backend — les 3 services (API + Vincenza + Evidence) en une commande :
cd api && npm start # :3026 (API) + :8800 (Parlant) + :3010 (Evidence)
# Frontend (Next.js) :
cd INTERFACE && npm run dev # :3000cd api && npm start orchestre les trois services backend dans un seul terminal
(Ctrl+C arrête tout). Voir RUN_LOCALLY.md pour l'installation des
dépendances et le lancement d'un service isolé (npm run start:api | start:parlant | start:evidence).
L'interface consomme l'API via le hook useTelephonyApi.
- Framework : Next.js 15.5 (App Router), React 19
- UI : shadcn/ui + Radix UI + Lucide React + TailwindCSS v4
- Graphiques : Recharts
- Auth : JWT (Jose) + cookies httpOnly + RBAC
- BDD : Sequelize 6 + MSSQL (FIMAINFO_INTERFACE_MGT)
| Module | Prefix | Description |
|---|---|---|
| IVR | /svi/* |
Gestion des stratégies SVI (fin de stratégie, ligne directe) |
| Gestion SDA | /sda-manage/* |
DID, commandes, clients, campagnes, audit, stats |
| Admin | /admin/* |
Utilisateurs, permissions, GLPI, dashboard |
| SMS/WhatsApp | /sms/*, /whatsapp/* |
Envoi en masse SMS et WhatsApp |
| Route | Description |
|---|---|
/sda-manage |
Dashboard : KPI, graphiques, statistiques |
/sda-manage/dids |
CRUD DID avec détail, historique, export |
/sda-manage/commandes |
Workflow commandes (brouillon → livré) |
/sda-manage/mes-campagnes |
Campagnes utilisateur |
/sda-manage/demandes-campagne |
Demandes affectation DROIT+/DROIT++ |
/suivi/audit |
Journal d'audit filtrable + export CSV |
/sda-manage/statistiques |
Stats par client, région, opérateur |
/sda-manage/{clients,operateurs,...} |
Tables de référence (CRUD) |
BROUILLON → SOUMISE → VALIDEE → EN_COURS → LIVREE
↘ REJETEE
↘ ANNULEE
- Runtime : Node.js 18+, Express.js
- ORM : Sequelize 6 + MSSQL
- Logging : Pino + OpenTelemetry (SigNoz)
- Tests API : Bruno Collection (69 requêtes)
| Ressource | Endpoints | Description |
|---|---|---|
| DID | CRUD /api/telephony/dids |
Gestion des numéros |
| Commandes | CRUD /api/telephony/commandes |
Workflow commandes |
| Dashboard | GET /api/telephony/dashboard |
Statistiques |
| Views | GET /api/telephony/views/* |
Vues agrégées |
| Demandes | CRUD /api/telephony/demandes-campagne |
DROIT+/DROIT++ |
| Notifications | CRUD /api/telephony/notifications |
In-app + email + Teams |
| Audit | GET /api/telephony/audit |
Journal d'audit |
| Parlant | GET/POST /api/telephony/parlant/* |
Contexte IA |
| Référence | CRUD /api/telephony/{indicatifs,regions,...} |
Tables de référence |
Agent conversationnel contextuel pour la gestion SDA (Vincenza) :
- Contexte filtré par rôle (admin/client/readonly), dérivé du JWT côté serveur
- LLM : Mistral (medium) par défaut, OpenAI / Anthropic en option (
LLM_PROVIDER) - Recherche audit, documentation glossaire
- Widget chat intégré dans l'interface (
ParlantChat.jsx)
| Élément | Description |
|---|---|
| JWT | Token 24h, cookie httpOnly |
| RBAC | Permissions par page : read, create, update, delete, admin |
| Rôles | admin (accès complet), user (selon permissions) |
| Niveaux droit | Standard, DROIT+, DROIT++ |
# Interface
cd INTERFACE && docker compose -f docker-compose-prod.yml up -d --build
# API
cd api && docker compose -f docker-compose-prod.yml up -d --buildChaque workspace a son propre .gitlab-ci.yml avec déploiement automatique sur les branches preprod et prod.
12 agents spécialisés installés dans .claude/agents/ :
| Catégorie | Agents |
|---|---|
| Engineering | Backend Architect, Frontend Developer, Senior Developer, Software Architect, Code Reviewer |
| Design | UI Designer, UX Architect |
| Testing | API Tester, Reality Checker, Performance Benchmarker |
| Security | Security Engineer, Threat Detection Engineer |
Propriétaire — Tous droits réservés