To start the project you need to run docker compose up -d
it will pull the images if not exists and spin up the containers.
docker compose up -d
If this is the first time make sure you create the database and tables
username: root password: root
docker compose exec db /bin/bash
mysql -u root -p
create database oscar;
to create the tables
docker compose exec app ./src/bin/install.php
You can check the code against the PSR-12 coding standard by running
docker compose exec app composer autofix
docker compose exec app composer test-coverage
http://localhost:3000/
docker compose exec app ./src/bin/import.php src/bin/source-1.csv
docker compose exec app ./src/bin/import.php src/bin/source-2.json
docker compose exec app ./src/bin/import.php src/bin/source-3.json
base url http://localhost:8000
type | url | description |
---|---|---|
GET | /api/cars | Get list of cars |
GET | /api/cars/location?query=[term] | Get list of cars by location |
GET | /api/cars/year?query=[term] | Get list of cars by year |
POST | /api/cars | Create new car |
GET /api/cars
{
"total": 10
"items": [{
"id": 3,
"year": 2017,
"location": "Calahonda",
"fuelType": "Petrol",
"model": "i10",
"doors": 5,
"transmission": "Manual",
"seats": 5,
"brand": "Hyundai",
"type": "Small car",
"typeGroup": "Car",
"details": {
"Inside width": null,
"Inside height": null,
"Inside length": null,
"License plate": "0186 KDN"
}
},...]
}
POST /api/cars
Field | description |
---|---|
Car km | required, string |
Car year | required, string |
Location | required, string |
Fuel type | required, string, allow null |
Car Model | required, string |
Number of doors | required, int, greather than 0 |
Transmission | required, string, allow null |
Number of seats | required, int, greather than 0 |
Car Brand | required, string |
Car Type Group | optional, string, allow null |
Car Type | optional, string, allow null |
Details | optional, array, allow null [ 'Inside height', 'Inside length', 'Inside width', 'License plate'] |
Created 201
{
}
Error 422
{ "error": "The field doors should be greather than 0" }
docker compose exec db /bin/bash
docker compose exec nginx sh
docker compose exec app /bin/bash