Une TODO List est une liste de choses à faire, que ce soit des courses alimentaires, vos impôts ou encore aller chercher votre ami à la gare. Vous l'aurez compris, l'idée est de pouvoir se rappeler de ce que l'on doit faire sous forme de tâches, et de les marquer comme réalisées une fois accomplies.
Dans le cadre de ce projet, vous devez réaliser une gestion de tâches avec au minimum une liste. En effet, dans certains services en ligne, il est possible de créer plusieurs listes de tâches (personnel et travail par exemple).
Vous devez utiliser le Framework PHP Symfony, Composer et écrire des tests.
Respecter les concepts vus en cours tout au long de l'année : bonnes pratiques, découplage, couches distinctes, etc.
La partie Présentation peut être réalisée à votre convenance (JS ou non), mais faites quelque chose de présentable (même si cela reste minimaliste, n'hésitez pas à utiliser un framework CSS existant).
Il existe un projet nommé TodoMVC dont vous pouvez vous inspirer.
Vous sauvegarderez les données dans une base de données "locale" (MySQL, SQLite, etc.). Seulement, il ne faudra pas s'arrêter là. En effet, pour que vous puissiez manipuler une API tierce ainsi qu'OAuth, vous allez utiliser l'API Google Tasks pour persister vos données. Comme vous avez une couche modèle bien écrite, avec interfaces et implémentations (services) distinctes, ce devrait être un jeu d'enfant 😄
A noter que l'utilisation de l'API Google Tasks n'est pas une option !
Dans un premier temps, vous écrirez votre application en mode "déconnecté". Ne vous souciez pas de la partie API Google. Faites une implémentation de votre persistence avec SQLite ou YAML par exemple, mais gardez en tête l'objectif final de votre projet. La partie API Google doit être implémentée.
Faites un tour sur la documentation Google pour comprendre comment fonctionne l'API Google Tasks, et inspirez vous en ! Cela peut être utile pour définir votre modèle.
Toute idée/fonctionnalité que vous jugez utile et, plus globalement, toute initiative personnelle est la bienvenue et encouragée.