Projet personnel — sensibilisation à l’arrêt du tabac
Smokonomy
Projet personnel d’Arnaud Piette : application web permettant de visualiser le coût du tabac et les économies potentielles réalisées après l’arrêt.
Stack technique
Contexte
CONVERTSSEUR est une application personnelle conçue pour rendre visible le coût financier du tabac. Elle transforme la consommation déclarée en budget, économies potentielles et exemples concrets de projets ou d’achats que cette somme pourrait financer.
Objectifs
- Faire prendre conscience du coût financier du tabac.
- Calculer un budget à partir de la consommation, du prix et du format du paquet.
- Projeter ce budget dans le temps et le relier à des objectifs concrets.
- Permettre de suivre une économie déclarée et la progression d’un objectif.
- Conserver un premier résultat localement, y compris sans compte.
Architecture applicative
- Écrans Expo Router
- Hooks et composants React Native
- Services de calcul et d’équivalences
- Stores Zustand
- AsyncStorage / Supabase
L’application sépare les écrans Expo Router, les composants React Native, les services de calcul, les données d’équivalences et les stores Zustand. Les données invité sont persistées avec AsyncStorage ; une architecture Supabase existe pour les comptes authentifiés.
Fonctionnalités
- Saisie de la consommation quotidienne, de la marque, du prix et du format du paquet.
- Suggestions de produits de tabac et mode de saisie manuelle.
- Calcul du budget quotidien, mensuel et des projections par période.
- Suggestions d’achats ou projets, avec possibilité de choisir un objectif.
- Suivi quotidien de la consommation et des économies, sans double saisie pour un même objectif et une même date.
- Évolution de l’épargne visualisée par un graphique interactif.
- Outil SOS financier pour visualiser le bénéfice de ne pas fumer une cigarette.
Logique métier et projections
V1 — existant / interneLe calcul détermine d’abord le nombre de paquets fumés chaque jour, puis le budget quotidien et le budget mensuel sur une base de 30,4375 jours. Chaque projection correspond ensuite au budget mensuel multiplié par la durée sélectionnée.
- Paquets par jour = cigarettes consommées par jour ÷ nombre de cigarettes par paquet.
- Coût quotidien = paquets par jour × prix du paquet ; coût mensuel = coût quotidien × 30,4375.
- Projection = coût mensuel × multiplicateur de la période.
- Périodes implémentées : de 1 à 11 mois, puis de 1 à 60 ans.
- Plan invité gratuit : 1 mois, 2 mois, 3 mois et 1 an.
- Les périodes au-delà de ces limites sont prévues dans la logique d’accès Premium ; aucune période d’une semaine n’est implémentée dans le code actuel.
Données et stockage
V1 — existant / interneLe profil recueille la consommation quotidienne, la marque, le prix du paquet, le nombre de cigarettes par paquet et la devise. Les calculs, objectifs, favoris et entrées d’épargne sont conservés localement pour le parcours invité.
- Zustand et AsyncStorage persistent notamment le profil, la période active, les objectifs et les économies.
- Supabase est présent comme architecture de synchronisation pour les comptes authentifiés ; la fiche ne le présente pas comme une synchronisation finalisée.
Objectifs, équivalences et visualisation
V1 — existant / interneLe budget est rapproché d’un catalogue d’équivalences : expériences, loisirs, technologie, mobilité, voyages, maison ou projets personnels. L’utilisateur peut choisir un objectif et en suivre la progression.
- Le graphique d’évolution affiche les économies manuelles et celles liées aux cigarettes évitées.
- Le parcours gratuit conserve un historique de sept jours et une sélection limitée de propositions par période.
- Les projections avancées, l’historique complet et certains usages multi-objectifs sont réservés aux niveaux d’accès définis par l’application.
Expérience et accessibilité
V1 — existant / interneL’interface est conçue avec React Native et adapte la largeur des cartes aux dimensions disponibles. Les actions principales utilisent des libellés d’accessibilité et des rôles de bouton lorsque nécessaires.
- Choix rapides pour la consommation quotidienne, recherche de marque et saisie manuelle.
- Étapes d’onboarding, retours explicites sur les limites d’accès et actions de partage.
- Le graphique fournit une description accessible de ses données et des libellés pour chaque barre interactive.
Tests et qualité
V1 — existant / interneLe dépôt contient des tests Jest dédiés au calcul budgétaire, aux prix du tabac, aux équivalences, aux objectifs, au suivi quotidien et au stockage invité.
Challenge principal
Transformer une dépense quotidienne abstraite en une projection financière compréhensible, motivante et reliée à des objectifs personnels, sans réduire l’expérience à un simple convertisseur de valeurs.
Solution apportée
La solution combine une logique de calcul centralisée, des projections temporelles, un catalogue d’équivalences, des objectifs suivis dans le temps et un parcours local persistant. Les services isolent le calcul, les prévisions et le suivi afin de rendre les règles testables.
Résultats
- L’application permet d’estimer le budget cigarettes, de le projeter dans le temps et de l’associer à des projets concrets.
- Elle offre un parcours invité persistant avec objectifs, suivi quotidien, graphique d’épargne et mécanisme SOS financier.
Améliorations possibles
- Valider les achats réels sur appareils physiques avant toute activation Premium.
- Finaliser la synchronisation Supabase et la suppression de compte côté serveur.
- Ajouter les exports image/PDF prévus avant de les exposer.
- Poursuivre les tests sur appareils, tailles d’écran et parcours d’accessibilité.