Développer un service web pour répondre aux besoins d'une page web existante et fournir des fonctionnalités complémentaires via un client en ligne de commande.
Créer l'application serveur qui supporte les fonctionnalités de ce client web.
Implémenter les fonctionnalités CUDL pour les tâches
Lors de la création d'une tâche, son id est assigné par le serveur
require "securerandom"
p Random.uuid
Lors de la mise à jour du status d'une tâche, le serveur reçoit un booléen indiquant si la tâche est complétée ou non. C'est le serveur qui assigne ensuite nil
si faux, sinon la date-heure actuelle.
require "date"
p DateTime.now.to_s
Assurez-vous d'insérer des données de tests cohérentes lorsque le fichier est vide
GET / HTTP/1.1
===
...Fichier taskor.html...
GET /tasks HTTP/1.1
=== Toutes les tâches, telles que dans le fichier
[
{ id: "...", name: "...", completed_at: null | "yyyy-mm-ddThh:mm:ss-0z:00" },
...
]
POST /new-task HTTP/1.1
{ name: "..." }
===
""
~~~ Si erreur de validation
"Message d'erreur"
POST /set-completed HTTP/1.1
{ id: "...", completed: true | false }
===
""
~~~ Si erreur de validation
"Message d'erreur"
POST /update-name HTTP/1.1
{ id: ..., name: "..." }
===
""
~~~ Si erreur de validation
"Message d'erreur"
POST /remove-task HTTP/1.1
{ id: ... }
===
""
~~~ Si erreur de validation
"Message d'erreur"
Le client offre une interface console minimale pour permettre de manipuler les données via les routes existantes.
Liste des tâches supporte plusieurs paramètres d'URL optionnels pour ajuster les items affichés
GET /tasks?sort=...asc|desc...&name=...critère...&status=...pending|done... HTTP/1.1
===
[
...
]
~~~ Si erreur de validation
"Message d'erreur"
Taskor
------
Liste ou Ajout (L, A): L
Tri:
Recherche:
Status:
[ ] Nom A
[x] Nom B yyyy-mm-ddThh:mm:ss-0z:00
...
Taskor
------
Liste ou Ajout (L, A): L
Tri: patate
Recherche:
Status:
tri invalide, asc ou desc
Taskor
------
Liste ou Ajout (L, A): L
Tri: patate
Recherche:
Status: coucou
tri invalide, asc ou desc
status invalide, pending ou done
Taskor
------
Liste ou Ajout (L, A): L
Tri: desc
Recherche: ruby
Status: pending
...Seulement les tâches correspondantes...
Taskor
------
Liste ou Ajout (L, A): A
Nom: Tâche C
Ajout réussis
Taskor
------
Liste ou Ajout (L, A): A
Nom:
Nom requis
21 octobre, 8h AM via LÉA
Nom:
Qualité: ZIP, Nomenclature, Formatage, Syntaxe | 0 -0.5 -1 -2 |
Serveur | |
GET /, fichier html | 1 0.5 0 |
GET /tasks, toutes les tâches, données complètes, données de test | 2 1.5 1 0 |
Paramètres optionnels sort, name, status, réponse | 2 1.5 1 0 |
POST /new-task, body json, validations, réponse, persistence | 2 1.5 1 0 |
POST /set-completed, body json, validations, réponse, persistence | 2 1.5 1 0 |
POST /update-name, body json, validations, réponse, persistence | 2 1.5 1 0 |
POST /remove-task, body json, validations, réponse, persistence | 2 1.5 1 0 |
Client | |
Menu liste, supplément | 1 0.5 0 |
Liste saisie tri, recherche, status, affichage résultat | 2 1.5 1 0 |
Requête Liste route, paramètres url | 2 1.5 1 0 |
Supplément saisie, affichage résultat | 2 1.5 1 0 |
Requête Supplément route, paramètres json | 2 1.5 1 0 |
UI/UX cohérent | 0 -0.5 -1 |