FoodTracker
Technos utilisées
C'est quoi ?
FoodTracker est une application permettant de suivre et d’analyser son alimentation au quotidien.
L’utilisateur peut concevoir ses propres repas, ajouter des aliments et suivre ses apports caloriques sur différentes périodes (semaine, mois, année).
Quelques exemples de fonctionnalités
Créer un repas :
Profil utilisateur :
Authentification et création de compte :
Architecture logicielle
L’objectif principal de ce projet était de concevoir une solution basée sur une architecture en microservices.
L’architecture est découpée en plusieurs microservices : MS-AUTHENT, MS-FOOD et MS-CALENDAR, ainsi qu’un service SMTP dédié à l’envoi d’emails.
Par souci de simplicité, tous les microservices utilisent la même instance du SGBD. Les données restent néanmoins isolées grâce à des schémas distincts (authentification / métier).
MS-AUTHENT : Backend Spring Boot chargé de la gestion des utilisateurs (connexion, création de compte, modification du mot de passe, etc.).
MS-FOOD : Backend Spring Boot responsable de la gestion des aliments et des repas des utilisateurs.
MS-CALENDAR : Backend Spring Boot dédié à la gestion des données temporelles et à la génération de statistiques et graphiques liés à l’alimentation.
Schéma des flux d'authentification
Maquettage des premiers écrans
Une phase de maquettage a été réalisée afin de définir les principales fonctionnalités et l’expérience utilisateur :
Au fil des réflexions sur l’UI/UX, l’interface a évolué pour aboutir à une version plus épurée et plus intuitive :
J'ai aussi voulu faire une application mobile, mais finalement je n'ai pas développé les écrans.
Maquettes des écrans mobile :
Bilan
Ce projet a été particulièrement formateur, notamment pour la mise en pratique d’une architecture en microservices, mieux adaptée aux systèmes évolutifs et maintenables.
Des améliorations pourraient être envisagées, comme l’introduction d’un broker de messages (Kafka) pour faciliter la communication inter-services, ou la mise en place d’une chaîne CI/CD (GitLab CI, Jenkins).
L’automatisation du déploiement pourrait également être renforcée via Ansible et un orchestrateur tel que Kubernetes.
En définitive, ce projet constitue une excellente base de réflexion sur la conception d’architectures logicielles modernes et adaptées aux besoins métiers.