Skip to content

AppMorada/MoradaApp.registryApi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Morada App - API

Sobre

Esta é uma API feita em NestJS e projetada para atender os serviços do projeto Morada APP. Sendo assim, buscamos facilitar a vida dos moradores de condomínio e dos desenvolvedores responsáveis por integrar nosso código em seus sistemas.

Adiante, nossos servidores back-end devem contar com as seguintes dependências e ferramentas para que esteja em perfeito funcionamento:

  1. Mailtrap: em ambiente de desenvolvimento, usamos o Mailtrap para realizar o envio de emails dentro da plataforma;
  2. Postgres: banco de dados SQL do projeto;
  3. PNPM: para gerenciar nossas dependências estamos usando o Performant Node Package Manager (PNPM). Por quê? A resposta é simples, o pnpm é capaz de gerar links simbólicos de cada dependência utilizada no projeto, como consequência, o mesmo é capaz de reutilizar as bibliotecas que já existem em uma máquina, reduzindo de maneira significativa o espaço consumido pelo nosso sistema;
  4. Docker: o Docker é uma plataforma de virtualização de contêineres que permite isolar e empacotar aplicativos e seus ambientes de execução em contêineres, facilitando a preparação do ambiente do sistema e viabilizando o deploy da aplicação em inúmeras provedoras de nuvem. Sendo assim, basta executar os comandos que serão passados logo mais, e você já será capaz de possuir todos os servidores prontos para execução rapidamente. Matando assim, a necessidade de se passar horas na frente do computador configurando serviço a serviço para rodar na sua máquina;
  5. Docker Compose: é um orquestrador de contêineres do Docker, responsável por manter o sistema funcionando em conjunto, podendo configurar redes internas, mapear as portas de cada serviço e entre outras inúmeras funcionalidades essenciais;
  6. Zipkin: é um servidor dedicado a monitorar a perfomance da aplicação em ambiente de desenvolvimento por meio de traces, atuando na RegistryApi em conjunto com o OpenTelemetry

Preparação

Como usar

Primeiramente, clone o .env.example para '.env' e preencha as variáveis com os seus respectivos valores.

Feito isso, você pode optar por utilizar o sistema otimizado para a execução local com o docker-compose.yml que está dentro do diretório /example ou então clonar o /docker-compose.example.yml para usar o back-end em ambiente dedicado ao desenvolvimento do ponto de vista de um programador back-end:

docker compose -f <docker compose de sua preferência> up

Feito isso, se você tiver optado por utilizar o diretório /example, o tutorial acaba aqui. No entanto, se estiver usando o outro ambiente, adentre na aplicação usando o bash para entrar na instância app (o contêiner em NodeJS + NestJS):

docker compose exec app bash

Agora instale as dependências do sistema com:

pnpm install

Dentro do contêiner, execute as migrations do TypeOrm:

pnpm migrate:run

Se a instalação ocorreu com êxito, abra outro terminal e FORA DO CONTÊINER execute o comando abaixo. Por quê? Ele vai definir os hooks do git necessários para que você consiga automatizar processos de lint, formatação e testes locais toda vez que fazer commit:

pnpm set-hooks

Não esqueça de conferir se os hooks do husky estão realmente ativos com git config core.hookspath, o resultado deve ser .husky.

Documentação

Artefato Descrição Link
Contrato Contrato baseado no swagger para documentar os endpoints da aplicação Arquivo markdown
Diagrama de entidades Documento referente as entidades e seus respectivos relacionamentos Arquivo markdown
Diagram de infraestrutura Documento referente a infraestrutura do módulo Arquivo markdown
Componentes do sistema Documento dedicado a indicar as relações dos componentes internos, como classes e funções dentro do módulo Site