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

78 lines
2.8 KiB
Markdown

# 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.com → **New 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 Editor****New query**.
2. Copier-coller **tout** le contenu de [`schema.sql`](schema.sql) → **Run**.
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 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` :
```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 **Authentication****Users****Add user****Create 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) :
```sql
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
```bash
# 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). 🎉