Microsserviço de Catálogo de Produtos e Categorias do Sistema de Gestão de Restaurantes (RMS) desenvolvido pelo grupo "BOPE" G03 da turma 4SOAT para o Tech Challenge da Pós Tech em Software Architecture da FIAP.
- Baixe e instale o Node.js em https://nodejs.org/en/download
- Instale o CLI do NestJS através do comando
npm i -g @nestjs/cli
- Navegue até a pasta raiz do projeto usando o Terminal;
- Faça uma cópia do arquivo
.env.template
com o nome.env
e preencha as variáveis de ambiente dentro dele; - Execute o comando
npm install
para instalar os pacotes npm; - Use o comando
npm run start
para iniciar a aplicação. - Execute o comando
docker-compose up -d db-catalogo
para iniciar o container do banco de dados; - Acesse o Swagger em http://localhost:3000/swagger/
Como executar a aplicação usando o Docker Compose?
- Clone este repositório;
- Navegue até a pasta raiz do projeto usando o Terminal;
- Faça uma cópia do arquivo
.env.template
com o nome.env
e preencha as variáveis de ambiente dentro dele; - Execute o comando
docker-compose up
- Acesse o Swagger em http://localhost:3000/swagger/
Como executar a aplicação usando o Kubernetes do Docker Desktop?
- Clone este repositório;
- Navegue até a pasta raiz do projeto usando o Terminal;
- Use o comando
docker build -t rms-api-catalogo:latest .
para gerar a imagem de container da aplicação; - Use o comando
kubectl apply -f k8s/development/postgres/namespace.yaml -f k8s/development/postgres/pvc-pv.yaml -f k8s/development/postgres/config.yaml -f k8s/development/postgres/secrets.yaml -f k8s/development/postgres/deployment.yaml -f k8s/development/postgres/service.yaml
para fazer deploy do banco de dados; - Use o comando
kubectl apply -f k8s/development/bff/namespace.yaml -f k8s/development/bff/config.yaml -f k8s/development/bff/secrets.yaml -f k8s/development/bff/deployment.yaml -f k8s/development/bff/service.yaml -f k8s/development/bff/hpa.yaml
para fazer deploy da aplicação; - Acesse o Swagger em http://localhost:3000/swagger/
Para remover a aplicação do Kubernetes, use o comando
kubectl delete namespace rms
Em seu ambiente de desenvolvimento, por questão de segurança, abra os arquivos /k8s/development/postgres/secrets.yaml
e /k8s/development/bff/secrets.yaml
na pasta /k8s/development
e preencha os valores sensíveis manualmente.
No ambiente de produção os Secrets do Kubernetes são gerenciados pelo AWS Secrets Manager.
Para mais informações visite a página Boas práticas para secrets do Kubernetes.
Você pode conectar-se a instância de banco de dados PostgreSQL usando o pgAdmin, o terminal através do psql, ou qualquer outra IDE ou ferramenta compatível.
Quais são os parâmetros da conexão e credenciais para acesso ao banco de dados PostgreSQL?
Host: localhost
Porta: 5432 (padrão)
Usuário: pguser
Senha: pgpwd
DB name: rms
A documentação do projeto está disponível no GitHub Wiki.
Architectural Pattern: Clean Architecture + Screaming Architecture
Para contribuir com o projeto consulte o guia em CONTRIBUTING.md
$ npm install
# development
$ npm run start
# watch mode
$ npm run start:dev
# production mode
$ npm run start:prod
# unit tests
$ npm run test
# e2e tests
$ npm run test:e2e
# test coverage
$ npm run test:cov
API de Pedidos
https://github.com/Grupo-G03-4SOAT-FIAP/rms-api-pedidos
Infrastructure as code (IaC) com Terraform
https://github.com/Grupo-G03-4SOAT-FIAP/rms-iac
Node.js v20.12.0 (LTS), Docker Desktop 24.0.6 e Kubernetes v1.28