In progress

SPOTINI

Mobile workout tracker: sessions, sets and personal records, with an AI coach. In French, English and Arabic.

SPOTINI sign-in screen: email, password, Google sign-in and account creation
Role
Full-stack & mobile
Timeline
2026 — 2027
Team
Team of 2with Yassine Charcheri
Tech stack
12 technologies

What it is

SPOTINI is a mobile workout tracker with an AI coach, built with Flutter and Spring Boot by Majd Ben Slimene and Yassine Charcheri as an academic project (DSI, mobile development course, ISET de Kélibia, 2026–2027), still in progress. It will also be hosted and opened to the public. A Flutter app, a Spring Boot API (Spring Modulith), a React admin and Python / FastAPI AI services.

Problem solved

Help people who train in the gym log their sessions, sets and personal records quickly, and get progression advice from an AI coach, in French, English or Arabic.

My role

  • Authentication OpenAPI contract
  • JWT sign-up and login with health-data consent
  • Flutter sign-up, login and password-reset screens
  • Flutter settings screen (language FR / AR / EN, theme, account deletion)
  • Account deletion API
  • Exercise search API (accent-insensitive, typo-tolerant, filters)
  • Initial exercise dataset (80 exercises translated into French)
  • Local Docker Compose environment

Key features

  • Workout sessions, sets and personal records

  • Training programmes and routines

  • Exercise library with search and filters

  • AI coach recommendations

  • French, English and Arabic, dark and light themes

  • Account and privacy settings (consent, account deletion)

Challenges

  1. Health data

    Solution

    An explicit consent step at sign-up, and a full account deletion that removes the user's data from every table, checked by a cascade test.

  2. Exercise search

    Exercise search that works without accents and tolerates typos.

What I learned

  • Contract-first API design with OpenAPI: lint and mock server before coding
  • A modular monolith with Spring Modulith and Flyway migrations
  • Building Flutter screens against a real API
  • A team workflow with Jira tickets, pull requests and code reviews

Screenshots

1 / 6

  • SPOTINI sign-in screen: email, password, Google sign-in and account creation
  • SPOTINI program screen: the push, pull and legs routines, each with a Start button
  • SPOTINI workout session: sets with weight and reps, a rest timer and a Finish button
  • SPOTINI exercise library: search, filters by muscle and equipment, exercise list
  • SPOTINI exercise page: a 3D figure doing the movement and the muscles it works
  • SPOTINI profile screen: goal and level, available days, equipment and injuries
Back to the doors