En cours

SPOTINI

Application mobile de suivi d'entraînement : séances, séries et records personnels, avec un coach IA. En français, anglais et arabe.

Écran de connexion de SPOTINI : e-mail, mot de passe, connexion Google et création de compte
Rôle
Full-stack et mobile
Période
2026 — 2027
Équipe
Équipe de 2avec Yassine Charcheri
Technologies
12 technologies

Le projet

SPOTINI est une application mobile de suivi d'entraînement avec un coach IA, réalisée avec Flutter et Spring Boot par Majd Ben Slimene et Yassine Charcheri dans un cadre académique (DSI, cours de développement mobile, ISET de Kélibia, 2026–2027), encore en cours. Elle sera aussi hébergée et ouverte au public. Une application Flutter, une API Spring Boot (Spring Modulith), une administration React et des services IA en Python / FastAPI.

Problème résolu

Aider les personnes qui s'entraînent en salle à enregistrer rapidement leurs séances, leurs séries et leurs records personnels, et à recevoir des conseils de progression d'un coach IA, en français, en anglais ou en arabe.

Mon rôle

  • Contrat OpenAPI de l'authentification
  • Inscription et connexion JWT avec consentement aux données de santé
  • Écrans Flutter d'inscription, de connexion et de réinitialisation du mot de passe
  • Écran Flutter de paramètres (langue FR / AR / EN, thème, suppression du compte)
  • API de suppression du compte
  • API de recherche d'exercices (insensible aux accents, tolérante aux fautes de frappe, filtres)
  • Jeu de données initial d'exercices (80 exercices traduits en français)
  • Environnement Docker Compose local

Fonctionnalités clés

  • Séances d'entraînement, séries et records personnels

  • Programmes et routines d'entraînement

  • Bibliothèque d'exercices avec recherche et filtres

  • Recommandations du coach IA

  • Français, anglais et arabe, thèmes sombre et clair

  • Paramètres du compte et de confidentialité (consentement, suppression du compte)

Difficultés

  1. Données de santé

    Solution

    Une étape de consentement explicite à l'inscription, et une suppression complète du compte qui efface les données de l'utilisateur dans toutes les tables, vérifiée par un test en cascade.

  2. Recherche d'exercices

    Une recherche d'exercices qui fonctionne sans accents et tolère les fautes de frappe.

Ce que j'ai appris

  • Concevoir une API « contract-first » avec OpenAPI : lint et serveur de mock avant de coder
  • Un monolithe modulaire avec Spring Modulith et les migrations Flyway
  • Construire des écrans Flutter sur une vraie API
  • Un travail d'équipe avec des tickets Jira, des pull requests et des revues de code

Captures

1 / 6

  • Écran de connexion de SPOTINI : e-mail, mot de passe, connexion Google et création de compte
  • Écran de programme de SPOTINI : les routines push, pull et legs, chacune avec un bouton Démarrer
  • Séance dans SPOTINI : séries avec poids et répétitions, minuteur de repos et bouton Terminer
  • Bibliothèque d'exercices de SPOTINI : recherche, filtres par muscle et équipement, liste d'exercices
  • Page d'exercice de SPOTINI : une figure 3D qui fait le mouvement et les muscles sollicités
  • Écran de profil de SPOTINI : objectif et niveau, jours disponibles, équipement et blessures
Retour aux portes