← Retour au portfolio
v1.0.4 · MVP en recette

Sameva : vos habitudes en quêtes RPG

Application mobile Flutter qui transforme les habitudes du quotidien en quêtes RPG. L'utilisateur photographie sa preuve, un modèle de vision l'analyse et attribue un score, la récompense tombe en XP, en or et en objets. Conçue, développée et déployée en solo, de l'architecture à la chaîne de livraison, comme projet de certification RNCP 39583.

Flutter · Dart Supabase MVVM · offline-first Edge Functions CI/CD GitHub Actions Stripe
Paco, la mascotte de Sameva : un chat tuxedo en sweat à capuche teal, bonnet gris et baskets violettes, un cristal turquoise flottant au-dessus de la tête.
01

Le concept

Des habitudes en quêtes

L'utilisateur crée ses propres quêtes (ranger, cuisiner, étudier, faire du sport) réparties en domaines de vie. Les accomplir rapporte de l'expérience, de l'or et des objets, avec une progression de niveau et un suivi de série.

Une preuve, pas une case à cocher

La faiblesse des applications d'habitudes est la validation déclarative : cocher une case ne prouve rien. Sameva demande une photo ou une courte vidéo, analysée par un modèle de vision qui rend un score sur 100. Au-delà de 70, la récompense est pleine.

Jamais bloqué

Principe produit non négociable : si l'analyse échoue ou refuse, l'utilisateur valide manuellement avec une récompense réduite. Aucune panne réseau, aucun faux négatif ne peut enfermer quelqu'un dans un échec. Ce choix est traduit dans le code par un service de repli systématique.

Une vraie récompense

La thèse du produit tient en une phrase : atteindre un objectif réel mérite une récompense réelle. D'où la couche de méta-jeu, collection de companions, invocations, inventaire d'objets et classement, qui donne une raison de revenir le lendemain.

02

Sous le capot

29 000lignes de Dart
505tests automatisés
48,4 %couverture de code
268commits
3chaînes CI/CD
5Edge Functions

Chiffres relevés sur la version 1.0.4, dernière livrée.

Architecture en couches

MVVM sur quatre couches (données, domaine, présentation, interface), état géré via Provider et ChangeNotifier. Environ cent fichiers organisés par responsabilité, ce qui rend chaque règle métier testable indépendamment de l'interface.

Flutter 3DartMVVMProvider

Offline-first

Les données sont écrites d'abord en local avec Hive, puis synchronisées avec le serveur. L'application reste utilisable sans réseau : on peut créer une quête, la valider et voir sa progression, la remontée se fait au retour de la connexion.

HiveSynchronisation

Backend et sécurité

Supabase pour PostgreSQL, l'authentification et le stockage, avec des politiques de sécurité au niveau des lignes pour que chaque utilisateur ne voie que ses propres données. Cinq Edge Functions en Deno et TypeScript portent la logique qui ne doit pas vivre côté client.

SupabasePostgreSQLRLSDeno

Parcours d'authentification

L'entrée se fait sans inscription grâce à une session anonyme : on joue immédiatement. L'utilisateur peut ensuite créer un compte par e-mail ou via Google, et sa progression est conservée par liaison d'identité plutôt que par création d'un nouveau compte.

Session anonymeGoogle Sign-InLiaison d'identité

Monétisation

Modèle freemium adossé à Stripe, avec un abonnement mensuel. L'état premium est déterminé côté serveur et jamais côté application, pour qu'aucune modification locale ne puisse débloquer les fonctions payantes.

StripeWebhooksÉtat serveur

Intégration et livraison continues

Trois chaînes GitHub Actions : analyse statique et exécution des 505 tests à chaque poussée, déploiement du backend, et production de l'APK signé sur étiquette de version. Le paquet livré est reproductible, signé avec un magasin de clés stable.

GitHub ActionsTestsAnalyse statiqueAPK signé
03

La validation par IA

MougiBot est l'assistant qui juge les preuves. Derrière ce personnage, un modèle de vision appelé depuis une Edge Function : la clé d'API ne quitte jamais le serveur et l'application mobile ne connaît que le score.

01

L'utilisateur photographie sa preuve depuis l'application.

02

Le média part vers le stockage Supabase, jamais vers un tiers en direct.

03

Une Edge Function construit la requête et appelle le modèle de vision.

04

Le modèle rend un score sur 100 et un commentaire écrit.

05

Au-delà de 70, récompense pleine. En dessous, validation manuelle réduite.

Le repli, pensé dès la conception

Un service de validation simulé est interchangeable avec le service réel derrière la même interface. Il permet de faire tourner l'application entière sans aucune clé d'API, ce qui sert autant à l'exécution des tests automatisés qu'à la démonstration hors ligne.

C'est le même mécanisme qui garantit le principe « jamais bloqué » : une indisponibilité du modèle dégrade l'expérience, elle ne l'interrompt pas.

Ce qu'une photo ne peut pas prouver

La preuve visuelle couvre les quêtes dont le résultat est observable : une chambre rangée, un repas préparé, une plante arrosée. Elle ne couvre pas les quêtes de durée, parce qu'aucune image ne démontre trente minutes de course à pied.

Ces quêtes-là relèvent d'autres modes de preuve, chronomètre intégré, trace GPS ou connexion à une application de santé, identifiés et spécifiés mais volontairement hors du périmètre de cette première version.

04

Identité visuelle

L'identité repose sur Paco, un chat tuxedo au style mascotte cartoon, et sur sa déclinaison MougiBot qui incarne l'assistant d'analyse. Paco porte la marque, il n'est pas une unité de jeu : les personnages jouables et les companions relèvent d'un registre graphique distinct, en cours de conception.

Paco, mascotte de Sameva, bras croisés. PacoMascotte de la marque
MougiBot, déclinaison de Paco avec un visière de réalité augmentée et un panneau d'analyse. MougiBotVisage de l'assistant d'analyse
Paco célébrant une quête réussie, les bras levés. CélébrationÉcran de récompense
Le mot SAMEVA en italique avec un contour violet. WordmarkItalique, contour violet
Teal #4FD8C6 · signature Violet #8A63E0 · progression Or #F5C451 · monnaie Indigo vers navy · fond
Cristal turquoise, symbole de l'invocation. Casquette teal à écusson violet. Sweat à capuche teal avec empreinte de patte. Baskets montantes violettes et blanches. Chaîne argentée avec pendentif en cristal.

Objets à collectionner : registre streetwear, palette contrainte.

Planche de recherche visuelle présentant dix maquettes d'écrans de Sameva sur des cadres de téléphone.
Planche de recherche visuelle, itération 4. Exploration de mise en page et de hiérarchie, antérieure à la direction de jeu actuelle : les personnages jouables et les companions y sont représentés par la mascotte, ce qui ne correspond ni à l'application livrée ni à la conception retenue depuis.

La direction artistique définitive, notamment les quatre classes de personnages et le bestiaire de companions, sera confiée à un illustrateur professionnel après la certification. Les visuels présentés ici sont des recherches de production servant à cadrer la commande.

05

Où en est le projet

Sameva est un produit en construction, pas une vitrine. Voici précisément la frontière entre ce qui tourne, ce qui est en cours et ce qui reste devant.

Livré en v1.0.4

  • Création, suivi et validation des quêtes
  • Progression RPG : niveaux, expérience, or, séries
  • Preuve photo et vidéo avec score et repli manuel
  • Fonctionnement hors ligne et synchronisation
  • Session anonyme, e-mail et Google avec liaison d'identité
  • Collection, invocations, inventaire, classement
  • Abonnement Stripe avec état déterminé côté serveur
  • 505 tests et trois chaînes d'intégration continue

En cours

  • Recette fonctionnelle sur appareil physique
  • Montée de la couverture de tests au-delà de 48,4 %
  • Passage du modèle de vision simulé au modèle réel en production
  • Cadrage de la commande d'illustration
06

Cadre de certification

Sameva est le projet support du titre Expert en développement logiciel, niveau 7, RNCP 39583, préparé à YNOV Campus sur la promotion 2025-2026. Il est conduit comme une prestation pour un client fictif, ce qui impose de tenir seul l'ensemble des rôles : cadrage, architecture, développement, qualité, déploiement et pilotage.