Application de gestion offline-first (Flutter + PowerSync + PostgreSQL) — reparation & vente d'accessoires, multi-magasins (Cote d'Ivoire)
# BEJ Technologie — Application de gestion
Application de gestion pour BEJ Technologie (réparation + vente d'accessoires,
3 magasins en Côte d'Ivoire), **offline-first**. Priorité métier : CRM client +
stock + caisse/vente + réparations.
> **Source de vérité de l'avancement : `STATUS.md`** (objectif de la
> phase, fait, prochaine action unique, risques). À lire en début de session.
## État
**Phases 0 → 2 livrées et validées** (tests E2E), plus le durcissement « mise en
production » et les périphériques boutique :
- **Phase 0 — Socle** : Flutter web + SQLite (PowerSync) + PostgreSQL + backend Dart.
- **Phase 1 — MVP** : connexion + rôles, CRM (dédup + fiche détaillée), stock,
caisse, vente comptoir (paiement mixte, reçu QR), réparations, retours/avoirs,
jetons, tableau de bord.
- **Phase 2 — Multi-magasins** : transferts inter-magasins, reporting consolidé,
+ finitions (réapprovisionnement, inventaire physique, rapprochement de caisse).
- **Durcissement** : **PIN hachés** (PBKDF2) + **verrouillage** anti-force-brute,
**PWA installable** (écran de chargement), **sauvegarde/restauration** PostgreSQL.
- **Périphériques (§8)** : **ticket de vente imprimable** (PDF 57 mm), **scan
code-barres** au comptoir.
- **Suivi par appareil** : réutilisation des appareils connus du client, historique
par appareil, **alerte garantie** (même panne "`
— lu par les scripts et le backend (défaut `postgres` sinon).
### Démarrer la base + le backend
```powershell
cd backend\scripts
.\db.ps1 init # une seule fois : initialise le cluster + wal_level=logical
.\db.ps1 start # démarre Postgres sur localhost:5432
.\db.ps1 schema # applique le schéma + le seed sur la base 'bej'
# raccourci de relance (Postgres instable sur cette machine) :
.\restart-stack.ps1 # (re)démarre Postgres puis le backend de synchronisation
```
### Lancer l'app Flutter
```powershell
cd app
flutter pub get
flutter run -d chrome --web-port=5000 #
localhost
```
### Sauvegarde / r …