Backend da aplicação Rentx
Features | Pré-Requisitos | Backend | Bibliotecas | Lincença
O Rentx é uma aplicação para aluguel de veículos. Os usuários da aplicação, podem alugar carros por um determinado tempo. Já os usuários adminstradores, podem cadastrar novos veículos, categorias e especificações dos carros.
- Criação de Aluguel
- Devolução de Veículos
- Listagem de Alugueis ativos por usuário
- Criação de carros
- Criação de especificações dos carros
- Criação de Categorias e importação de categorias
- Listagem de carros disponíveis para aluguel
- Upload de images dos carros
- Autenticação
- Criação de Perfil
- Listagem do Perfil
- Refresh Token
- Reset de Senhas
- Atualização do Avatar
- Cache
- Redis
- ORM
- Typeorm
- Documentação
- Swagger
- Logs
- Sentry
- Upload de Imagens
- Amazon S3
- Disk Storage
- Envio de Emails
- Amazon SES
- Ethereal
Antes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas: Git, Node.js e/ou Yarn Também, será necessário ter o Docker instalado e configurado em sua máquina. Além disto é bom ter um editor para trabalhar com o código como VSCode
# Clone este repositório
$ git clone https://github.com/gabriel-nt/rentx-api
# Subir o docker-compose
$ docker-compose up
# Instale as dependências
$ npm install ou yarn
# Rode as migrations
$ yarn typeorm migration:run
# Execute a aplicação em modo de desenvolvimento
$ yarn dev:server ou npm run dev
# Execute os testes
$ yarn test
# Execute os testes com Coverage
$ yarn test --coverage
# O servidor inciará na porta:3333 - acesse <http://localhost:3333>
- Obs: Para executar os backend, crie um banco de dados.
Para ter um exemplo das rotas para a nossa API, basta clicar no link abaixo:
Esse projeto foi desenvolvido com as seguintes tecnologias:
- NodeJS
- TypeScript
- Postgres
- Redis
Esse projeto foi desenvolvido com o auxílio das seguintes libs:
- Express
- Jest
- TypeORM
- aws-sdk
- jwt
- dayjs
- multer
- swagger-ui-express
- nodemailer
- tsyringe
- handlebars
Para uma melhorar estrutura de projetos utilizamos das seguintes fundamentos:
- DDD
- TDD
- SOLID
Para padronizar a escrita do código, utilizamos as seguinte ferramentas:
- Eslint
- Prettier
- EditorConfig
Esse projeto está sob a licença MIT.
Feito por Gabriel Teixeira