Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jlenon7/carupi-test
🧪 Project developed in test for Carupi
https://github.com/jlenon7/carupi-test
Last synced: 9 days ago
JSON representation
🧪 Project developed in test for Carupi
- Host: GitHub
- URL: https://github.com/jlenon7/carupi-test
- Owner: jlenon7
- License: mit
- Created: 2021-02-23T20:09:43.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2021-02-25T12:51:20.000Z (almost 4 years ago)
- Last Synced: 2024-10-05T23:41:39.677Z (3 months ago)
- Language: TypeScript
- Homepage:
- Size: 170 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Carupi Test ðŸ§
> Project developed in test for Carupi
[![GitHub followers](https://img.shields.io/github/followers/jlenon7.svg?style=social&label=Follow&maxAge=2592000)](https://github.com/jlenon7?tab=followers)
[![GitHub stars](https://img.shields.io/github/stars/jlenon7/carupi-test.svg?style=social&label=Star&maxAge=2592000)](https://github.com/jlenon7/carupi-test/stargazers/)
Jubscleiton está lançando uma nova plataforma de vendas de `carros`. Nesta plataforma, desejamos realizar o cadastro de novos carros para os clientes consultarem.
## OBSERVAÇÃO
Essa API está rodando dentro de um servidor no Heroku apenas para ter um acesso mais simplificado ao `Swagger`. [Clique aqui para acessar!](https://carupi-test.herokuapp.com/api/swagger) PS: Aguarde o carregamento da página. Como está no plano free, o Heroku desliga a máquina automaticamente quando o servidor para de ser consumido, e só quando uma nova requisição chega que ele roda o servidor novamente, esse processo demora um pouco.
Não esqueça de criar o arquivo com as váriaveis de ambiente para rodar os testes ou modo development.
## ENDPOINTS
| METHOD | URI | NAME |
| --------- | ----------------------- | ----------------|
| GET | /api/v1/cars | cars.index |
| POST | /api/v1/cars | cars.store |
| GET | /api/v1/cars/:token | cars.show |
| PUT | /api/v1/cars/:token | cars.update |
| DELETE | /api/v1/cars/:token | cars.delete |JSON Example POST/PUT
```json
{
"brand": "Nissan",
"model": "Skyline",
"version": "R34",
"year": 1990,
"mileage": 0,
"gearboxType": "manual",
"price": 100000,
"status": "approved",
}
```### Query Search em cars.index
Listagem paginadas: `?offset=0&limit=10`
Listagem entre ano: `?since_year=2018&max_year=2021`
Listagem entre preços: `?since_price=200000&max_price=400000`
---
| METHOD | URI | NAME |
| --------- | -------------------- | ----------------|
| GET | /api/v1/auth/me | auth.me |
| POST | /api/v1/auth/login | auth.login |
| POST | /api/v1/auth/register| auth.register |JSON Example POST Register
```json
{
"name": "João Lenon",
"email": "[email protected]",
"password": "12345678",
"password_confirmation": "12345678",
}
```## COMANDOS
Instale as dependências
```bash
yarn
```Gere o arquivo .env
```bash
cp .env.example .env && cp .env.example .env.testing
```Para rodar os testes E2E e Unitários
```bash
yarn test
```Para rodar a aplicação em modo desenvolvimento
```bash
yarn start:dev
```## REQUISITOS
- [x] API RESTful
- [x] Pipeline CI
- [x] CRUD de Carros
- [x] Autenticação JWT
- [x] Adicionar Rate Limiter
- [x] Implementar testes E2E no Resource Auth
- [x] Implementar testes E2E no Resource Cars
- [x] Implementar teste unitário na camada de serviços
- [x] No filtro ser possÃvel pesquisar por cada atributo do carro e poder ter range de ano e preço
- [x] Criar Schema Cars com os seguintes atributos - brand, model, version, year, mileage, gearboxType & sellPrice.## INSTRUÇÕES
- Deve ser utilizado NodeJS e MongoDb
- Crie um README com orientações para a instalação.
- O projeto deve ser entregue através de um ou mais repositórios no github.---