Coder Social home page Coder Social logo

appmorada / moradaapp.registryapi Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 3.36 MB

Api em NestJS dedicada a organização do MoradaApp

Home Page: https://appmorada.github.io/MoradaApp.registryApi/docs/compodoc/

JavaScript 0.26% Dockerfile 0.17% TypeScript 99.09% Shell 0.47%
api backend nestjs nodejs soujunior-labs docker docker-compose

moradaapp.registryapi's Introduction

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

  • Docker

    1. Linux
    2. Windows
  • Docker Compose

    1. Linux
    2. Windows
  • PNPM: execute npm i pnpm -g

  • Mailtrap:

    1. Crie uma conta na plataforma por aqui.
    2. Acesse o menu da lateral a esquerda
    3. Entre em Email Testing > Inboxes > [Seu usuário]
    4. Copie e cole o arquivo .env.example em .env
    5. Ao lado direito, na opção 'Integrations', troque para o nodemailer
    6. Copie e cole as credenciais no .env para visualizar os dados
    7. Insira em HOST_SENDER o valor 'sandbox.smtp.mailtrap.io'
    8. Insira em HOST_PORT_SENDER o valor 2525
    9. Coloque qualquer nome em NAME_SENDER
    10. Insira auth.user em EMAIL_SENDER
    11. Insira auth.pass em PASS_SENDER

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

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

pnpm migrate:run

Agora, realize o login na sua conta do firebase DENTRO DO CONTÊINER:

firebase login --no-localhost

Logo em seguida, instale os emuladores requisitados para um bom funcionamento da aplicação:

firebase init emulators

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

Pronto, agora execute somente pnpm commit sempre que quiser salvar suas alterações no repositório. No mais, basta verificar quais comandos estão disponíveis dentro do package.json.

moradaapp.registryapi's People

Contributors

nicolascbv avatar dependabot[bot] avatar

Watchers

 avatar

moradaapp.registryapi's Issues

Foto dos usuários

Precisamos incrementar a foto dos usuários ao decorrer do desenvolvimento.

[BUG] Erro 500 ao enviar requisição com problema

Descreva o bug
Recebi status code 500 ao enviar para o servidor uma requisição com uma aspas dupla extra

Como reproduzir
Passos para detectar o bug:

  1. No postman envie um requisição do tipo post para "/login" na api
  2. Preencha o corpo da requisição com:
    {
    "email": "[email protected]",
    "password": "123456789Ab@"
    "
    }
  3. Receba o erro: {"statusCode":500,"message":"Erro interno do servidor"}

Comportamento esperado
Esperava-se um erro da família 400*

Prints
image

Informações do hardware:

  • OS: Windows
  • Navegador: N/A
  • Versão: 11

Criar autenticação de dois fatores

Por hora a aplicação não possuirá uma autenticação de dois fatores. No entanto, por questões de segurança, devemos adicionar isto futuramente.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.