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
Update Arquitetura authored Mar 26, 2025 by Ícaro Cecconello Espadim's avatar Ícaro Cecconello Espadim
Hide whitespace changes
Inline Side-by-side
Arquitetura.md
View page @ af3bf54a
......@@ -10,7 +10,7 @@ O **Painel de Dados Nubo - Backend** é um sistema baseado em microserviço que
O sistema segue a arquitetura **modular**, organizada da seguinte forma:
```
```plaintext
📦 nubo-backend
┣ 📂 config # Configurações do sistema (banco, JWT, YAML, etc.)
┣ 📂 model # Definições das entidades e estrutura do banco de dados
......@@ -50,13 +50,12 @@ O sistema segue a arquitetura **modular**, organizada da seguinte forma:
- 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 |
| 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 |
## Fluxo de Requisição
......@@ -64,4 +63,49 @@ O sistema segue a arquitetura **modular**, organizada da seguinte forma:
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.
\ No newline at end of file
5. **Resposta** é enviada de volta ao usuário.
## Rotas da API
<details>
<summary>User</summary>
* POST /users - Criar usuário (admin ou normal)
* GET /users/email/{email} - Buscar usuário por email
* GET /users/account/{accountId} - Listar todos os usuários por conta
* DELETE /users/{userId} - Excluir usuário (soft delete)
* POST /users/authenticate - Autenticar usuário
</details>
<details>
<summary>Account</summary>
* POST /accounts - Criar conta
* PUT /accounts/{accountId} - Atualizar conta
* GET /accounts/email/{email} - Buscar conta por email
* GET /accounts - Listar todas as contas
* DELETE /accounts/{accountId} - Excluir conta (soft delete)
</details>
<details>
<summary>Dataset</summary>
* POST /datasets - Criar dataset
* PUT /datasets/{datasetId} - Atualizar dataset
* GET /datasets/{datasetId} - Buscar dataset por ID
* GET /datasets/location/{location} - Buscar dataset por localização
* GET /datasets/price/{price} - Buscar dataset por preço
* GET /datasets - Listar todos os datasets (paginação)
* DELETE /datasets/{datasetId} - Excluir dataset (soft delete)
</details>
<details>
<summary>Invoice</summary>
* POST /invoices - Criar fatura
* GET /invoices/account/{accountId} - Buscar fatura por conta
* GET /invoices - Buscar todas as faturas Transaction POST /transactions - Criar transação (única ou assinatura)
</details>
<details>
<summary>Subscription</summary>
* POST /subscriptions - Criar assinaturaDELETE /subscriptions/{subscriptionId} - Cancelar assinatura
* GET /subscriptions/account/{accountId} - Buscar todas as assinaturas por conta
* GET /subscriptions/account/{accountId}/month/{month} - Buscar todas as assinaturas por conta e mês
</details>
\ No newline at end of file
Clone repository
  • Arquitetura
  • Banco de Dados
  • Gerência
  • Mockups
  • Processos
  • Sprints
  • Testes
  • Home