# tatianaifsp/cti-projeto-deploy architecture

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

- Interactive diagram: https://gitdiagram.com/tatianaifsp/cti-projeto-deploy
- Repository: https://github.com/tatianaifsp/cti-projeto-deploy

## Overview

CTI Insights accepts customer spreadsheets, previews validation errors, and persists only valid rows. The primary path runs from the Vue upload experience through Java validation/orchestration to Python cleaning, analysis, and persistence; Java then serves stored dashboard statistics to Vue. Separate capabilities include JWT-based access, account administration, and reporting. Edges reflect README statements and source-index references; several controller/API implementation details were not sampled, so those links are documented or left unverified.

Main entry points: [`frontend/src/services/api.js`](https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/frontend/src/services/api.js) (API client), [`analytics-python/main.py`](https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/analytics-python/main.py) (Analysis pipeline), [`backend/src/main/java/com/cti/provedor/service/UploadService.java`](https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/backend/src/main/java/com/cti/provedor/service/UploadService.java) (Upload orchestration), [`frontend/src/views/UploadView.vue`](https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/frontend/src/views/UploadView.vue) (Upload screen)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Vue application"]
  node_upload_ui["Upload screen<br/>[UploadView.vue]"]
  node_upload_store["Upload state<br/>[upload.js]"]
  node_api_client["API client<br/>[api.js]"]
  node_auth_ui["Login and registration<br/>[auth.js]"]
  node_admin_ui["User administration"]
end

subgraph group_backend["Java backend"]
  node_upload_controller["Upload endpoint"]
  node_upload_service["Upload orchestration<br/>[UploadService.java]"]
  node_validation["Row validation"]
  node_python_etl["Python ETL client"]
end

subgraph group_analytics["Python analytics"]
  node_python_api["ETL API<br/>[api.py]"]
  node_pipeline["Analysis pipeline<br/>[main.py]"]
  node_cleaning["Cleaning and standardization<br/>[limpeza.py]"]
  node_analysis["Client analysis<br/>[analise.py]"]
  node_insight_calc["Insight calculation<br/>[insights.py]"]
  node_python_storage["Data persistence<br/>[banco.py]"]
end

subgraph group_identity["Identity and administration"]
  node_auth_controller["Authentication endpoints"]
  node_auth_service["Authentication rules<br/>[AuthService.java]"]
  node_user_repository[("User repository")]
  node_admin_controller["Admin endpoints"]
  node_user_service["User management"]
end

subgraph group_insights["Dashboard and reporting"]
  node_dashboard_ui["Dashboard view<br/>[DashboardView.vue]"]
  node_dashboard_controller["Dashboard endpoint"]
  node_dashboard_service["Dashboard queries"]
  node_report_ui["Upload report<br/>[RelatorioView.vue]"]
end

node_user(("User"))
node_database[("PostgreSQL / Neon")]

node_user -->|"uploads spreadsheet"| node_upload_ui
node_upload_ui -.->|"uses upload state"| node_upload_store
node_upload_store -->|"sends valid rows"| node_api_client
node_api_client -->|"calls backend"| node_upload_controller
node_upload_controller -->|"delegates upload"| node_upload_service
node_upload_service -->|"validates rows"| node_validation
node_upload_service -->|"forwards valid rows"| node_python_etl
node_python_etl -->|"sends ETL request"| node_python_api
node_python_api -.->|"dispatches processing"| node_pipeline
node_pipeline -->|"cleans data"| node_cleaning
node_pipeline -->|"analyzes data"| node_analysis
node_analysis -->|"uses insights"| node_insight_calc
node_pipeline -->|"persists results"| node_python_storage
node_python_storage -->|"writes batches and statistics"| node_database
node_user -->|"signs in"| node_auth_ui
node_auth_ui -->|"calls auth service"| node_api_client
node_api_client -->|"calls backend"| node_auth_controller
node_auth_controller -->|"delegates authentication"| node_auth_service
node_auth_service -->|"reads and saves users"| node_user_repository
node_user -->|"manages accounts"| node_admin_ui
node_admin_ui -.->|"calls admin API"| node_admin_controller
node_admin_controller -->|"delegates management"| node_user_service
node_user_service -->|"queries users"| node_user_repository
node_user -->|"views charts"| node_dashboard_ui
node_dashboard_ui -->|"requests statistics"| node_api_client
node_api_client -->|"calls dashboard API"| node_dashboard_controller
node_dashboard_controller -->|"delegates query"| node_dashboard_service
node_dashboard_service -->|"reads statistics"| node_database
node_user -.->|"reviews upload report"| node_report_ui

click node_upload_ui "https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/frontend/src/views/UploadView.vue"
click node_upload_store "https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/frontend/src/stores/upload.js"
click node_api_client "https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/frontend/src/services/api.js"
click node_upload_controller "https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/backend/src/main/java/com/cti/provedor/controller/UploadController.java"
click node_upload_service "https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/backend/src/main/java/com/cti/provedor/service/UploadService.java"
click node_validation "https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/backend/src/main/java/com/cti/provedor/service/ClienteValidacaoService.java"
click node_python_etl "https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/backend/src/main/java/com/cti/provedor/service/PythonEtlService.java"
click node_python_api "https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/analytics-python/api.py"
click node_pipeline "https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/analytics-python/main.py"
click node_cleaning "https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/analytics-python/limpeza.py"
click node_analysis "https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/analytics-python/analise.py"
click node_insight_calc "https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/analytics-python/insights.py"
click node_python_storage "https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/analytics-python/banco.py"
click node_auth_ui "https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/frontend/src/stores/auth.js"
click node_auth_controller "https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/backend/src/main/java/com/cti/provedor/controller/AuthController.java"
click node_auth_service "https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/backend/src/main/java/com/cti/provedor/service/AuthService.java"
click node_user_repository "https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/backend/src/main/java/com/cti/provedor/repository/UsuarioRepository.java"
click node_admin_ui "https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/frontend/src/views/AdminUsuariosView.vue"
click node_admin_controller "https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/backend/src/main/java/com/cti/provedor/controller/AdminUsuarioController.java"
click node_user_service "https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/backend/src/main/java/com/cti/provedor/service/UsuarioService.java"
click node_dashboard_ui "https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/frontend/src/views/DashboardView.vue"
click node_dashboard_controller "https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/backend/src/main/java/com/cti/provedor/controller/DashboardController.java"
click node_dashboard_service "https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/backend/src/main/java/com/cti/provedor/service/DashboardService.java"
click node_report_ui "https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/frontend/src/views/RelatorioView.vue"

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_upload_ui,node_upload_store,node_api_client,node_auth_ui,node_admin_ui,node_user toneBlue
class node_upload_controller,node_upload_service,node_validation,node_python_etl,node_database toneAmber
class node_python_api,node_pipeline,node_cleaning,node_analysis,node_insight_calc,node_python_storage toneMint
class node_auth_controller,node_auth_service,node_user_repository,node_admin_controller,node_user_service toneRose
class node_dashboard_ui,node_dashboard_controller,node_dashboard_service,node_report_ui toneIndigo
```

## Components

### Vue application

- [Upload screen](https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/frontend/src/views/UploadView.vue): `frontend/src/views/UploadView.vue`
- [Upload state](https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/frontend/src/stores/upload.js): `frontend/src/stores/upload.js`
- [API client](https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/frontend/src/services/api.js): `frontend/src/services/api.js`
- [Login and registration](https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/frontend/src/stores/auth.js): `frontend/src/stores/auth.js`
- [User administration](https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/frontend/src/views/AdminUsuariosView.vue): `frontend/src/views/AdminUsuariosView.vue`

### Java backend

- [Upload endpoint](https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/backend/src/main/java/com/cti/provedor/controller/UploadController.java): `backend/src/main/java/com/cti/provedor/controller/UploadController.java`
- [Upload orchestration](https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/backend/src/main/java/com/cti/provedor/service/UploadService.java): `backend/src/main/java/com/cti/provedor/service/UploadService.java`
- [Row validation](https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/backend/src/main/java/com/cti/provedor/service/ClienteValidacaoService.java): `backend/src/main/java/com/cti/provedor/service/ClienteValidacaoService.java`
- [Python ETL client](https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/backend/src/main/java/com/cti/provedor/service/PythonEtlService.java): `backend/src/main/java/com/cti/provedor/service/PythonEtlService.java`

### Python analytics

- [ETL API](https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/analytics-python/api.py): `analytics-python/api.py`
- [Analysis pipeline](https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/analytics-python/main.py): `analytics-python/main.py`
- [Cleaning and standardization](https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/analytics-python/limpeza.py): `analytics-python/limpeza.py`
- [Client analysis](https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/analytics-python/analise.py): `analytics-python/analise.py`
- [Insight calculation](https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/analytics-python/insights.py): `analytics-python/insights.py`
- [Data persistence](https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/analytics-python/banco.py): `analytics-python/banco.py`

### Identity and administration

- [Authentication endpoints](https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/backend/src/main/java/com/cti/provedor/controller/AuthController.java): `backend/src/main/java/com/cti/provedor/controller/AuthController.java`
- [Authentication rules](https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/backend/src/main/java/com/cti/provedor/service/AuthService.java): `backend/src/main/java/com/cti/provedor/service/AuthService.java`
- [User repository](https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/backend/src/main/java/com/cti/provedor/repository/UsuarioRepository.java): `backend/src/main/java/com/cti/provedor/repository/UsuarioRepository.java`
- [Admin endpoints](https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/backend/src/main/java/com/cti/provedor/controller/AdminUsuarioController.java): `backend/src/main/java/com/cti/provedor/controller/AdminUsuarioController.java`
- [User management](https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/backend/src/main/java/com/cti/provedor/service/UsuarioService.java): `backend/src/main/java/com/cti/provedor/service/UsuarioService.java`

### Dashboard and reporting

- [Dashboard view](https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/frontend/src/views/DashboardView.vue): `frontend/src/views/DashboardView.vue`
- [Dashboard endpoint](https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/backend/src/main/java/com/cti/provedor/controller/DashboardController.java): `backend/src/main/java/com/cti/provedor/controller/DashboardController.java`
- [Dashboard queries](https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/backend/src/main/java/com/cti/provedor/service/DashboardService.java): `backend/src/main/java/com/cti/provedor/service/DashboardService.java`
- [Upload report](https://github.com/tatianaifsp/cti-projeto-deploy/blob/main/frontend/src/views/RelatorioView.vue): `frontend/src/views/RelatorioView.vue`

### Other components

- **User**
- **PostgreSQL / Neon**

## Connections

- User → Upload screen: uploads spreadsheet (evidence: `README.md`)
- Upload screen → Upload state: uses upload state
- Upload state → API client: sends valid rows (evidence: `README.md`)
- API client → Upload endpoint: calls backend (evidence: `README.md`)
- Upload endpoint → Upload orchestration: delegates upload (evidence: `backend/src/main/java/com/cti/provedor/service/UploadService.java`)
- Upload orchestration → Row validation: validates rows (evidence: `backend/src/main/java/com/cti/provedor/service/UploadService.java`)
- Upload orchestration → Python ETL client: forwards valid rows (evidence: `backend/src/main/java/com/cti/provedor/service/UploadService.java`)
- Python ETL client → ETL API: sends ETL request (evidence: `README.md`)
- ETL API → Analysis pipeline: dispatches processing
- Analysis pipeline → Cleaning and standardization: cleans data (evidence: `analytics-python/main.py`)
- Analysis pipeline → Client analysis: analyzes data (evidence: `analytics-python/main.py`)
- Client analysis → Insight calculation: uses insights (evidence: `analytics-python/analise.py`)
- Analysis pipeline → Data persistence: persists results (evidence: `analytics-python/main.py`)
- Data persistence → PostgreSQL / Neon: writes batches and statistics (evidence: `README.md`)
- User → Login and registration: signs in (evidence: `README.md`)
- Login and registration → API client: calls auth service (evidence: `frontend/src/stores/auth.js`)
- API client → Authentication endpoints: calls backend (evidence: `README.md`)
- Authentication endpoints → Authentication rules: delegates authentication (evidence: `backend/src/main/java/com/cti/provedor/controller/AuthController.java`)
- Authentication rules → User repository: reads and saves users (evidence: `backend/src/main/java/com/cti/provedor/service/AuthService.java`)
- User → User administration: manages accounts (evidence: `README.md`)
- User administration → Admin endpoints: calls admin API
- Admin endpoints → User management: delegates management (evidence: `backend/src/main/java/com/cti/provedor/controller/AdminUsuarioController.java`)
- User management → User repository: queries users (evidence: `backend/src/main/java/com/cti/provedor/service/UsuarioService.java`)
- User → Dashboard view: views charts (evidence: `README.md`)
- Dashboard view → API client: requests statistics (evidence: `frontend/src/views/DashboardView.vue`)
- API client → Dashboard endpoint: calls dashboard API (evidence: `README.md`)
- Dashboard endpoint → Dashboard queries: delegates query (evidence: `backend/src/main/java/com/cti/provedor/controller/DashboardController.java`)
- Dashboard queries → PostgreSQL / Neon: reads statistics (evidence: `README.md`)
- User → Upload report: reviews upload report
