- Installation locale
- Wiki
- Exposition de l'API: http://localhost:8080/api/docs (login = [email protected] ; mdp = password)
- Exposition de la BDD: http://localhost:8081/
- Création de 3 entités : Todolist, Task et Tag.
- Création de 6 endpoints pour :
- Lire une Todolist avec ses Tasks et leurs Tags.
- Créer une Todolist (sans ses associations car celles-ci seront gérées à la création d'une Task).
- Créer une Task et ses Tags.
- Modifier une Task et ses Tags.
- Lire toutes les Tasks associées à un Tag donné (ou plusieurs).
- Lire toutes les Tasks expirées.
- Protection de l'API avec l'authentification HTTP Basic.
- Garantie de la qualité du code et d'une maintenance aisée :
- Utilisation de docker-compose pour disposer d'un environnement local bien défini (containers = NGINX, PHP, MySQL, phpMyAdmin).
- Utilisation d'un framework (Symfony) et d'un bundle REST API (API Platform) pour bénéficier d'une base robuste, réduire le temps de développement, et simplifier le travail collaboratif.
- Utilisation des dernières versions stables des principaux composants (PHP 8, MySQL 8, Symfony 6, API Platform 2.7) pour bénéficier des dernières optimisations.
- Implémentation d'une batterie de tests (Unit & Application) avec PHPUnit (au moins 2 tests -1 valide et 1 invalide- par entité et par endpoint).
- Implémentation des DataFixtures pour auto-générer les données de test (avec FakerPHP et une Command custom pour que la régénération des données reparte toujours de l'ID n°1).
- Création d'un script permettant d'effectuer la "Static Analysis" du code (avec PHP_CodeSniffer et PHPStan, configurés pour le standard PSR-12 et le style Allman).
- Rédaction d'un Wiki pour une prise en main plus aisée.