# younesbarmaki1809/enterprise-computing-project architecture

> Architecture diagram of the GitHub repository younesbarmaki1809/enterprise-computing-project, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/younesbarmaki1809/enterprise-computing-project
- Repository: https://github.com/younesbarmaki1809/enterprise-computing-project

## Overview

This is a document-management system with a React client and Spring/Python services. Users authenticate, browse department-scoped documents, inspect details, and work with files and comments; administrators also manage users, departments, and categories. The backend separates authentication, document metadata and file handling, versioning, and comments, with gateway/ESB and translation components also present. The excerpts establish several backend calls, but the README is empty and many modules were not sampled, so uncertain integrations are shown only as unverified dashed links or omitted.

Main entry points: [`Backend/documents-service/src/main/java/com/ensia/documents_service/controller/DocumentController.java`](https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Backend/documents-service/src/main/java/com/ensia/documents_service/controller/DocumentController.java) (Document API), [`Frontend/src/App.jsx`](https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Frontend/src/App.jsx) (Route application), [`Backend/documents-service/src/main/java/com/ensia/documents_service/service/DocumentService.java`](https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Backend/documents-service/src/main/java/com/ensia/documents_service/service/DocumentService.java) (Document service), [`Backend/documents-service/src/main/java/com/ensia/documents_service/controller/DocumentVersionController.java`](https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Backend/documents-service/src/main/java/com/ensia/documents_service/controller/DocumentVersionController.java) (Version API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Web client"]
  node_app["Route application<br/>[App.jsx]"]
  node_authctx["Auth context<br/>[AuthContext.jsx]"]
  node_docpages["Document pages"]
  node_adminpages["Admin pages"]
  node_loginpage["Login page<br/>[LoginPage.jsx]"]
end

subgraph group_identity["Identity"]
  node_authapi["Auth endpoints"]
  node_usersvc["User service<br/>[UserService.java]"]
  node_authrepo[("User repository")]
  node_jwt["JWT security<br/>[JwtUtil.java]"]
end

subgraph group_documents["Document management"]
  node_docapi["Document API"]
  node_docsvc["Document service"]
  node_docrepo[("Document store")]
  node_s3svc["File storage service<br/>[S3Service.java]"]
  node_versionapi["Version API"]
  node_versionrepo[("Version store")]
end

subgraph group_collaboration["Collaboration and integration"]
  node_commentsapi["Comments API"]
  node_commentservice["Comment service"]
  node_commentrepo[("Comment store")]
end

subgraph group_platform["Platform services"]
  node_gateway["API gateway"]
  node_esb["Document ESB"]
  node_translator["Translator<br/>[main.py]"]
  node_eventpub["Document events"]
end

node_user(("User"))
node_s3[("S3 object storage")]

node_user -->|"uses"| node_app
node_app -->|"routes to"| node_loginpage
node_app -->|"routes to"| node_docpages
node_app -->|"routes to"| node_adminpages
node_app -.->|"mounts"| node_authctx
node_loginpage -.->|"authenticates"| node_authapi
node_docpages -.->|"requests documents"| node_docapi
node_adminpages -.->|"manages metadata"| node_docapi
node_authapi -->|"delegates to"| node_usersvc
node_authapi -->|"issues token"| node_jwt
node_usersvc -->|"reads and writes"| node_authrepo
node_docapi -->|"delegates to"| node_docsvc
node_docsvc -->|"reads and writes"| node_docrepo
node_docsvc -->|"stores files"| node_s3svc
node_s3svc -.->|"uploads and fetches"| node_s3
node_versionapi -->|"reads and writes"| node_versionrepo
node_versionapi -->|"checks document"| node_docrepo
node_versionapi -->|"creates download URL"| node_s3svc
node_docapi -->|"fetches comments"| node_commentsapi
node_commentsapi -->|"delegates to"| node_commentservice
node_commentservice -->|"reads and writes"| node_commentrepo
node_docsvc -->|"publishes upload event"| node_eventpub
node_gateway -.->|"routes requests"| node_docapi
node_esb -.->|"integrates documents"| node_docapi
node_translator -.->|"translates documents"| node_docsvc

click node_app "https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Frontend/src/App.jsx"
click node_authctx "https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Frontend/src/context/AuthContext.jsx"
click node_docpages "https://github.com/younesbarmaki1809/enterprise-computing-project/tree/main/Frontend/src/pages/Documents"
click node_adminpages "https://github.com/younesbarmaki1809/enterprise-computing-project/tree/main/Frontend/src/pages/Admin"
click node_loginpage "https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Frontend/src/pages/Login/LoginPage.jsx"
click node_authapi "https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Backend/auth-service/src/main/java/com/dms/auth/controller/AuthController.java"
click node_usersvc "https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Backend/auth-service/src/main/java/com/dms/auth/service/UserService.java"
click node_authrepo "https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Backend/auth-service/src/main/java/com/dms/auth/repository/UserRepository.java"
click node_jwt "https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Backend/auth-service/src/main/java/com/dms/auth/security/JwtUtil.java"
click node_docapi "https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Backend/documents-service/src/main/java/com/ensia/documents_service/controller/DocumentController.java"
click node_docsvc "https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Backend/documents-service/src/main/java/com/ensia/documents_service/service/DocumentService.java"
click node_docrepo "https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Backend/documents-service/src/main/java/com/ensia/documents_service/repository/DocumentRepository.java"
click node_s3svc "https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Backend/documents-service/src/main/java/com/ensia/documents_service/service/S3Service.java"
click node_versionapi "https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Backend/documents-service/src/main/java/com/ensia/documents_service/controller/DocumentVersionController.java"
click node_versionrepo "https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Backend/documents-service/src/main/java/com/ensia/documents_service/repository/DocumentVersionRepository.java"
click node_commentsapi "https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Backend/comments-service/src/main/java/com/ensia/comments_service/controller/CommentController.java"
click node_commentservice "https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Backend/comments-service/src/main/java/com/ensia/comments_service/service/CommentService.java"
click node_commentrepo "https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Backend/comments-service/src/main/java/com/ensia/comments_service/repository/CommentRepository.java"
click node_gateway "https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Backend/gateway-service/src/main/java/com/ensia/gateway_service/GatewayServiceApplication.java"
click node_esb "https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Backend/esb-service/src/main/java/com/ensia/esb_service/integration/DocumentIntegrationFlow.java"
click node_translator "https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Backend/translator-service/app/main.py"
click node_eventpub "https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Backend/documents-service/src/main/java/com/ensia/documents_service/service/DocumentEventPublisher.java"

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_app,node_authctx,node_docpages,node_adminpages,node_loginpage,node_user toneBlue
class node_authapi,node_usersvc,node_authrepo,node_jwt,node_s3 toneAmber
class node_docapi,node_docsvc,node_docrepo,node_s3svc,node_versionapi,node_versionrepo toneMint
class node_commentsapi,node_commentservice,node_commentrepo toneRose
class node_gateway,node_esb,node_translator,node_eventpub toneIndigo
```

## Components

### Web client

- [Route application](https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Frontend/src/App.jsx): `Frontend/src/App.jsx`
- [Auth context](https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Frontend/src/context/AuthContext.jsx): `Frontend/src/context/AuthContext.jsx`
- [Document pages](https://github.com/younesbarmaki1809/enterprise-computing-project/tree/main/Frontend/src/pages/Documents): `Frontend/src/pages/Documents`
- [Admin pages](https://github.com/younesbarmaki1809/enterprise-computing-project/tree/main/Frontend/src/pages/Admin): `Frontend/src/pages/Admin`
- [Login page](https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Frontend/src/pages/Login/LoginPage.jsx): `Frontend/src/pages/Login/LoginPage.jsx`

### Identity

- [Auth endpoints](https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Backend/auth-service/src/main/java/com/dms/auth/controller/AuthController.java): `Backend/auth-service/src/main/java/com/dms/auth/controller/AuthController.java`
- [User service](https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Backend/auth-service/src/main/java/com/dms/auth/service/UserService.java): `Backend/auth-service/src/main/java/com/dms/auth/service/UserService.java`
- [User repository](https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Backend/auth-service/src/main/java/com/dms/auth/repository/UserRepository.java): `Backend/auth-service/src/main/java/com/dms/auth/repository/UserRepository.java`
- [JWT security](https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Backend/auth-service/src/main/java/com/dms/auth/security/JwtUtil.java): `Backend/auth-service/src/main/java/com/dms/auth/security/JwtUtil.java`

### Document management

- [Document API](https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Backend/documents-service/src/main/java/com/ensia/documents_service/controller/DocumentController.java): `Backend/documents-service/src/main/java/com/ensia/documents_service/controller/DocumentController.java`
- [Document service](https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Backend/documents-service/src/main/java/com/ensia/documents_service/service/DocumentService.java): `Backend/documents-service/src/main/java/com/ensia/documents_service/service/DocumentService.java`
- [Document store](https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Backend/documents-service/src/main/java/com/ensia/documents_service/repository/DocumentRepository.java): `Backend/documents-service/src/main/java/com/ensia/documents_service/repository/DocumentRepository.java`
- [File storage service](https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Backend/documents-service/src/main/java/com/ensia/documents_service/service/S3Service.java): `Backend/documents-service/src/main/java/com/ensia/documents_service/service/S3Service.java`
- [Version API](https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Backend/documents-service/src/main/java/com/ensia/documents_service/controller/DocumentVersionController.java): `Backend/documents-service/src/main/java/com/ensia/documents_service/controller/DocumentVersionController.java`
- [Version store](https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Backend/documents-service/src/main/java/com/ensia/documents_service/repository/DocumentVersionRepository.java): `Backend/documents-service/src/main/java/com/ensia/documents_service/repository/DocumentVersionRepository.java`

### Collaboration and integration

- [Comments API](https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Backend/comments-service/src/main/java/com/ensia/comments_service/controller/CommentController.java): `Backend/comments-service/src/main/java/com/ensia/comments_service/controller/CommentController.java`
- [Comment service](https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Backend/comments-service/src/main/java/com/ensia/comments_service/service/CommentService.java): `Backend/comments-service/src/main/java/com/ensia/comments_service/service/CommentService.java`
- [Comment store](https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Backend/comments-service/src/main/java/com/ensia/comments_service/repository/CommentRepository.java): `Backend/comments-service/src/main/java/com/ensia/comments_service/repository/CommentRepository.java`

### Platform services

- [API gateway](https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Backend/gateway-service/src/main/java/com/ensia/gateway_service/GatewayServiceApplication.java): `Backend/gateway-service/src/main/java/com/ensia/gateway_service/GatewayServiceApplication.java`
- [Document ESB](https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Backend/esb-service/src/main/java/com/ensia/esb_service/integration/DocumentIntegrationFlow.java): `Backend/esb-service/src/main/java/com/ensia/esb_service/integration/DocumentIntegrationFlow.java`
- [Translator](https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Backend/translator-service/app/main.py): `Backend/translator-service/app/main.py`
- [Document events](https://github.com/younesbarmaki1809/enterprise-computing-project/blob/main/Backend/documents-service/src/main/java/com/ensia/documents_service/service/DocumentEventPublisher.java): `Backend/documents-service/src/main/java/com/ensia/documents_service/service/DocumentEventPublisher.java`

### Other components

- **User**
- **S3 object storage**

## Connections

- User → Route application: uses
- Route application → Login page: routes to (evidence: `Frontend/src/App.jsx`)
- Route application → Document pages: routes to (evidence: `Frontend/src/App.jsx`)
- Route application → Admin pages: routes to (evidence: `Frontend/src/App.jsx`)
- Route application → Auth context: mounts
- Login page → Auth endpoints: authenticates
- Document pages → Document API: requests documents
- Admin pages → Document API: manages metadata
- Auth endpoints → User service: delegates to (evidence: `Backend/auth-service/src/main/java/com/dms/auth/controller/AuthController.java`)
- Auth endpoints → JWT security: issues token (evidence: `Backend/auth-service/src/main/java/com/dms/auth/controller/AuthController.java`)
- User service → User repository: reads and writes (evidence: `Backend/auth-service/src/main/java/com/dms/auth/service/UserService.java`)
- Document API → Document service: delegates to (evidence: `Backend/documents-service/src/main/java/com/ensia/documents_service/controller/DocumentController.java`)
- Document service → Document store: reads and writes (evidence: `Backend/documents-service/src/main/java/com/ensia/documents_service/service/DocumentService.java`)
- Document service → File storage service: stores files (evidence: `Backend/documents-service/src/main/java/com/ensia/documents_service/service/DocumentService.java`)
- File storage service → S3 object storage: uploads and fetches
- Version API → Version store: reads and writes (evidence: `Backend/documents-service/src/main/java/com/ensia/documents_service/controller/DocumentVersionController.java`)
- Version API → Document store: checks document (evidence: `Backend/documents-service/src/main/java/com/ensia/documents_service/controller/DocumentVersionController.java`)
- Version API → File storage service: creates download URL (evidence: `Backend/documents-service/src/main/java/com/ensia/documents_service/controller/DocumentVersionController.java`)
- Document API → Comments API: fetches comments (evidence: `Backend/documents-service/src/main/java/com/ensia/documents_service/controller/DocumentController.java`)
- Comments API → Comment service: delegates to (evidence: `Backend/comments-service/src/main/java/com/ensia/comments_service/controller/CommentController.java`)
- Comment service → Comment store: reads and writes (evidence: `Backend/comments-service/src/main/java/com/ensia/comments_service/service/CommentService.java`)
- Document service → Document events: publishes upload event (evidence: `Backend/documents-service/src/main/java/com/ensia/documents_service/service/DocumentService.java`)
- API gateway → Document API: routes requests
- Document ESB → Document API: integrates documents
- Translator → Document service: translates documents
