01a0f1029f169c23629bfff15b75709cf40aa501
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Ma fidélité — App client
App mobile (Flutter) pour les clients du programme de fidélité. Le client crée son compte lui-même, obtient sa carte de fidélité (QR code), suit ses points et voit les récompenses qu'il peut obtenir.
Backend : Supabase — le même projet que l'app magasin
app_fideliter. Les points ajoutés en caisse apparaissent
côté client au rafraîchissement.
Parcours
- Accueil : choix « Créer un compte » ou « J'ai déjà un compte ».
- Création de compte : email + mot de passe + nom (+ téléphone). Le code de fidélité et le QR sont générés automatiquement côté serveur — le gérant n'a rien à saisir.
- Accueil client : carte avec le solde de points, le QR code à présenter en caisse, la progression vers chaque récompense, et l'historique.
Sécurité : un client ne peut voir que ses données et ne peut pas modifier ses points (règles RLS + triggers Supabase, voir
schema.sqlde l'app magasin).
Configuration
Même projet Supabase que l'app magasin. Voir
../app_fideliter/supabase/SETUP.md.
Coller l'URL + la clé anon dans lib/supabase_config.dart
(les mêmes valeurs que l'app magasin).
Techno
- Flutter (Material 3, même thème que l'app magasin)
supabase_flutter(auth client + données),qr_flutter(affichage du QR)
Lancer l'app
flutter run
Structure
lib/
├── main.dart # init (locale fr, Supabase) + thème
├── supabase_config.dart # URL + clé anon (À REMPLIR)
├── theme.dart
├── models/ # client, mouvement, recompense
├── services/
│ └── session_client.dart # données du client connecté (points, historique…)
├── screens/
│ ├── auth_gate.dart # accueil ↔ profil ↔ app selon la session
│ ├── welcome_screen.dart # choix connexion / création de compte
│ ├── login_screen.dart
│ ├── signup_screen.dart
│ ├── complete_profile_screen.dart # finalisation du profil (après confirmation email)
│ └── home_client_screen.dart # carte de fidélité (points + QR), récompenses, historique
└── utils/format.dart
Description
Languages
Dart
93.5%
JavaScript
6.3%
Kotlin
0.2%