# douaekarachi-sys/archiflow architecture

> Architecture diagram of the GitHub repository douaekarachi-sys/archiflow, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/douaekarachi-sys/archiflow
- Repository: https://github.com/douaekarachi-sys/archiflow

## Overview

ArchiFlow est une plateforme de conception d’architectures réseau et système, du besoin client jusqu’à la conception, au chiffrage et à la validation. Le parcours principal passe par le portail React, l’API NestJS et les services métier : création et suivi du projet, conception versionnée, puis BOM et rapport PDF. Les branches couvrent aussi la gestion des rôles, le catalogue, les échanges, l’assistant local et l’audit. Les liens suivent les appels visibles dans les extraits ou les capacités explicitement documentées ; plusieurs implémentations n’étant pas échantillonnées, leurs relations internes ne sont pas détaillées.

Main entry points: [`backend/src/main.ts`](https://github.com/douaekarachi-sys/archiflow/blob/main/backend/src/main.ts) (API NestJS), [`backend/src/core/prisma/prisma.service.ts`](https://github.com/douaekarachi-sys/archiflow/blob/main/backend/src/core/prisma/prisma.service.ts) (Accès aux données), [`frontend/src/app/router.tsx`](https://github.com/douaekarachi-sys/archiflow/blob/main/frontend/src/app/router.tsx) (Application portail), [`frontend/src/api/client.ts`](https://github.com/douaekarachi-sys/archiflow/blob/main/frontend/src/api/client.ts) (Client API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["Portail utilisateur"]
  node_portal["Application portail<br/>[router.tsx]"]
  node_authui["Connexion et session<br/>[auth-pages.tsx]"]
  node_projectsui["Projets et tableau<br/>[projects-page.tsx]"]
  node_designer["Concepteur réseau<br/>[designer-page.tsx]"]
  node_roletools["Outils par rôle"]
  node_client["Client API<br/>[client.ts]"]
end

subgraph group_workflow["Projets et conception"]
  node_projects["Projets et workflow"]
  node_architecture["Architecture et versions"]
  node_catalog["Catalogue équipement"]
  node_comments["Messages projet"]
end

subgraph group_engineering["Ingénierie et livrables"]
  node_sizing["Dimensionnement"]
  node_bom["Nomenclature BOM<br/>[bom.controller.ts]"]
  node_reports["Rapport PDF"]
  node_chatbot["Assistant local"]
  node_shared["Règles et schémas partagés<br/>[index.ts]"]
end

subgraph group_platform["Services plateforme"]
  node_auth["Authentification<br/>[auth.controller.ts]"]
  node_usersadmin["Gestion utilisateurs"]
  node_audit["Journal d’audit"]
  node_database[("PostgreSQL")]
  node_api["API NestJS<br/>[main.ts]"]
  node_prisma["Accès aux données<br/>[prisma.service.ts]"]
  node_mail["Service de courriel<br/>[mailer.ts]"]
end

node_users(("Utilisateurs"))

node_users -->|"utilisent"| node_portal
node_portal -->|"affiche"| node_authui
node_portal -->|"affiche"| node_projectsui
node_portal -->|"affiche"| node_designer
node_portal -->|"affiche"| node_roletools
node_authui -->|"appelle"| node_client
node_projectsui -->|"appelle"| node_client
node_designer -->|"appelle"| node_client
node_roletools -->|"appelle"| node_client
node_client -->|"requêtes HTTP"| node_api
node_api -->|"dispatch"| node_auth
node_api -->|"dispatch"| node_projects
node_api -->|"dispatch"| node_architecture
node_api -->|"dispatch"| node_catalog
node_api -->|"dispatch"| node_comments
node_api -->|"dispatch"| node_bom
node_api -->|"dispatch"| node_reports
node_api -->|"dispatch"| node_chatbot
node_api -->|"dispatch"| node_usersadmin
node_api -->|"dispatch"| node_audit
node_projects -->|"lit et écrit"| node_prisma
node_architecture -->|"lit et écrit"| node_prisma
node_catalog -->|"lit et écrit"| node_prisma
node_auth -->|"lit et écrit"| node_prisma
node_usersadmin -->|"lit et écrit"| node_prisma
node_audit -->|"lit et écrit"| node_prisma
node_prisma -->|"accède"| node_database
node_projects -->|"valide règles"| node_shared
node_architecture -->|"valide schéma"| node_shared
node_sizing -->|"règles partagées"| node_shared
node_chatbot -->|"calcule via moteur local"| node_sizing
node_reports -->|"extrait conception"| node_architecture
node_reports -->|"inclut nomenclature"| node_bom
node_auth -->|"envoie courriel"| node_mail

click node_portal "https://github.com/douaekarachi-sys/archiflow/blob/main/frontend/src/app/router.tsx"
click node_authui "https://github.com/douaekarachi-sys/archiflow/blob/main/frontend/src/features/auth/auth-pages.tsx"
click node_projectsui "https://github.com/douaekarachi-sys/archiflow/blob/main/frontend/src/features/projects/projects-page.tsx"
click node_designer "https://github.com/douaekarachi-sys/archiflow/blob/main/frontend/src/features/designer/designer-page.tsx"
click node_roletools "https://github.com/douaekarachi-sys/archiflow/blob/main/frontend/src/features/engineer/need-analysis-page.tsx"
click node_client "https://github.com/douaekarachi-sys/archiflow/blob/main/frontend/src/api/client.ts"
click node_auth "https://github.com/douaekarachi-sys/archiflow/blob/main/backend/src/modules/auth/auth.controller.ts"
click node_projects "https://github.com/douaekarachi-sys/archiflow/blob/main/backend/src/modules/projects/projects.controller.ts"
click node_architecture "https://github.com/douaekarachi-sys/archiflow/blob/main/backend/src/modules/architecture/architecture.controller.ts"
click node_catalog "https://github.com/douaekarachi-sys/archiflow/blob/main/backend/src/modules/catalog/catalog.controller.ts"
click node_comments "https://github.com/douaekarachi-sys/archiflow/tree/main/backend/src/modules/comments"
click node_sizing "https://github.com/douaekarachi-sys/archiflow/blob/main/packages/shared/src/sizing/engineering-sizing.ts"
click node_bom "https://github.com/douaekarachi-sys/archiflow/blob/main/backend/src/modules/architecture/bom.controller.ts"
click node_reports "https://github.com/douaekarachi-sys/archiflow/blob/main/backend/src/modules/reports/reports.controller.ts"
click node_chatbot "https://github.com/douaekarachi-sys/archiflow/blob/main/backend/src/modules/chatbot/chatbot.controller.ts"
click node_usersadmin "https://github.com/douaekarachi-sys/archiflow/blob/main/backend/src/modules/users/users.controller.ts"
click node_audit "https://github.com/douaekarachi-sys/archiflow/blob/main/backend/src/modules/audit/audit.controller.ts"
click node_api "https://github.com/douaekarachi-sys/archiflow/blob/main/backend/src/main.ts"
click node_prisma "https://github.com/douaekarachi-sys/archiflow/blob/main/backend/src/core/prisma/prisma.service.ts"
click node_shared "https://github.com/douaekarachi-sys/archiflow/blob/main/packages/shared/src/index.ts"
click node_mail "https://github.com/douaekarachi-sys/archiflow/blob/main/backend/src/modules/mail/mailer.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_portal,node_authui,node_projectsui,node_designer,node_roletools,node_client toneBlue
class node_projects,node_architecture,node_catalog,node_comments toneAmber
class node_sizing,node_bom,node_reports,node_chatbot,node_shared toneMint
class node_auth,node_usersadmin,node_audit,node_database,node_api,node_prisma,node_mail toneRose
class node_users toneIndigo
```

## Components

### Portail utilisateur

- [Application portail](https://github.com/douaekarachi-sys/archiflow/blob/main/frontend/src/app/router.tsx): `frontend/src/app/router.tsx`
- [Connexion et session](https://github.com/douaekarachi-sys/archiflow/blob/main/frontend/src/features/auth/auth-pages.tsx): `frontend/src/features/auth/auth-pages.tsx`
- [Projets et tableau](https://github.com/douaekarachi-sys/archiflow/blob/main/frontend/src/features/projects/projects-page.tsx): `frontend/src/features/projects/projects-page.tsx`
- [Concepteur réseau](https://github.com/douaekarachi-sys/archiflow/blob/main/frontend/src/features/designer/designer-page.tsx): `frontend/src/features/designer/designer-page.tsx`
- [Outils par rôle](https://github.com/douaekarachi-sys/archiflow/blob/main/frontend/src/features/engineer/need-analysis-page.tsx): `frontend/src/features/engineer/need-analysis-page.tsx`
- [Client API](https://github.com/douaekarachi-sys/archiflow/blob/main/frontend/src/api/client.ts): `frontend/src/api/client.ts`

### Projets et conception

- [Projets et workflow](https://github.com/douaekarachi-sys/archiflow/blob/main/backend/src/modules/projects/projects.controller.ts): `backend/src/modules/projects/projects.controller.ts`
- [Architecture et versions](https://github.com/douaekarachi-sys/archiflow/blob/main/backend/src/modules/architecture/architecture.controller.ts): `backend/src/modules/architecture/architecture.controller.ts`
- [Catalogue équipement](https://github.com/douaekarachi-sys/archiflow/blob/main/backend/src/modules/catalog/catalog.controller.ts): `backend/src/modules/catalog/catalog.controller.ts`
- [Messages projet](https://github.com/douaekarachi-sys/archiflow/tree/main/backend/src/modules/comments): `backend/src/modules/comments`

### Ingénierie et livrables

- [Dimensionnement](https://github.com/douaekarachi-sys/archiflow/blob/main/packages/shared/src/sizing/engineering-sizing.ts): `packages/shared/src/sizing/engineering-sizing.ts`
- [Nomenclature BOM](https://github.com/douaekarachi-sys/archiflow/blob/main/backend/src/modules/architecture/bom.controller.ts): `backend/src/modules/architecture/bom.controller.ts`
- [Rapport PDF](https://github.com/douaekarachi-sys/archiflow/blob/main/backend/src/modules/reports/reports.controller.ts): `backend/src/modules/reports/reports.controller.ts`
- [Assistant local](https://github.com/douaekarachi-sys/archiflow/blob/main/backend/src/modules/chatbot/chatbot.controller.ts): `backend/src/modules/chatbot/chatbot.controller.ts`
- [Règles et schémas partagés](https://github.com/douaekarachi-sys/archiflow/blob/main/packages/shared/src/index.ts): `packages/shared/src/index.ts`

### Services plateforme

- [Authentification](https://github.com/douaekarachi-sys/archiflow/blob/main/backend/src/modules/auth/auth.controller.ts): `backend/src/modules/auth/auth.controller.ts`
- [Gestion utilisateurs](https://github.com/douaekarachi-sys/archiflow/blob/main/backend/src/modules/users/users.controller.ts): `backend/src/modules/users/users.controller.ts`
- [Journal d’audit](https://github.com/douaekarachi-sys/archiflow/blob/main/backend/src/modules/audit/audit.controller.ts): `backend/src/modules/audit/audit.controller.ts`
- **PostgreSQL**
- [API NestJS](https://github.com/douaekarachi-sys/archiflow/blob/main/backend/src/main.ts): `backend/src/main.ts`
- [Accès aux données](https://github.com/douaekarachi-sys/archiflow/blob/main/backend/src/core/prisma/prisma.service.ts): `backend/src/core/prisma/prisma.service.ts`
- [Service de courriel](https://github.com/douaekarachi-sys/archiflow/blob/main/backend/src/modules/mail/mailer.ts): `backend/src/modules/mail/mailer.ts`

### Other components

- **Utilisateurs**

## Connections

- Utilisateurs → Application portail: utilisent
- Application portail → Connexion et session: affiche
- Application portail → Projets et tableau: affiche
- Application portail → Concepteur réseau: affiche
- Application portail → Outils par rôle: affiche
- Connexion et session → Client API: appelle
- Projets et tableau → Client API: appelle
- Concepteur réseau → Client API: appelle
- Outils par rôle → Client API: appelle
- Client API → API NestJS: requêtes HTTP
- API NestJS → Authentification: dispatch
- API NestJS → Projets et workflow: dispatch
- API NestJS → Architecture et versions: dispatch
- API NestJS → Catalogue équipement: dispatch
- API NestJS → Messages projet: dispatch
- API NestJS → Nomenclature BOM: dispatch
- API NestJS → Rapport PDF: dispatch
- API NestJS → Assistant local: dispatch
- API NestJS → Gestion utilisateurs: dispatch
- API NestJS → Journal d’audit: dispatch
- Projets et workflow → Accès aux données: lit et écrit
- Architecture et versions → Accès aux données: lit et écrit
- Catalogue équipement → Accès aux données: lit et écrit
- Authentification → Accès aux données: lit et écrit
- Gestion utilisateurs → Accès aux données: lit et écrit
- Journal d’audit → Accès aux données: lit et écrit
- Accès aux données → PostgreSQL: accède
- Projets et workflow → Règles et schémas partagés: valide règles
- Architecture et versions → Règles et schémas partagés: valide schéma
- Dimensionnement → Règles et schémas partagés: règles partagées
- Assistant local → Dimensionnement: calcule via moteur local
- Rapport PDF → Architecture et versions: extrait conception
- Rapport PDF → Nomenclature BOM: inclut nomenclature
- Authentification → Service de courriel: envoie courriel
