App Flutter de programme de fidélité : login staff, clients (nom/prénom), scan QR, factures (€→points), récompenses, réglages. Backend Supabase (schéma SQL + RLS anti-triche dans supabase/). Icône incluse. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2.8 KiB
Configuration Supabase (à faire une seule fois)
Le backend est partagé par les deux apps : app_fideliter (tablette / staff)
et app_fideliter_client (client). Suivez ces étapes dans l'ordre.
1. Créer le projet Supabase
- Aller sur https://supabase.com → New project (gratuit).
- Choisir un nom, un mot de passe de base de données, une région proche
(ex :
Europe (Paris)), puis Create.
2. Créer les tables
- Dans le projet : menu SQL Editor → New query.
- Copier-coller tout le contenu de
schema.sql→ Run. - Vérifier dans Table Editor que
clients,mouvements,recompenses,reglages,staffexistent.
3. Récupérer les 2 clés à mettre dans les apps
Menu Project Settings → API :
- Project URL (ex :
https://abcd1234.supabase.co) - anon public key (une longue chaîne — c'est la clé publique, sans danger
dans une app ; la sécurité est assurée par la RLS du
schema.sql).
Coller ces 2 valeurs dans chaque app, fichier lib/supabase_config.dart :
class SupabaseConfig {
static const String url = 'https://VOTRE-PROJET.supabase.co';
static const String anonKey = 'VOTRE_CLE_ANON';
}
⚠️ Ne jamais mettre la clé service_role dans une app : elle contourne toute la sécurité. Seule la clé anon va dans les apps.
4. Créer le compte du magasin (staff)
Le staff (la tablette) a besoin d'un compte avec droits d'écriture.
-
Menu Authentication → Users → Add user → Create new user. Mettre un email + mot de passe (ce sera l'identifiant de la tablette). Cocher « Auto Confirm User ».
-
Copier l'UID de cet utilisateur (colonne
UID). -
Menu SQL Editor, exécuter (en remplaçant l'UID) :
insert into public.staff (user_id) values ('COLLER_UID_ICI');
Ce compte peut maintenant se connecter sur l'app tablette et tout gérer. Les clients, eux, créent leur compte tout seuls depuis l'app client (ils ne sont pas staff → ils ne peuvent que consulter leurs propres points).
5. (Recommandé pour tester vite) désactiver la confirmation d'email
Pour que la création de compte client marche sans étape email pendant les tests : Authentication → Providers → Email → désactiver « Confirm email » (à réactiver plus tard en production si souhaité).
6. Lancer
# App tablette (magasin)
cd app_fideliter && flutter run
# App client
cd app_fideliter_client && flutter run
- Sur la tablette : se connecter avec le compte staff de l'étape 4.
- Sur l'app client : « Créer un compte » → un client + son QR sont générés.
- Scanner ce QR depuis la tablette → sa fiche s'ouvre, on ajoute une facture, ses points se mettent à jour dans l'app client (au rafraîchissement / retour dans l'app). 🎉