CauaMatheus / Rent-X

API Rest para locadora de carro usando arquitetura S.O.L.I.D, Docker, Docker-compose, Postgres, Envio de imagem, Import de aquivos CSV e documentação Swagger. Deploy AWS e CI/CD.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

RentX

Rent-X é uma aplicação para uma locadora de carros, com documentação Swagger, arquitetura S.O.L.I.D e com o deploy automatizado (CI/CD) na AWS


Diagrama da aplicação


Diagrama


Tecnologias

  • Sentry - Monitoramento da instância AWS
  • Github Actions - Deploy automatizado
  • AWS - Serviço utilizado para o deploy, envio de e-mail e armazenamento de imagens em produção
  • Docker - Containers isolados
  • Babel - Transcompilador
  • Handlebars - Responsável pela view do e-mail
  • JWT Auth - Autenticação
  • Multer - Processamento de arquivos
  • Node Mailer - Envio de e-mail
  • Rate Limiter - Rate Limiter que impede ataques DDOS
  • Swagger - Documentação interativa com a API
  • Jest - Testes automatizados
  • Typeorm - ORM para que futuras mudanças de banco não afete o código

Documentação Swagger

Está api contém uma documentação interativa com Swagger. Se quiser testar métodos admin, deverá testar em sua máquina.

Aqui vai um exemplo de como está a documentação

Exemplo da documentação

Como usar ?

  #Clone o repositório e entre nele
  git clone https://github.com/CauaMatheus/Rent-X.git
  cd Rent-X
  #Instale as dependências
  yarn

Após isso, você deve renomear o arquivo .env.example para .env e configurar com as suas credenciais

Renomeie também o arquivo ormconfig.example.json para ormconfig.json e altere os valores para o desejado. Caso alterar, não esqueça de alterar as mesmas configurações no docker-compose.yml

  #Rode o container
  docker-compose up -d
  #Rode as migrations e após isso, estará apto para testar a aplicação
  yarn typeorm migration:run
  yarn dev

About

API Rest para locadora de carro usando arquitetura S.O.L.I.D, Docker, Docker-compose, Postgres, Envio de imagem, Import de aquivos CSV e documentação Swagger. Deploy AWS e CI/CD.


Languages

Language:TypeScript 98.5%Language:Handlebars 0.5%Language:JavaScript 0.5%Language:Shell 0.4%Language:Dockerfile 0.1%