Skip to content

Rentx é uma API desenvolvida durante a Ignite de NodeJS

Notifications You must be signed in to change notification settings

gabriel-nt/rentx-api

Repository files navigation

Rentx

🚀 Rentx

Backend da aplicação Rentx

Features   |    Pré-Requisitos   |    Backend   |    Bibliotecas   |    Lincença

🚧 Finalizado 🚧

📌 Sobre

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.

📖 Documentação

Documentation

📎 Features

Aluguel

  • Criação de Aluguel
  • Devolução de Veículos
  • Listagem de Alugueis ativos por usuário

Carros

  • 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

Usuários

  • Autenticação
  • Criação de Perfil
  • Listagem do Perfil
  • Refresh Token
  • Reset de Senhas
  • Atualização do Avatar

Gerais

  • Cache
    • Redis
  • ORM
    • Typeorm
  • Documentação
    • Swagger
  • Logs
    • Sentry
  • Upload de Imagens
    • Amazon S3
    • Disk Storage
  • Envio de Emails
    • Amazon SES
    • Ethereal

⚙ Pré-requisitos

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

🛢 Configurando Docker

# Clone este repositório
$ git clone https://github.com/gabriel-nt/rentx-api

# Subir o docker-compose
$ docker-compose up

🎲 Rodando o Back End (servidor)

# 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.

🧾 Insomnia

Para ter um exemplo das rotas para a nossa API, basta clicar no link abaixo:
Run in Insomnia

🚀 Tecnologias

Esse projeto foi desenvolvido com as seguintes tecnologias:

  • NodeJS
  • TypeScript
  • Postgres
  • Redis

📕 Bibliotecas

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

📙 Arquitetura do Projeto

Para uma melhorar estrutura de projetos utilizamos das seguintes fundamentos:

  • DDD
  • TDD
  • SOLID

📘 Padrão de Código

Para padronizar a escrita do código, utilizamos as seguinte ferramentas:

  • Eslint
  • Prettier
  • EditorConfig

📝 Licença

Esse projeto está sob a licença MIT.


Feito por Gabriel Teixeira

Releases

No releases published

Packages

No packages published

Languages