Files
Mathew 1d3ee69c6d Initial commit — app fidélité magasin (tablette)
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>
2026-07-17 21:37:06 +02:00

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

  1. Aller sur https://supabase.comNew project (gratuit).
  2. 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

  1. Dans le projet : menu SQL EditorNew query.
  2. Copier-coller tout le contenu de schema.sqlRun.
  3. Vérifier dans Table Editor que clients, mouvements, recompenses, reglages, staff existent.

3. Récupérer les 2 clés à mettre dans les apps

Menu Project SettingsAPI :

  • 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.

  1. Menu AuthenticationUsersAdd userCreate new user. Mettre un email + mot de passe (ce sera l'identifiant de la tablette). Cocher « Auto Confirm User ».

  2. Copier l'UID de cet utilisateur (colonne UID).

  3. 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 : AuthenticationProvidersEmail → 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). 🎉