# samymadi/gestiondossierm-dical-back architecture

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

- Interactive diagram: https://gitdiagram.com/samymadi/gestiondossierm-dical-back
- Repository: https://github.com/samymadi/gestiondossierm-dical-back

## Overview

This is an e-medical backend serving account, authentication, medical-record, dashboard, and messaging workflows over HTTP, with live messaging over Socket.IO. Requests enter through the server’s middleware and mounted routes; route handlers validate data, invoke query modules, and shape responses. Medical records include folders, documents, patient access, and medical reviews; messaging includes discussions and stored messages. The graph preserves documented major subsystems, but dashboard and several query/model implementations were not excerpted, so their internal behavior is not detailed.

Main entry points: [`server.js`](https://github.com/samymadi/gestiondossierm-dical-back/blob/master/server.js) (HTTP and socket server), [`DataBaseConnection.js`](https://github.com/samymadi/gestiondossierm-dical-back/blob/master/DataBaseConnection.js) (Database connection), [`Routes/DossierMédical.js`](https://github.com/samymadi/gestiondossierm-dical-back/blob/master/Routes/DossierM%C3%A9dical.js) (Medical record routes), [`Utils/DataVerification.js`](https://github.com/samymadi/gestiondossierm-dical-back/blob/master/Utils/DataVerification.js) (Request validation)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Server runtime"]
  node_server["HTTP and socket server<br/>[server.js]"]
  node_validation["Request validation"]
  node_mysql[("MySQL database")]
  node_dbconn["Database connection"]
end

subgraph group_identity["Identity and accounts"]
  node_authroute["Authentication routes"]
  node_authsql["Authentication queries"]
  node_authmodel["Authentication models"]
  node_userroute["Account routes<br/>[User.js]"]
  node_usersql["User queries<br/>[UserSql.js]"]
  node_usermodel["User and patient models<br/>[User.js]"]
end

subgraph group_medical["Medical records"]
  node_medroute["Medical record routes<br/>[DossierMédical.js]"]
  node_medsql["Medical record queries<br/>[DossierMedSql.js]"]
end

subgraph group_messaging["Messaging"]
  node_messageroute["Messaging routes<br/>[Messagerie.js]"]
  node_messagesql["Messaging queries<br/>[MessagerieSql.js]"]
  node_messagemodel["Discussion and message models<br/>[Messagerie.js]"]
  node_socketmanager["Live connection manager"]
end

subgraph group_dashboard["Dashboard"]
  node_dashboardroute["Dashboard routes<br/>[Dashboard.js]"]
  node_dashsql["Dashboard queries<br/>[DashoardSql.js]"]
end

node_client(("API client"))

node_client -->|"sends requests"| node_server
node_server -->|"connects"| node_dbconn
node_dbconn -->|"opens connection"| node_mysql
node_server -->|"validates requests"| node_validation
node_server -->|"mounts routes"| node_authroute
node_server -->|"mounts routes"| node_userroute
node_server -->|"mounts routes"| node_medroute
node_server -->|"mounts routes"| node_dashboardroute
node_server -->|"mounts routes"| node_messageroute
node_server -->|"dispatches connections"| node_socketmanager
node_authroute -->|"validates inputs"| node_validation
node_authroute -->|"calls queries"| node_authsql
node_authroute -->|"builds responses"| node_authmodel
node_authsql -->|"queries"| node_dbconn
node_userroute -->|"validates session"| node_validation
node_userroute -->|"checks session"| node_authsql
node_userroute -->|"calls queries"| node_usersql
node_userroute -->|"shapes user data"| node_usermodel
node_usersql -->|"queries"| node_dbconn
node_medroute -->|"validates inputs"| node_validation
node_medroute -->|"checks access"| node_authsql
node_medroute -->|"calls queries"| node_medsql
node_medroute -->|"shapes records"| node_usermodel
node_medsql -->|"queries"| node_dbconn
node_medroute -.->|"stores uploaded files"| node_client
node_dashboardroute -->|"calls queries"| node_dashsql
node_dashboardroute -->|"validates inputs"| node_validation
node_dashsql -->|"queries"| node_dbconn
node_messageroute -->|"validates inputs"| node_validation
node_messageroute -->|"calls queries"| node_messagesql
node_messageroute -->|"shapes messages"| node_messagemodel
node_messagesql -->|"queries"| node_dbconn
node_socketmanager -->|"validates messages"| node_validation
node_socketmanager -->|"stores messages"| node_messagesql
node_socketmanager -->|"constructs messages"| node_messagemodel
node_socketmanager -.->|"emits messages"| node_client

click node_server "https://github.com/samymadi/gestiondossierm-dical-back/blob/master/server.js"
click node_validation "https://github.com/samymadi/gestiondossierm-dical-back/blob/master/Utils/DataVerification.js"
click node_dbconn "https://github.com/samymadi/gestiondossierm-dical-back/blob/master/DataBaseConnection.js"
click node_authroute "https://github.com/samymadi/gestiondossierm-dical-back/blob/master/Routes/Authentification.js"
click node_authsql "https://github.com/samymadi/gestiondossierm-dical-back/blob/master/MysqlQuery/AuthentificationSQL.js"
click node_authmodel "https://github.com/samymadi/gestiondossierm-dical-back/blob/master/Models/AuthentificationModel.js"
click node_userroute "https://github.com/samymadi/gestiondossierm-dical-back/blob/master/Routes/User.js"
click node_usersql "https://github.com/samymadi/gestiondossierm-dical-back/blob/master/MysqlQuery/UserSql.js"
click node_usermodel "https://github.com/samymadi/gestiondossierm-dical-back/blob/master/Models/User.js"
click node_medroute "https://github.com/samymadi/gestiondossierm-dical-back/blob/master/Routes/DossierM%C3%A9dical.js"
click node_medsql "https://github.com/samymadi/gestiondossierm-dical-back/blob/master/MysqlQuery/DossierMedSql.js"
click node_dashboardroute "https://github.com/samymadi/gestiondossierm-dical-back/blob/master/Routes/Dashboard.js"
click node_dashsql "https://github.com/samymadi/gestiondossierm-dical-back/blob/master/MysqlQuery/DashoardSql.js"
click node_messageroute "https://github.com/samymadi/gestiondossierm-dical-back/blob/master/Routes/Messagerie.js"
click node_messagesql "https://github.com/samymadi/gestiondossierm-dical-back/blob/master/MysqlQuery/MessagerieSql.js"
click node_messagemodel "https://github.com/samymadi/gestiondossierm-dical-back/blob/master/Models/Messagerie.js"
click node_socketmanager "https://github.com/samymadi/gestiondossierm-dical-back/blob/master/Sockets/ManagaConnections.js"

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_server,node_validation,node_mysql,node_dbconn,node_client toneBlue
class node_authroute,node_authsql,node_authmodel,node_userroute,node_usersql,node_usermodel toneAmber
class node_medroute,node_medsql toneMint
class node_messageroute,node_messagesql,node_messagemodel,node_socketmanager toneRose
class node_dashboardroute,node_dashsql toneIndigo
```

## Components

### Server runtime

- [HTTP and socket server](https://github.com/samymadi/gestiondossierm-dical-back/blob/master/server.js): `server.js`
- [Request validation](https://github.com/samymadi/gestiondossierm-dical-back/blob/master/Utils/DataVerification.js): `Utils/DataVerification.js`
- **MySQL database**
- [Database connection](https://github.com/samymadi/gestiondossierm-dical-back/blob/master/DataBaseConnection.js): `DataBaseConnection.js`

### Identity and accounts

- [Authentication routes](https://github.com/samymadi/gestiondossierm-dical-back/blob/master/Routes/Authentification.js): `Routes/Authentification.js`
- [Authentication queries](https://github.com/samymadi/gestiondossierm-dical-back/blob/master/MysqlQuery/AuthentificationSQL.js): `MysqlQuery/AuthentificationSQL.js`
- [Authentication models](https://github.com/samymadi/gestiondossierm-dical-back/blob/master/Models/AuthentificationModel.js): `Models/AuthentificationModel.js`
- [Account routes](https://github.com/samymadi/gestiondossierm-dical-back/blob/master/Routes/User.js): `Routes/User.js`
- [User queries](https://github.com/samymadi/gestiondossierm-dical-back/blob/master/MysqlQuery/UserSql.js): `MysqlQuery/UserSql.js`
- [User and patient models](https://github.com/samymadi/gestiondossierm-dical-back/blob/master/Models/User.js): `Models/User.js`

### Medical records

- [Medical record routes](https://github.com/samymadi/gestiondossierm-dical-back/blob/master/Routes/DossierM%C3%A9dical.js): `Routes/DossierMédical.js`
- [Medical record queries](https://github.com/samymadi/gestiondossierm-dical-back/blob/master/MysqlQuery/DossierMedSql.js): `MysqlQuery/DossierMedSql.js`

### Messaging

- [Messaging routes](https://github.com/samymadi/gestiondossierm-dical-back/blob/master/Routes/Messagerie.js): `Routes/Messagerie.js`
- [Messaging queries](https://github.com/samymadi/gestiondossierm-dical-back/blob/master/MysqlQuery/MessagerieSql.js): `MysqlQuery/MessagerieSql.js`
- [Discussion and message models](https://github.com/samymadi/gestiondossierm-dical-back/blob/master/Models/Messagerie.js): `Models/Messagerie.js`
- [Live connection manager](https://github.com/samymadi/gestiondossierm-dical-back/blob/master/Sockets/ManagaConnections.js): `Sockets/ManagaConnections.js`

### Dashboard

- [Dashboard routes](https://github.com/samymadi/gestiondossierm-dical-back/blob/master/Routes/Dashboard.js): `Routes/Dashboard.js`
- [Dashboard queries](https://github.com/samymadi/gestiondossierm-dical-back/blob/master/MysqlQuery/DashoardSql.js): `MysqlQuery/DashoardSql.js`

### Other components

- **API client**

## Connections

- API client → HTTP and socket server: sends requests
- HTTP and socket server → Database connection: connects (evidence: `server.js`)
- Database connection → MySQL database: opens connection (evidence: `DataBaseConnection.js`)
- HTTP and socket server → Request validation: validates requests (evidence: `server.js`)
- HTTP and socket server → Authentication routes: mounts routes (evidence: `server.js`)
- HTTP and socket server → Account routes: mounts routes (evidence: `server.js`)
- HTTP and socket server → Medical record routes: mounts routes (evidence: `server.js`)
- HTTP and socket server → Dashboard routes: mounts routes (evidence: `server.js`)
- HTTP and socket server → Messaging routes: mounts routes (evidence: `server.js`)
- HTTP and socket server → Live connection manager: dispatches connections (evidence: `server.js`)
- Authentication routes → Request validation: validates inputs (evidence: `Routes/Authentification.js`)
- Authentication routes → Authentication queries: calls queries (evidence: `Routes/Authentification.js`)
- Authentication routes → Authentication models: builds responses (evidence: `Routes/Authentification.js`)
- Authentication queries → Database connection: queries (evidence: `MysqlQuery/AuthentificationSQL.js`)
- Account routes → Request validation: validates session (evidence: `Routes/User.js`)
- Account routes → Authentication queries: checks session (evidence: `Routes/User.js`)
- Account routes → User queries: calls queries (evidence: `Routes/User.js`)
- Account routes → User and patient models: shapes user data (evidence: `Routes/User.js`)
- User queries → Database connection: queries (evidence: `MysqlQuery/UserSql.js`)
- Medical record routes → Request validation: validates inputs (evidence: `Routes/DossierMédical.js`)
- Medical record routes → Authentication queries: checks access (evidence: `Routes/DossierMédical.js`)
- Medical record routes → Medical record queries: calls queries (evidence: `Routes/DossierMédical.js`)
- Medical record routes → User and patient models: shapes records (evidence: `Routes/DossierMédical.js`)
- Medical record queries → Database connection: queries (evidence: `MysqlQuery/DossierMedSql.js`)
- Medical record routes → API client: stores uploaded files
- Dashboard routes → Dashboard queries: calls queries (evidence: `Routes/Dashboard.js`)
- Dashboard routes → Request validation: validates inputs (evidence: `Routes/Dashboard.js`)
- Dashboard queries → Database connection: queries (evidence: `MysqlQuery/DashoardSql.js`)
- Messaging routes → Request validation: validates inputs (evidence: `Routes/Messagerie.js`)
- Messaging routes → Messaging queries: calls queries (evidence: `Routes/Messagerie.js`)
- Messaging routes → Discussion and message models: shapes messages (evidence: `Routes/Messagerie.js`)
- Messaging queries → Database connection: queries (evidence: `MysqlQuery/MessagerieSql.js`)
- Live connection manager → Request validation: validates messages (evidence: `Sockets/ManagaConnections.js`)
- Live connection manager → Messaging queries: stores messages (evidence: `Sockets/ManagaConnections.js`)
- Live connection manager → Discussion and message models: constructs messages (evidence: `Sockets/ManagaConnections.js`)
- Live connection manager → API client: emits messages
