Essa é versão dois do projeto Compass Lisa. Primeiramente, feito em JavaScript. Agora, refatorado para TypeScript.
A Compass entrou em um novo ramo de mercado, a Compass lisa um seguimento carros para alugar de luxo e semi luxo. Para isso, foi necessário o desenvolvilmento de uma API para ajudar com as atividades da empresa
- Sobre o Projeto
- Como usar a API ❓
- 👨💻 Rodando o Back End (servidor)
- 📝 Rotas do projeto
- 🚗 ROTAS DE CARROS
- 🧍♀️🧍 ROTAS DE PESSOAS
- 🏷 ROTA DE AUTENTICAÇÃO
- 👨💼 ROTA DE LOCADORA
- 🌐 Deploy
- 🛠 Tecnologias
Para usar esta API é preciso instalar as seguintes ferramentas:
Para editar o código eu recomendo:
Para testar as rotas você pode usar:
# Clone este repositório
git clone https://github.com/MathLopes1/compass-lisa-2.0.git
# Acesse a pasta do projeto
cd compass-lisa-2.0
# crie um arquivo .env seguindo o modelo do arquivo .env.exemplo e preencha os campos.
# Instale as dependências
npm i
# Faça o build da aplicação para JavaScript
npm rum build
# Execute a aplicação em modo de Produção
npm run start
# Execute a aplicação em modo de desenvolvimento
npm run dev
# Execute os testes
npm run test
# O servidor iniciará na porta: 3000
Rotas de carros:
localhost:3000/api/v1/car
Rotas de pessoas:
localhost:3000/api/v1/people
Rota de login:
localhost:3000/api/v1/authenticate
Rota de locadora:
localhost:3000/api/v1/rental
Para cadastrar carros.
POST -
localhost:3000/api/v1/car
Exemplo de body:
{
"modelo": "GM S10 2.8",
"cor": "branco",
"ano": "2021",
"acessorios": [
{ "descricao": "Ar-condicionado" },
{ "descricao": "Dir. Hidráulica" },
{ "descricao": "Cabine Dupla" },
{ "descricao": "Tração 4x4" },
{ "descricao": "4 portas" },
{ "descricao": "Diesel" },
{ "descricao": "Air bag" },
{ "descricao": "ABS" }
],
"quantidadePassageiros": 5
}
Para listar todos os carros.
GET -
localhost:3000/api/v1/car
Exemplo de query:
{
"modelo": "GM S10 2.8",
"cor": "branco",
"acessorio": "4 portas",
"ano": "2020",
"quantidadePassageiros": 5
}
Para atualizar um carro.
PUT -
localhost:3000/api/v1/car/:id
Exemplo de body:
{
"modelo": "GM S10 2.8",
"cor": "branco",
"acessorios": [
{ "descricao": "Ar-condicionado" },
{ "descricao": "Dir. Hidráulica" }
]
}
Para deletar um carro .
DELETE -
localhost:3000/api/v1/car/:id
Para Buscar um carro por id
GET -
localhost:3000/api/v1/car/:id
Exemplo de retorno:
{
"_id": "61f014ee47702afdee414f78",
"modelo": "GM S10 2.8",
"cor": "branco",
"ano": "2021",
"acessorios": [
{
"descricao": "Ar-condicionado"
},
{
"descricao": "Dir. Hidráulica"
},
{
"descricao": "Cabine Dupla"
},
{
"descricao": "Tração 4x4"
},
{
"descricao": "4 portas"
},
{
"descricao": "Diesel"
},
{
"descricao": "Air bag"
},
{
"descricao": "ABS"
}
],
"quantidadePassageiros": 5
}
Para atualizar um acessorio especifico .
PATCH -
localhost:3000/api/v1/car/:id/acessorios/:idAcessorio
Exemplo de body:
{
"descricao": "4 portas"
}
Para cadastrar uma pessoa.
POST -
localhost:3000/api/v1/people
Exemplo de body:
{
"nome": "joaozinho ciclano",
"cpf": "131.147.860-49",
"data_nascimento": "03/03/2021",
"email": "[email protected]",
"senha": "123456",
"habilitado": "sim"
}
Para listar todas as pessoas.
GET -
localhost:3000/api/v1/people
- Todos os campos podem ser usados em buscas por query.
Para atualizar um registro de pessoa.
PUT -
localhost:3000/api/v1/people/:id
Exemplo de body:
{
"nome": "matheus lopes",
"habilitado": "não"
}
Para deletar um registro de pessoa.
DELETE -
localhost:3000/api/v1/people/:id
Para buscar uma pessoa por id.
GET -
localhost:3000/api/v1/people/:id
Exemplo de retorno:
{
"_id": "61f2b8c5bee11d93722be472",
"nome": "joaozinho ciclano",
"cpf": "131.147.860-49",
"data_nascimento": "03/03/2000",
"email": "[email protected]",
"senha": "123456",
"habilitado": "sim"
}
Fazer autenticação e receber um token JWT.
POST -
localhost:3000/api/v1/authenticate
Exemplo de body:
{
"email": "[email protected]",
"senha": "123456"
}
Para cadastrar uma locadora.
POST -
localhost:3000/api/v1/rental
Exemplo de body:
{
"nome": "Localiza Rent a Car",
"cnpj": "16.670.085/0001-55",
"atividades": "Aluguel de Carros E Gestão de Frotas",
"endereco": [
{
"cep": "96200-200",
"number":"1234",
"isFilial": false
},
{
"cep": "96200-500",
"number":"5678",
"complemento": "Muro A",
"isFilial": true
}
]
}
Para listar todas as locadoras.
GET -
localhost:3000/api/v1/rental
- Todos os campos podem ser usados em buscas por query.
Para atualizar um registro de locadora.
PUT -
localhost:3000/api/v1/rental/:id
- Todos os campos podem ser atualizados
Para deletar um registro de locadora.
DELETE -
localhost:3000/api/v1/rental/:id
Para buscar uma locadora por id.
GET -
localhost:3000/api/v1/rental/:id
Exemplo de retorno:
{
"_id": "620fc4febd69c4741992d016",
"nome": "Locadora de carros",
"cnpj": "16.670.985/5501-55",
"atividades": "Aluguel de Carros E Gestão de Frotas",
"endereco": [
{
"cep": "52031-210",
"number": "17",
"isFilial": false,
"logradouro": "Rua Ledinha",
"bairro": "Campo Grande",
"localidade": "Recife",
"uf": "PE",
"_id": "620fc4febd69c4741992d017"
},
{
"cep": "96200-200",
"number": "5258",
"isFilial": true,
"logradouro": "Rua General Canabarro",
"bairro": "Centro",
"localidade": "Rio Grande",
"uf": "RS",
"_id": "620fc4febd69c4741992d018"
}
],
}
O deploy foi feito utilizando o heroku para a hospedagem da aplicação.
As seguintes ferramentas foram usadas na construção do projeto:
Esse repositório está licenciado pela MIT LICENSE. Para mais informações detalhadas, leia o arquivo LICENSE contido nesse repositório.