Um projeto do bootcamp Ignite - Trilha Node.js
Sobre o Projeto | Como Usar | Importante!
RentX é um projeto que está sendo desenvolvido nas aulas do bootcamp de Node.js da Rocketseat.
O objetivo deste projeto é de construir uma API completa para aluguéis de carros, daí a origem do nome RentX.
Resumidamente, este projeto possibilita o gerenciamento completo de usuários, carros e aluguéis.
A construção do RentX tem como objetivo também aprender conceitos avançados de uma API e conhecer ferramentas e tecnologias para construir aplicações robustas, flexíveis e escaláveis com o uso do Node.js. E, para garantir a integralidade do código, está sendo utilizada a linguagem Typescript.
Este projeto está sendo desenvolvido aos poucos. A cada avanço nos módulos do treinamento é proposto um novo desafio para aumentar a complexidade e funcionalidades desta aplicação.
A documentação da API deste projeto está sendo construída com o Swagger e encontra-se na rota: http://localhost:3333/api-docs/
- Typescript
- Node.js
- Express
- Postgres
- TypeORM
- TSyringe
- Autenticação com JWT
- BCrypt.js
- Multer
- ...
1 - Para executar esta aplicação, você precisará ter instalado no seu computador:
- Git
- Node.js
- Yarn
- Docker com Docker Compose
- Postgres
- Postbird ou Beekeeper
- Insomnia
2 - Para rodar a aplicação, realize cada uma das etapas abaixo no terminal:
# Clone esse repositório:
$ git clone https://github.com/brunohsweber/rentx
# Entre no repositório:
$ cd rentx
# Instale as dependências:
$ yarn
# Instancie o Docker com Docker-Compose para subir o container e iniciar a aplicação:
$ docker-compose up
# Para rodar as migrations:
$ yarn typeorm migration:run
# Para popular o usuário admin no banco de dados:
$ yarn seed:admin
# Para rodar os testes automatizados:
$ yarn test
# Para verificar a documentação que está em construção, acesse no navegador:
http://localhost:3333/api-docs/
Para acessar as rotas já configuradas pelo Insomnia, é possível importar o arquivo JSON: Clique aqui para fazer o download do arquivo JSON
Este projeto ainda está em desenvolvimento e novas features serão lançadas nas próximas semanas.
Feito com ♥ por Bruno Weber 👋