← Retour aux projets
Projet

Application de Gestion de Tâches Collaborative

Année : 2024

Node.jsExpressDockerMariaDBKubernetesSonarQube

À propos de ce projet

Ce projet a été réalisé lors de ma 4ème à l’ESIEA, avec pour objectif de concevoir une application complète de gestion de tâches, multi-plateforme et accompagnée d’une vraie chaîne CI/CD. L’idée était de développer une solution moderne permettant de créer, afficher, trier et gérer des tâches de façon intuitive, tout en s’appuyant sur une architecture backend solide. Le but du projet était de nous introduire aux principes DevOps.

L’application reposait sur un frontend en Flutter, capable de tourner sur plusieurs environnements, et sur un backend en Node.js relié à une base MariaDB. Au-delà du développement des fonctionnalités, l’un des objectifs majeurs était d’intégrer une véritable pipeline CI/CD avec Docker, Jest pour les tests automatisés et un workflow reproductible pour le déploiement. C’était un projet pensé pour aller plus loin que l’application étudiante classique : industrialisation, qualité de code, conteneurisation et automatisation.

Parmi les enjeux du projet, on retrouvait la gestion d’un backend complet (CRUD, persistance, validation), l’interaction en temps réel avec Flutter, la mise en place d’une base relationnelle, ainsi que la configuration d’une chaîne CI/CD robuste. Il fallait également maintenir une cohérence entre toutes les couches : UI, logique métier, API et base de données.

Mes contributions sur ce projet ont porté sur :

  • la conception et le développement du backend Node.js ;
  • la configuration d’une pipeline CI/CD incluant tests Jest et exécution Docker ;
  • la conception du schéma de base de données MariaDB ;

Le projet s’est déroulé en binôme, avec une bonne coordination entre notre groupe pour synchroniser le backend, la base de données, l’UI et les tests. Nous avons travaillé de façon itérative avec des revues régulières, ce qui nous a permis d’améliorer progressivement la qualité de l’application et de la chaîne CI/CD.

Les obstacles rencontrés étaient avant tout la gestion des variables d'environnement et des fichiers de configuration de la pipeline ainsi que la conteneurisation et leur orchestration, une nouveauté pour nous.

Le résultat final : une application fonctionnelle, conteneurisée, avec une pipeline opérationnelle et un workflow de développement propre. Le tout a été présenté aux encadrants et a reçu de très bons retours, notamment sur la qualité de l’architecture et l’effort d’industrialisation.

Ce projet m’a apporté beaucoup, notamment en termes :

  • d’expérience en Node.js et de compréhension de l'architecture backend ;
  • de mise en place d’une chaîne complète CI/CD + Docker ;
  • de bonnes pratiques autour des tests, du travail en équipe et de la documentation.

Avec le recul, j’aimerais aller encore plus loin sur l’automatisation des tests et sur l’optimisation des performances du backend. Mais ce projet a clairement renforcé ma capacité à concevoir une application complète, structurée et industrialisée.

Stack Technique

Node.js

Express

Docker

MariaDB

Kubernetes

SonarQube

Vous avez un projet similaire ?