Skip to content

josecavalcanti0521/Desafio_4_Microservices

Repository files navigation

Desafio 4 - Desafio Prático em Grupo: "API de Otimização de Rotas Distribuída em Microservices e Deployment em EC2"

Arquitetura do projeto

Arquitetura Microserviços

Estrutura do Projeto

├── node_modules/
├── apps/
├── test/
├── libs/
├── docs/
├── .dockerignore
├── .env.example
├── .gitignore
├── .prettierrc
├── docker-compose.yaml
├── eslint.config.mjs
├── nest-cli.json
├── package.json
├── README.md
├── tsconfig.build.json
├── tsconfig.json

Configuração do Ambiente

Pré-requisitos

Instalação

  1. Clone o repositório:
$ git clone https://github.com/seu-usuario/seu-repositorio.git
$ cd seu-repositorio
  1. Instaler as dependências
$ npm install
  1. Inicie o ambiente Docker:
$ docker compose up -d

Variáveis da Coleção Postman

1. Variáveis de Configuração (Inserção Manual)

As seguintes variáveis devem ser inseridas e mantidas manualmente no ambiente ou na coleção, sendo usadas para definir a conectividade e os endpoints dos serviços.

Variável Valor Padrão/Exemplo Descrição
URL http://localhost ou IP da aws A URL base do host do serviço.
API-GATEWAY_PORT 3000 Porta do serviço API Gateway.
USERS_PORT 3001 Porta do microsserviço de Usuários.
USERS_PREFIX /users Prefixo de rota para o microsserviço de Usuários.
AUTH_PORT 3002 Porta do microsserviço de Autenticação.
AUTH_PREFIX /auth Prefixo de rota para o microsserviço de Autenticação.
PONTOS_PORT 3003 Porta do microsserviço de Pontos.
PONTOS_PREFIX /pontos Prefixo de rota para o microsserviço de Pontos.
ROTA_PORT 3004 Porta do microsserviço de rotas de entrega.
ROTA_PREFIX /rota Prefixo de rota para o microsserviço de rotas de entrega.

2. Variáveis de Contexto (Definidas por Requisição)

Os valores destas variáveis são inseridos automaticamente por scripts de Teste do Postman, geralmente após uma requisição de sucesso (ex: login ou criação de recurso).

  • TOKEN
    • Uso: Armazena o token de autenticação (JWT).
  • USER_ID
    • Uso: Armazena o ID do usuário criado.
  • POINTS_ID
    • Uso: Armazena o ID dos pontos de entrega criados.
  • ROUTE_ID
    • Uso: Armazena o ID da primeira rota de entrega quando busca o histórico.

Rodar testes

# Testes unitários
$ npm run test

# Testes e2e
$ npm run test:e2e

# Cobertura de testes
$ npm run test:cov

Como Contribuir

Fluxo de Trabalho

  1. Faça o git clone do projeto localmente
  2. Crie uma branch para sua feature ou correção:
git checkout -b feature/nome-da-feature
  1. Faça suas alterações seguindo as convenções do projeto
  2. Adicione e commit suas alterações (seguindo as convenções de commit)
  3. Faça a push para sua branch:
git push origin feature/nome-da-feature
  1. Abra um Pull Request para a branch dev do projeto

Convenções de Commit

Usamos o padrão Conventional Commits para mensagens de commit. Todos os commits devem seguir este formato:

<tipo>[escopo opcional]: <descrição>

[corpo opcional]

[rodapé(s) opcional(is)]

Tipos de Commit

  • feat: Uma nova funcionalidade
  • fix: Correção de bug
  • docs: Alterações na documentação
  • style: Mudanças que não afetam o código (formatação, espaços em branco, etc)
  • refactor: Refatoração de código que não corrige um bug nem adiciona uma feature
  • perf: Melhorias de performance
  • test: Adição ou correção de testes
  • build: Mudanças que afetam o sistema de build ou dependências externas
  • ci: Mudanças em arquivos de configuração de CI
  • chore: Outras mudanças que não modificam src ou test

Exemplos

feat(auth): JWT authentication implementation

Add authentication system using JWT with token expiration

Padrões de Código

  • Utilize TypeScript para todo o código
  • Escreva testes para todas as novas funcionalidades
  • Use injeção de dependência conforme o padrão do NestJS

Branches

  • main: Branch principal do projeto, sempre estável
  • dev: Branch de desenvolvimento, onde as features são integradas

Colaboradores

Este projeto está sendo desenvolvido por:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors