Skip to content

Latest commit

 

History

History
59 lines (45 loc) · 2.66 KB

TODO.md

File metadata and controls

59 lines (45 loc) · 2.66 KB

Estrutura do Projeto

1. Setup do Ambiente

  • Configurar ambiente de desenvolvimento com Go.
  • Configurar PostgreSQL para o banco de dados.
  • Configurar Redis para cache.
  • [??] Configurar ferramentas de testes unitários e integração.
  • Criar o projeto com a estrutura de diretórios para API REST.

2. Banco de Dados (PostgreSQL)

  • Modelagem das Tabelas:

    • Criar a tabela customers com campos: id, nome, email
    • Criar a tabela products com campos: id, nome, descricao, preco.
    • Criar a tabela orders com campos: id, customer_id, data_order, status.
    • Criar a tabela itens_order com campos: id, order_id, product_id, quantidade.
    • Criar a tabela stock com campos: id, product_id, quantidade_disponivel.
  • Normalização:

    • Garantir que as tabelas estejam normalizadas para evitar redundâncias.
  • Migrations:

    • Configurar migrations para versionar o esquema do banco de dados.
    • Criar migrations para adicionar e modificar tabelas e colunas.
  • Índices de Banco de Dados:

    • Criar índices nas colunas mais consultadas, como customer_id, product_id e order_id.
  • Transações (ACID):

    • Implementar transações para garantir que as operações de criação de orders sejam atômicas (incluir itens do order e atualizar stock).

3. API REST (Golang)

  • Estrutura de Endpoints:

    • Criar endpoint POST /customers para cadastro de novos customers.
    • Criar endpoint GET /customers/{id} para visualizar detalhes de um customer.
    • Criar endpoint POST /products para adicionar novos products.
    • Criar endpoint GET /produccts para pegar todos os produtos
      • Criar um sistema de paginação
    • Criar endpoint GET /products/{id} para visualizar detalhes de um product.
    • Criar endpoint POST /orders para criar um order.
    • Criar endpoint GET /orders/{id} para visualizar detalhes de um order.
    • Criar endpoint PUT /orders/{id} para atualizar o status do order.
    • Criar endpoint POST /auth/login para autenticação de usuários com JWT.
  • JWT para Autenticaço:

    • Implementar autenticação com JWT nas rotas protegidas.
    • Adicionar middleware para verificar o token em rotas privadas.
    • Sistemas de ROLE para usuarios

4. Redis para Caching

  • Implementação de Cache:

    • Implementar caching para products mais vendidos.
    • Implementar cache para detalhes de orders e customers para melhorar a performance.
  • Configuração do Redis:

    • Configurar o Redis no projeto e integrá-lo com a aplicação.