

O projeto consiste em uma API para alugueis de automóveis, ela vem para solucionar os problemas que muitos estacionamentos enfrentam sem uma aplicação no dia a dia para fazer o gerenciamento dos seus serviços de alugueis, ou seja, a solução visa ajudar tanto o usuário final como também os donos de estacionamento, por que o usuário final tem mais praticidade para acertar seu aluguel.
A nossa documentação está disponível para ser consultada em http://54.94.165.2/api-docs
Esse projeto foi desenvolvido com as seguintes tecnologias:
- TypeScript – TypeScript extends JavaScript by adding types to the language.
- Node.js – A JavaScript runtime built on Chrome’s V8 JavaScript engine.
- ExpressJS – Express is a minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications.
- TypeORM – TypeORM is an ORM that can run in NodeJS, Browser, Cordova, PhoneGap, Ionic, React Native, NativeScript, Expo, and Electron platforms and can be used with TypeScript and JavaScript (ES5, ES6, ES7, ES8).
- PostgreSQL – The World’s Most Advanced Open Source Relational Database
- Jest – Jest is a JavaScript testing framework designed to ensure correctness of any JavaScript codebase.
- Docker – Developers Love Docker. Businesses Trust It.
- BABEL – BABEL The compiler for next generation JavaScript
- ESLint – ESLint is a static code analysis tool for identifying problematic patterns found in JavaScript code.
- Prettier – Prettier is an opinionated code formatter with support for JavaScript, TypeScript, JSON, GraphQL…
- AWS – Amazon Web Services (AWS) is a subsidiary of Amazon providing on-demand cloud computing platforms and APIs to individuals, companies, and governments,
As funcionalidades desta API são
- Cadastro do usuário ✅
- Autenticação do usuário ✅
- Perfil de usuário ✅
- Alterar imagem do perfil ✅
- Recuperação de senha do usuário ✅
- Cadastrar carro ✅
- Listar carros disponíveis ✅
- Cadastrar especificação do carro ✅
- Alterar imagens do carro ✅
- Cadastrar especificação ✅
- Listar todas as especificações ✅
- Importar categorias por planilha (.csv) ✅
- Cadastrar categoria ✅
- Listar todas as categorias ✅
- Consultar uma categoria ✅
- Alterar uma categoria ✅
- Excluir uma categoria ✅
- Cadastrar um aluguel ✅
- Devolver um carro alugado ✅
- Listar alugueis do usuário ✅
Essas instruções permitirão que você obtenha uma cópia do projeto em operação na sua máquina local para fins de desenvolvimento e teste.
- Node.js
- Docker
- O projeto pode ser executado com Docker, para isso você deve ter ele em sua maquina local para executar o projeto e caso você queria instalar o Docker para Ubuntu/Windows vou deixar dois links abaixo;
- https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-20-04
- https://docs.docker.com/desktop/windows/install/
- Clone este repositório com comando
git clone https://github.com/macmiller87/API_Ignite_Rentx- Acesse a pasta do projeto
cd API_Ignite_Rentx- Instale as dependências do projeto com (yarn ou npm) nesse exemplo estou usando yarn
yarn- Após a instalação das dependências você deve renomear os arquivos
.env.examplepara.enve.env.examplepara.env.productionque se encontram na raiz do projeto. - Caso você ainda não tenha criado a base de dados, basta executar esse comando no seu SGDB:
CREATE DATABASE rentx;- Dentro do arquivo
.envvocê coloca as informações do seu banco de dados.
# Exemplo
DB_USERNAME="user" # nome de usuário do banco de dados
DB_PASSWORD="password" # senha de usuário do banco de dados
DB_NAME="rentx" # mantenha esse nome caso tenha executado o primeiro comando, caso contrario altere pelo nome escolhido.- Feito as modificações anteriores, vamos agora executar o comando que roda as nossas migrations.
yarn typeorm migration:run
- Em produção você vai precisar alterar o arquivo
.env.exemplo, coloque suas informações e após você deve executar o comando para iniciar API em modo de produção.
yarn build- Iniciar a API em modo de desenvolvimento:
yarn devPronto agora API estará rodando e pode ser acessado em http://localhost:8080
- Instale as dependências do projeto com (yarn ou npm) nesse exemplo estou usando yarn
yarn- Após a instalação das dependências você deve renomear os arquivos
.env.examplopara.enve.env.production.exemplopara.envque se encontram na raiz do projeto. - Copie as informações abaixo para o arquivo
.env.
DB_USERNAME="docker"
DB_PASSWORD="ignite"
DB_NAME="rentx"- Agora vamos subir o container do projeto utilizando o comando abaixo:
docker-compose up -d- Após subir o container você pode observar os logs da aplicação:
docker logs API_Ignite_Rentx -fPronto agora API estará rodando com Docker e já pode ser acessado em http://localhost:8080
- Primeiramente para você conseguir rodar os testes sem problemas, você deve criar um banco de dados para realizar os teste
CREATE DATABASE rentx_test;- Em seguida você vai precisar configurar com as suas informações o arquivo de ambiente de testes
.env - Tendo feito tudo agora vamos rodar os testes da aplicação e pronto você já tem os seus testes configurado.
yarn test
A contribuição para projetos open-sources são sempre bem-vindas!
- Faça um fork desse repositório;
- Cria uma branch com a sua feature:
git checkout -b minha-feature; - Faça commit das suas alterações:
git commit -m '✨ feat(minha-feature): Minha nova feature'; - Faça push para a sua branch:
git push origin minha-feature.
Depois que o merge da sua pull request for feito, você pode deletar a sua branch.
Este projeto está sob a licença MIT – veja o arquivo LICENSE.md para detalhes.

Leave a Reply