
Workboard : Gestionnaire de tâches
Quelle est la demande initiale ?
La demande consiste à développer une application web permettant de gérer des tâches. Cette application doit permettre aux utilisateurs de créer, consulter, modifier, supprimer et organiser des tâches. Le projet doit également intégrer une API REST pour accéder aux données et une base de données NoSQL MongoDB pour stocker les informations.
Grandes lignes du cahier des charges
Objectif principal
- Développer un gestionnaire de tâches accessible via une interface web, permettant à un utilisateur d’organiser ses activités quotidiennes.
Fonctionnalités principales
- Création de tâches : Ajouter une nouvelle tâche avec différentes informations
- Consultation : Afficher toutes les tâches ou une tâche spécifique
- Modification : Mettre à jour les informations d’une tâche
- Suppression : Supprimer une tâche existante
- Filtrage : Rechercher des tâches selon plusieurs critères
- Tri : Classer les tâches selon différentes propriétés
- Gestion avancée : Ajouter des sous-tâches et des commentaires
Technologies imposées
- Base de données : MongoDB
- Backend : Node.js avec Express
- Frontend : HTML, CSS et JavaScript
- Architecture : API REST
Contraintes techniques
- Utilisation obligatoire de MongoDB pour la base de données.
- Création d’une API REST complète (CRUD).
- Interface web simple mais fonctionnelle.
- Application réalisable localement ou en ligne.
- Pas de système d’authentification requis.
Technologies, outils et langages utilisés
JavaScript
Langage de programmation utilisé pour rendre les pages web interactives.
HTML5
Langage de balisage standard pour la création de pages web.
CSS3
Langage de style utilisé pour la mise en forme des pages web.
Git
Gestionnaire de versions
MongoDB
MongoDB est un système de gestion de base de données orienté documents, répartissable sur un nombre quelconque d'ordinateurs et ne nécessitant pas de schéma prédéfini des données.
Les différentes étapes du projet
La première étape du projet consiste à définir la structure des données qui seront stockées dans la base de données MongoDB. Pour cela, un modèle de document représentant une tâche est conçu afin de regrouper toutes les informations nécessaires à sa gestion. Chaque tâche comprend plusieurs champs, comme un titre permettant d’identifier rapidement la tâche, une description contenant davantage de détails, ainsi que la date de création et la date d’échéance. D’autres informations sont également ajoutées, comme le statut de la tâche (par exemple « à faire », « en cours » ou « terminée ») et le niveau de priorité. Le modèle inclut aussi des informations sur l’auteur de la tâche, sa catégorie, ainsi que des étiquettes permettant de la classer plus facilement. Enfin, certaines structures plus complexes sont intégrées, comme les sous-tâches, les commentaires et un historique des modifications. Cette organisation des données permet de gérer des tâches de manière détaillée et structurée dans l’application.
La deuxième étape consiste à développer une API REST en utilisant Node.js et le framework Express. Cette API sert d’intermédiaire entre la base de données et l’interface web. Elle permet de manipuler les tâches grâce aux opérations principales du CRUD (Create, Read, Update, Delete). Plusieurs routes sont ainsi mises en place : une route pour récupérer toutes les tâches, une route pour récupérer une tâche spécifique à partir de son identifiant, une route pour créer une nouvelle tâche, une route pour modifier une tâche existante et une dernière pour supprimer une tâche. En plus de ces fonctionnalités principales, l’API doit également gérer des fonctionnalités complémentaires comme le filtrage des tâches, le tri des résultats ainsi que la gestion des sous-tâches et des commentaires associés à chaque tâche.
Une autre étape importante du projet consiste à permettre aux utilisateurs de rechercher et d’organiser leurs tâches grâce à différents filtres et options de tri. L’API permet ainsi de filtrer les tâches selon plusieurs critères, comme le statut, la priorité, la catégorie, les étiquettes ou encore la date limite. Il est également possible d’effectuer une recherche textuelle dans le titre ou la description d’une tâche. En complément, des options de tri sont mises en place afin d’organiser les résultats selon différents critères, par exemple la date d’échéance, la priorité ou la date de création. Il est aussi possible de définir l’ordre de tri, croissant ou décroissant. Ces fonctionnalités permettent de retrouver plus facilement les tâches importantes et d’améliorer l’organisation des informations dans l’application.
Une fois l’API mise en place, l’étape suivante consiste à développer une interface web simple permettant aux utilisateurs d’interagir avec l’application. Cette interface est réalisée à l’aide de technologies web classiques telles que HTML, CSS et JavaScript. Elle permet d’afficher la liste des tâches enregistrées dans la base de données et de consulter les détails de chacune d’elles. Les utilisateurs peuvent également créer de nouvelles tâches, modifier les informations d’une tâche existante ou supprimer celles qui ne sont plus nécessaires. L’interface offre aussi la possibilité de gérer les sous-tâches, d’ajouter des commentaires et d’utiliser les filtres ou les options de tri pour organiser les tâches affichées. Les interactions entre l’interface et la base de données se font grâce à des requêtes HTTP envoyées à l’API REST.
La dernière étape du projet consiste à organiser le travail réalisé et à préparer une présentation du projet. Les étudiants doivent produire un diaporama composé d’au moins huit diapositives afin de présenter les différents aspects de l’application. Cette présentation doit inclure une introduction au projet et aux technologies utilisées, une explication de la modélisation des données dans MongoDB, ainsi qu’une description de l’architecture du projet. Elle doit également présenter le fonctionnement de l’API REST et des opérations CRUD, expliquer le système de filtres et de tris et montrer l’interface web développée. Enfin, les étudiants doivent conclure en évoquant l’organisation du projet, les éventuelles fonctionnalités supplémentaires mises en place, les difficultés rencontrées et les connaissances acquises au cours du développement.

Capture d'écran du filtre de recherche et tri de Workboard
Compétences développées
| Compétences techniques | ↪ Utilisation d’une base de données MongoDB. |
| ↪ Développement d’une API REST avec Node.js et Express. | |
| ↪ Création d’une interface web avec HTML, CSS et JavaScript. | |
| ↪ Implémentation d’opérations CRUD. | |
| ↪ Manipulation de requêtes HTTP et de paramètres d’URL. | |
| ↪ Gestion et structuration de données complexes. | |
| Compétences transversales | ↪ Analyse d’un cahier des charges. |
| ↪ Conception d’une architecture logicielle. | |
| ↪ Organisation d’un projet de développement. | |
| ↪ Gestion du code avec Git. | |
| ↪ Documentation et présentation d’un projet technique. | |
| Compétences humaines | ↪ Travail en équipe. |
| ↪ Communication et coordination entre les membres du groupe. | |
| ↪ Répartition des tâches dans un projet. | |
| ↪ Résolution collaborative de problèmes. |
Conclusion
Ce projet de gestionnaire de tâches permet aux étudiants de réaliser une application web complète, intégrant une base de données, un backend et une interface utilisateur. En suivant le cahier des charges, ils apprennent à concevoir une architecture moderne basée sur une API REST et une base de données NoSQL.
Le projet permet également de comprendre les différentes étapes du développement d’une application : analyse des besoins, modélisation des données, développement backend, création d’une interface utilisateur et présentation finale du projet.
Ainsi, ce travail constitue une expérience pratique importante dans l’apprentissage du développement web full-stack, tout en développant des compétences techniques, organisationnelles et collaboratives.

