Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Wiki Wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Painel de Dados Nubo
  • WikiWiki
  • Wiki
  • Arquitetura

Arquitetura · Changes

Page history
Create Arquitetura authored Mar 24, 2025 by Ícaro Cecconello Espadim's avatar Ícaro Cecconello Espadim
Hide whitespace changes
Inline Side-by-side
Arquitetura.md 0 → 100644
View page @ ee0382da
* Frontend
* Backend
* Infraestrutura
# Visão Geral do Backend
O **Painel de Dados Nubo - Backend** é um sistema baseado em microserviço que fornece APIs para gerenciamento e entrega de dados analíticos. Ele é construído utilizando **FastAPI** e segue uma arquitetura modular para garantir escalabilidade, segurança e facilidade de manutenção.
## Estrutura de projeto
O sistema segue a arquitetura **modular**, organizada da seguinte forma:
```
📦 nubo-backend
┣ 📂 config # Configurações do sistema (banco, JWT, YAML, etc.)
┣ 📂 model # Definições das entidades e estrutura do banco de dados
┣ 📂 repository # Camada de acesso a dados e comunicação com o banco
┣ 📂 routers # Endpoints da API
┣ 📂 service # Regras de negócio e lógica de processamento
┣ 📜 requirements.txt # Dependências do projeto
┣ 📜 Dockerfile # Configuração para Docker
┣ 📜 README.md # Documentação
┗ 📜 .env.example # Configuração de ambiente
```
### **Camada de Modelos (Model)**
- Utiliza **SQLAlchemy** como ORM.
- Define as tabelas do banco de dados.
- Gerencia a persistência dos dados.
### **Camada de Repositório (Repository)**
- Implementa operações de banco de dados de forma desacoplada.
- Facilita a reutilização e manutenção do código.
### **Camada de Rotas (Routers)**
- Define as **rotas da API** usando **FastAPI**.
- Processa requisições HTTP e delega a lógica para a camada de serviços.
### **Camada de Serviços (Service)**
- Contém a lógica de negócio.
- Interage com os modelos e garante as regras do sistema.
### **Camada de Configuração (Config)**
- Gerencia configurações gerais do sistema.
- Inclui conexão com o banco de dados e parâmetros do JWT.
## Integrações e Tecnologias
| Tecnologia | Uso |
| --------------- | -------------------------------------- |
| **FastAPI** | Framework web para APIs assíncronas |
| **SQLAlchemy** | ORM para manipulação de banco de dados |
| **JWT (PyJWT)** | Autenticação e autorização |
| **Docker** | Containerização da aplicação |
| **YAML** | Configuração parametrizada do sistema |
## Fluxo de Requisição
1. **Usuário** faz uma requisição HTTP para a API.
2. **Router** recebe a requisição e valida os dados de entrada.
3. **Service** processa a lógica de negócio e acessa os modelos, se necessário.
4. **Repository** interage com o banco de dados via SQLAlchemy.
5. **Resposta** é enviada de volta ao usuário.
Clone repository
  • Arquitetura
  • Banco de Dados
  • Gerência
  • Mockups
  • Processos
  • Sprints
  • Testes
  • Home