Backend technical test
Assurez-vous que votre environnement de développement dispose des éléments suivants :
- PHP 8.3 ou supérieur
- Composer
- Symfony CLI (utile pour serveur http local -> https://symfony.com/download)
- Docker & Docker Compose
Suivez ces étapes pour cloner et lancer le projet localement. Placez-vous dans le dossier de votre choix et exécutez les commandes suivantes :
git clone https://github.com/insaneness/flexcity.git .composer installLe fichier .env est pré configuré et contient les variables d'environnement nécessaires pour la connexion à la base de données (Docker).
docker-compose up -dphp bin/console doctrine:migrations:migratephp bin/console doctrine:fixtures:loadsymfony server:startFaire une requête POST sur http://127.0.0.1:8000/activation avec le body suivant :
{
"date": "17-03-2026",
"volume": 150
}Si vous avez Postman d'installé :
postman request POST 'http://127.0.0.1:8000/activation' \
--header 'Content-Type: application/json' \
--body '{
"date": "17-03-2026",
"volume": 150
}'Pour éxécuter les tests lancer la commande suivante :
php bin/phpunit- J'ai voulu mettre en place le Domain Driven Design (DDD) pour structurer le projet de manière claire et maintenable. Cela permet de séparer les différentes couches de l'application (Domain, Application, Infrastructure) et de favoriser la réutilisabilité du code.
- J'ai mis en place le début d'une petite API REST pour permettre l'ajout d'objets du modèle via des requêtes HTTP. Cela rend l'application plus flexible et facilement intégrable avec d'autres systèmes.
- J'ai utilisé Docker pour faciliter le déploiement et la gestion de la base de données. Cela permet à n'importe qui de cloner le projet et de le faire fonctionner rapidement.
- Concernant la partie optimisation de la recherche d'assets, j'ai implémenté la version demandée (Cost Effective) et j'ai aussi travaillé sur une version qui prend en compte la notion d'overpower.