API de aluguel de carros, desenvolvida durante o Ignite de NodeJS da Rocketseat.
$ yarn
Ou:
$ npm install
Foi instalado e configurado o
eslint
eprettier
para manter o código limpo e padronizado.
A aplicação usa dois banco de dados: Postgres e Redis. Para a configuração mais rápida é recomendado usar docker-compose, você só precisa fazer o up de todos os serviços:
$ docker-compose up -d
Responsável por armazenar os dados utilizados pelo middleware de rate limit. Se, por algum motivo, você quiser criar um contêiner Redis em vez de usar docker-compose
, poderá fazê-lo executando o seguinte comando:
$ docker run --name rentx-redis -d -p 6379:6379 redis:alpine
Responsável por armazenar todos os dados do aplicativo. Se por algum motivo você quiser criar um contêiner Postgres em vez de usar docker-compose
, poderá fazê-lo executando o seguinte comando:
$ docker run --name rentx-postgres -e POSTGRES_PASSWORD=docker -p 5432:5432 -d postgres
Em seguida no Postgres, crie dois bancos de dados:
rentx
erentx_test
(no caso de desejar executar os testes).
Lembre se de rodar a migrations:
$ yarn ts-node-dev ./node_modules/typeorm/cli.js migration:run
Ou:
$ yarn typeorm migration:run
Veja mais informações sobre TypeORM Migrations.
Neste arquivo, você deve configurar sua conexão do banco de dados Redis e Postgres, JWT, email, sentry, storage e configurações de AWS (caso seja necessário).
Renomeie o .env.example
no diretório raiz para .env
e então atualize com suas configurações.
O projeto vem pré-configurado, mas você pode ajustá-lo de acordo com suas necessidades.
src/shared/infra/http/middlewares/rateLimiter.ts
A lib
rate-limiter-flexible
foi usada para configurar os limites da API, para mais detalhes de configuração clique aqui.
Para iniciar a aplicação rode o comando abaixo.
$ yarn dev:server
Ou:
npm run dev:server
Usamos o Jest para fazer os testes, para executar:
$ yarn test
Ou:
$ npm run test
Você pode ver o coverage report dentro de coverage
. Ele é criado automaticamente após a execução dos testes.