Application CLI de gestion de tâches, écrite en Dart pur (aucune dépendance Flutter). Persistance locale au format JSON, tri par priorité ou par échéance, gestion d'erreurs via des exceptions personnalisées. dans le cadre du Flutter Fire Summer Camp
- Dart SDK ≥ 3.0.0
Vérifier l'installation :
dart --versiongit clone https://github.com//task_cli.git
cd task_cli
dart pub get# Ajouter une tâche
dart run bin/task_cli.dart add "Préparer le CTF" --priority=high --due=2026-08-01
# Ajouter une tâche urgente (priorité "high" imposée automatiquement)
dart run bin/task_cli.dart add "Corriger la faille critique" --urgent --due=2026-07-26
# Lister les tâches
dart run bin/task_cli.dart list
dart run bin/task_cli.dart list --sort=priority
dart run bin/task_cli.dart list --sort=date
# Marquer une tâche comme terminée
dart run bin/task_cli.dart done <id>
# Supprimer une tâche
dart run bin/task_cli.dart remove <id>Les données sont persistées dans tasks.json, créé/mis à jour à la racine du
projet à chaque commande qui modifie l'état.
dart testlib/
exceptions/
task_exceptions.dart # Hiérarchie d'exceptions personnalisées
models/
priority.dart # enum Priority (low/medium/high)
task.dart # Task (abstraite), interface JsonSerializable,
# NormalTask et UrgentTask (héritage)
repository/
repository.dart # interface générique Repository<T>
task_repository.dart # TaskRepository implements Repository<Task>
# (persistance JSON)
cli/
task_cli_app.dart # Parsing des commandes et affichage
utils/
id_generator.dart # Génération d'identifiants
bin/
task_cli.dart # Point d'entrée
test/
task_test.dart
task_repository_test.dart
- Classes abstraites + héritage :
Task(abstraite) →NormalTask,UrgentTask - Interfaces :
Task implements JsonSerializable, Comparable<Task> - Génériques :
Repository<T>→TaskRepository implements Repository<Task> - Exceptions personnalisées :
TaskException(base) et ses sous-classes (TaskNotFoundException,InvalidPriorityException,InvalidDueDateException,EmptyTitleException,DuplicateTaskException,TaskPersistenceException) - Tests unitaires :
package:test, couvrant modèles, tri, CRUD, erreurs et persistance
Projet pédagogique.