bonpoint/docs/CAHIER_DES_CHARGES_APP_ANDROID.md
jmartin c4ebb5b2d8 Initialise le dépôt Bonpoint avec docs et prototype web.
Structure docs/, web/ (app Node existante) et mobile/ (placeholder Flutter).
2026-06-12 11:39:51 +02:00

290 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Cahier des charges — Bons Points (app Android commerciale)
**Version :** 0.2
**Date :** 9 juin 2026
**Statut :** Cadrage — produit public monétisé (pas usage famille seul)
---
## 1. Vision produit
### Objectif business
Publier sur le **Google Play Store** une application de **bons points** pour familles, **100 % locale** (pas de SaaS, pas de compte obligatoire), monétisée pour **générer des revenus** au-delà du coût du compte développeur (~25 €).
### Proposition de valeur (marketing)
> **« Vos bons points restent chez vous — zéro cloud, zéro compte, zéro données enfants sur nos serveurs. »**
Les données familiales (scores, historique, photos) vivent **uniquement sur le téléphone**. Seul un **mini site de redirection** (téléchargement / QR) peut exister côté serveur — sans accès au contenu familial.
### Ce nest PAS
- **PtitsPas** (`app.ptits-pas.fr`) — application pro garde denfants / collectivités (projet séparé, login, SaaS).
- Linstance familiale actuelle (Ariana, Pablo, Hélia) — elle sert de **prototype** et de source de règles par défaut, pas de produit final.
### Hors périmètre v1
- iOS (coût Mac + 99 €/an)
- OK Google / Nest / voix
- Synchronisation multi-téléphones en temps réel
- Comptes utilisateurs cloud (Firebase Auth, etc.)
---
## 2. Modèle économique
### Freemium (recommandé)
| | **Gratuit** | **Premium** (achat unique) |
|--|-------------|----------------------------|
| Enfants | **1 enfant** max | **Illimité** (ou plafond raisonnable, ex. 8) |
| Règles / récompenses | Pack par défaut + édition limitée | Édition complète, familles custom |
| Publicités | **Bandeau AdMob** (bas décran) | **Aucune pub** |
| Export sauvegarde | ✅ | ✅ |
| Historique | 30 derniers jours | Illimité |
| Prix cible | 0 € | **2,99 € 4,99 €** (achat in-app unique) |
*Chiffres à affiner après étude concurrence.*
### Publicité (AdMob)
- App ciblant **familles et enfants** → politique **Google Play Families** obligatoire.
- Pubs **taguées child-directed**, contenu **G** max, SDK Ads certifié Families.
- **Revenus pub faibles** sur ce segment ; lIAP « sans pub + multi-enfants » doit être le levier principal.
- **Pas de pub** dans lespace parent ni sur les écrans où lenfant dépense ses points (UX + conformité).
### Coûts récurrents
| Poste | Coût |
|-------|------|
| Compte Google Play | ~25 € une fois |
| Hébergement landing `/download` | ~0 € (page statique sur infra existante) |
| Backend données familiales | **0 €** |
| AdMob / Play Billing | Commission Google sur IAP (~15 %) |
### Seuil de rentabilité (ordre de grandeur)
- Coût fixe initial : ~25 € + temps de dev.
- À 3 € IAP net ~2,55 € : **~10 achats** pour couvrir le compte Play (hors temps).
- Les pubs seules nécessitent **très nombreuses** impressions (surtout en child-directed).
---
## 3. Utilisateurs cibles
| Profil | Besoin |
|--------|--------|
| **Parent** (acheteur décisionnaire) | Gérer points, règles, récompenses, corriger erreurs |
| **Enfant** | Voir score, historique, « boutique » |
| **Parent soucieux vie privée** | Pas de compte, pas de cloud — argument dachat |
**Marché initial :** France, français. Extension EU possible plus tard.
---
## 4. Parcours utilisateur (premier lancement)
Pas de login. À la première ouverture :
1. **Écran bienvenue** — promesse (local, privé, simple).
2. **Création du 1er enfant** — prénom, couleur, photo (galerie ou avatar).
3. **Choix du PIN parent** (obligatoire).
4. **Import règles par défaut** — pack « Maison & école » (~30 règles issues du prototype) ou départ vide.
5. **Tableau de bord** — prêt à lemploi.
Ensuite : ouverture directe sur le tableau de bord (PIN pour espace parent).
---
## 5. Fonctionnalités
### 5.1 MVP commercial (v1.0 — publication Play Store)
#### Tableau de bord
- Liste enfants (limité à 1 en gratuit ; badge « Passer à Premium » si ajout 2e enfant).
- Accès espace parent (PIN).
- Menu : réglages, export/import, premium, politique confidentialité.
#### Enfant
- Fiche : photo, score, historique, boutique.
- Plancher score à **0**.
#### Espace parent (PIN)
- Multi-sélection enfants (premium si >1 enfant).
- Grille règles par familles (édition en premium ; lecture + apply en gratuit).
- Historique + **annulation** de mouvement.
- Verrouillage auto après sortie de lécran parent.
#### Boutique
- Récompenses configurables (premium) ou pack défaut (gratuit).
#### Configuration (premium ou partiel gratuit)
- Ajouter / modifier / désactiver règles et récompenses.
- Ajouter enfants (premium au-delà du 1er).
- Changer PIN, couleurs, photos.
- **Export / import** sauvegarde JSON chiffrée (Google Drive, mail, fichier local).
#### Monétisation intégrée
- Bandeau AdMob (écrans autorisés uniquement).
- Écran achat Premium (Google Play Billing).
- Restauration achat sur nouveau téléphone.
#### Légal (obligatoire Play Store)
- Politique de confidentialité (URL statique).
- Mention « pas de collecte données enfants sur serveur ».
- Déclaration cible dâge Play Console (familles).
- CGU simplifiées si IAP.
### 5.2 v1.1+
- Widget Android (scores).
- Packs de règles thématiques (téléchargement embarqué, pas serveur).
- Statistiques locales pour parents (graphique semaine).
- Traduction anglais si traction FR.
### 5.3 Exclu
- Voix / assistant.
- Sync cloud entre parents.
- Réseau social, classements entre familles.
---
## 6. Règles métier (inchangées par rapport au prototype)
- Score entier, plancher **0**.
- Mouvement = trace de chaque action (règle, delta, date).
- Annulation = correction inverse (plancher respecté).
- Familles de règles : Maison, Routine, Fratrie, Respect, Écrans, Bonus (+ custom en premium).
*Référence données seed : `apps/bonpoint/src/db.js` (`REGLES_DEFAUT`, `RECOMPENSES_DEFAUT`).*
---
## 7. Architecture technique
| Couche | Choix |
|--------|--------|
| Framework | **Flutter** (UI rapide, Cursor-friendly, un codebase) |
| Base locale | **drift** ou **sqflite** (SQLite) |
| État | Riverpod ou Bloc |
| IAP | `in_app_purchase` |
| Pub | `google_mobile_ads` (Families-compliant) |
| Export | Fichier JSON + checksum ; option chiffrement AES (mot de passe parent) |
| PIN | Hash local (bcrypt / argon2 via package) |
### Réseau (minimal)
| Usage | Réseau | Données |
|-------|--------|---------|
| Usage quotidien app | **Non requis** | — |
| AdMob | Oui | Requêtes pub anonymisées (Families) |
| Play Billing | Oui | Transaction Google |
| Landing `bonpoint.ptits-pas.fr/download` | Oui | Redirection Play Store + compteur scans |
| Données familiales vers serveur | **Jamais** | — |
### Landing marketing (serveur léger)
- URL : `https://bonpoint.ptits-pas.fr/download` (ou sous-domaine dédié).
- QR code sur cartons → comptage scan → redirect fiche Play Store.
- **Aucune** donnée enfant ; analytics agrégés uniquement.
---
## 8. Distribution Play Store
### Compte développeur
- Compte **personnel** ou **organisation** (si structure Ptits Pas / micro-entreprise — *à trancher pour facturation IAP*).
### Avant publication publique (compte perso récent)
- **Test fermé** : minimum **12 testeurs** opt-in, **14 jours consécutifs**.
- Questionnaire « production access » rempli par Google.
- Prévoir recrutement testeurs (réseau, parents école, etc.) **avant** de viser la prod.
### Fiche Store
- Nom : **Bons Points** (ou **Bonpoint — Bons points famille** si conflit).
- Captures : tableau de bord, espace parent, boutique.
- Argument : **100 % hors ligne, privé, sans compte**.
---
## 9. Stratégie marketing (terrain)
| Canal | Action |
|-------|--------|
| **QR cartons** | Carton imprimé → `/download` → Play Store |
| **Bouche-à-oreille** | Enfants / parents décole (récré, WhatsApp parents) |
| **Différenciation** | Vie privée vs apps concurrentes cloud + abonnement |
| **Pas en v1** | Budget pub Facebook, influenceurs |
---
## 10. Concurrence & positionnement
Marché saturé dapps « chores / rewards / points ». Angles possibles :
1. **100 % local** — pas dabonnement mensuel.
2. **Français natif** — règles et UX pensées France.
3. **Prix bas** — IAP unique vs abonnements concurrents.
4. **Sans compte** — installation en 2 minutes.
*Étude concurrentielle à faire (23 apps FR/EN) avant finalisation pricing.*
---
## 11. Rapport avec le prototype web
| Élément | Décision |
|---------|----------|
| `bonpoint.ptits-pas.fr` | Devient **landing + redirect** ; app web famille optionnelle en maintenance |
| Code Node actuel | Source de vérité pour **règles par défaut** et **logique métier** ; pas porté tel quel |
| Dialogflow / Smart Home / Nest | **Abandonné** |
| Photos Ariana/Pablo/Hélia | Remplacées par avatars génériques dans lapp publique |
---
## 12. Planning indicatif
| Phase | Livrable | Durée estimée |
|-------|----------|---------------|
| **0** | Validation CDC v0.2 + étude concurrence + pricing | 1 semaine |
| **1** | Projet Flutter + BDD + onboarding + 1 enfant | 1 semaine |
| **2** | Espace parent, règles, mouvements, annulation | 1 semaine |
| **3** | Boutique, export/import, packs règles défaut | 1 semaine |
| **4** | AdMob + IAP + écran premium | 1 semaine |
| **5** | Légal, polish, tests, test fermé 14 j | 2 semaines |
| **6** | Landing QR + cartons + demande prod Play | 1 semaine |
**Total indicatif :** 78 semaines à temps partiel.
---
## 13. Critères dacceptation v1.0
- [ ] Onboarding sans compte ; 1er enfant créé en < 3 min
- [ ] Gratuit : 1 enfant, pub visible, pack règles défaut utilisable
- [ ] Premium : achat débloque multi-enfants + sans pub + édition complète
- [ ] 100 % fonctionnel en mode avion (hors pub et achat)
- [ ] Export puis import sur autre téléphone = données identiques
- [ ] Conformité Families (pubs G, pas de tracking enfant)
- [ ] Politique confidentialité accessible depuis lapp
- [ ] Test fermé 12×14 j validé avant prod
---
## 14. Points encore à trancher
| # | Question | Options |
|---|----------|---------|
| 1 | **Nom marque Play Store** | Bons Points / Bonpoint / autre |
| 2 | **Prix IAP** | 2,99 / 3,99 / 4,99 |
| 3 | **Limite enfants premium** | Illimité / 6 / 8 |
| 4 | **Compte Play** | Perso / société (micro-entreprise) |
| 5 | **Édition règles en gratuit** | Lecture seule / 5 règles custom |
| 6 | **Historique gratuit** | 30 j / 50 mouvements / illimité |
| 7 | **Landing** | Garder `bonpoint.ptits-pas.fr` / nouveau domaine |
| 8 | **Quand arrêter le site web actuel** | Dès v1 / après traction app |
---
## 15. Prochaine étape
1. Valider ce CDC v0.2 (prix IAP, limites gratuit/premium).
2. Faire une **mini étude concurrence** (3 apps, leurs prix).
3. Créer le repo Flutter `bonpoint-app` et lonboarding.
4. En parallèle : ouvrir compte Play + préparer liste des 12 testeurs.
---
*v0.1 → v0.2 : pivot produit public monétisé (freemium + AdMob + IAP), stack Flutter, landing QR conservée.*