From 9e00c10b9cafa7317675031b14984c4a08e0adab Mon Sep 17 00:00:00 2001 From: Floriansylvain Date: Tue, 16 Dec 2025 19:47:13 +0100 Subject: [PATCH] Initial Commit --- .vscode/settings.json | 1 + Technical Assessment.pdf | Bin 0 -> 70029 bytes assessment/.gitignore | 1 + assessment/credentials/credentials.json | 3 + .../customs/clienta/modules/cars/ajax.php | 1 + .../customs/clientb/modules/cars/ajax.php | 1 + .../customs/clientc/modules/cars/ajax.php | 1 + assessment/data/cars.json | 122 ++++++++++++++++++ assessment/data/garages.json | 32 +++++ assessment/index.php | 11 ++ 10 files changed, 173 insertions(+) create mode 100644 .vscode/settings.json create mode 100644 Technical Assessment.pdf create mode 100644 assessment/.gitignore create mode 100644 assessment/credentials/credentials.json create mode 100644 assessment/customs/clienta/modules/cars/ajax.php create mode 100644 assessment/customs/clientb/modules/cars/ajax.php create mode 100644 assessment/customs/clientc/modules/cars/ajax.php create mode 100644 assessment/data/cars.json create mode 100644 assessment/data/garages.json create mode 100644 assessment/index.php diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/Technical Assessment.pdf b/Technical Assessment.pdf new file mode 100644 index 0000000000000000000000000000000000000000..af10b08f4d927bdb764900b5abf75cfead1a09b6 GIT binary patch literal 70029 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 PIFbW{mR49s1mph#-8w)0 literal 0 HcmV?d00001 diff --git a/assessment/.gitignore b/assessment/.gitignore new file mode 100644 index 0000000..600d2d3 --- /dev/null +++ b/assessment/.gitignore @@ -0,0 +1 @@ +.vscode \ No newline at end of file diff --git a/assessment/credentials/credentials.json b/assessment/credentials/credentials.json new file mode 100644 index 0000000..a8efe35 --- /dev/null +++ b/assessment/credentials/credentials.json @@ -0,0 +1,3 @@ +{ + "api_key" : "8ac2ee4a7b38ff178fe92d7aa3f8b248" +} \ No newline at end of file diff --git a/assessment/customs/clienta/modules/cars/ajax.php b/assessment/customs/clienta/modules/cars/ajax.php new file mode 100644 index 0000000..dafe110 --- /dev/null +++ b/assessment/customs/clienta/modules/cars/ajax.php @@ -0,0 +1 @@ +

Voitures Client A

\ No newline at end of file diff --git a/assessment/customs/clientb/modules/cars/ajax.php b/assessment/customs/clientb/modules/cars/ajax.php new file mode 100644 index 0000000..6acf9c1 --- /dev/null +++ b/assessment/customs/clientb/modules/cars/ajax.php @@ -0,0 +1 @@ +

Voitures Client B

\ No newline at end of file diff --git a/assessment/customs/clientc/modules/cars/ajax.php b/assessment/customs/clientc/modules/cars/ajax.php new file mode 100644 index 0000000..e004fef --- /dev/null +++ b/assessment/customs/clientc/modules/cars/ajax.php @@ -0,0 +1 @@ +

Voitures Client C

\ No newline at end of file diff --git a/assessment/data/cars.json b/assessment/data/cars.json new file mode 100644 index 0000000..18e5f78 --- /dev/null +++ b/assessment/data/cars.json @@ -0,0 +1,122 @@ +[ + { + "id": 1, + "modelName": "Sedan X", + "year": 1630454400, + "brand": "Brand A", + "power": 200, + "customer": "clienta", + "garageId": 1, + "colorHex": "#FF0000" + }, + { + "id": 2, + "modelName": "SUV Y", + "year": 1661990400, + "brand": "Brand B", + "power": 250, + "customer": "clientb", + "garageId": 2, + "colorHex": "#00FF00" + }, + { + "id": 3, + "modelName": "Hatchback Z", + "year": 1577836800, + "brand": "Brand C", + "power": 180, + "customer": "clientc", + "garageId": 3, + "colorHex": "#0000FF" + }, + { + "id": 4, + "modelName": "Convertible A", + "year": 1612051200, + "brand": "Brand D", + "power": 220, + "customer": "clienta", + "garageId": 1, + "colorHex": "#FFA500" + }, + { + "id": 5, + "modelName": "SUV B", + "year": 1643587200, + "brand": "Brand E", + "power": 270, + "customer": "clientb", + "garageId": 2, + "colorHex": "#800080" + }, + { + "id": 6, + "modelName": "Hatchback C", + "year": 1580515200, + "brand": "Brand F", + "power": 190, + "customer": "clientc", + "garageId": 3, + "colorHex": "#008000" + }, + { + "id": 7, + "modelName": "Sedan D", + "year": 1625097600, + "brand": "Brand G", + "power": 205, + "customer": "clienta", + "garageId": 1, + "colorHex": "#FFC0CB" + }, + { + "id": 8, + "modelName": "Convertible E", + "year": 1656633600, + "brand": "Brand H", + "power": 230, + "customer": "clientb", + "garageId": 8, + "colorHex": "#FFFF00" + }, + { + "id": 9, + "modelName": "SUV F", + "year": 1593561600, + "brand": "Brand I", + "power": 290, + "customer": "clientc", + "garageId": 5, + "colorHex": "#800000" + }, + { + "id": 10, + "modelName": "Hatchback G", + "year": 1638115200, + "brand": "Brand J", + "power": 195, + "customer": "clienta", + "garageId": 1, + "colorHex": "#00FFFF" + }, + { + "id": 11, + "modelName": "Sedan H", + "year": 1672204800, + "brand": "Brand K", + "power": 210, + "customer": "clienta", + "garageId": 1, + "colorHex": "#008080" + }, + { + "id": 12, + "modelName": "Convertible I", + "year": 1617225600, + "brand": "Brand L", + "power": 235, + "customer": "clientb", + "garageId": 2, + "colorHex": "#FF00FF" + } +] \ No newline at end of file diff --git a/assessment/data/garages.json b/assessment/data/garages.json new file mode 100644 index 0000000..a83a467 --- /dev/null +++ b/assessment/data/garages.json @@ -0,0 +1,32 @@ +[ + { + "id": 1, + "title": "ABC Garage", + "address": "123 Main Street, City A", + "customer": "clienta" + }, + { + "id": 2, + "title": "XYZ Auto Shop", + "address": "456 Elm Street, City B", + "customer": "clientb" + }, + { + "id": 3, + "title": "City Motors", + "address": "789 Oak Avenue, City C", + "customer": "clientc" + }, + { + "id": 4, + "title": "Sunset Garage", + "address": "321 Pine Street, City D", + "customer": "clienta" + }, + { + "id": 5, + "title": "Speedy Auto Repair", + "address": "654 Cedar Lane, City E", + "customer": "clientc" + } +] \ No newline at end of file diff --git a/assessment/index.php b/assessment/index.php new file mode 100644 index 0000000..a83c28c --- /dev/null +++ b/assessment/index.php @@ -0,0 +1,11 @@ + + + + + + Tool4cars + + +
+ +