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

Last edited by Carolina Michel Ferreira Jun 19, 2025
Page history
This is an old version of this page. You can view the most recent version or browse the history.

Arquitetura

  • 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