290 lines
11 KiB
Markdown
290 lines
11 KiB
Markdown
# 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 n’est PAS
|
||
- **P’titsPas** (`app.ptits-pas.fr`) — application pro garde d’enfants / collectivités (projet séparé, login, SaaS).
|
||
- L’instance 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 ; l’IAP « sans pub + multi-enfants » doit être le levier principal.
|
||
- **Pas de pub** dans l’espace parent ni sur les écrans où l’enfant 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 d’achat |
|
||
|
||
**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 à l’emploi.
|
||
|
||
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 P’tits 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é d’apps « chores / rewards / points ». Angles possibles :
|
||
|
||
1. **100 % local** — pas d’abonnement 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 (2–3 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 l’app 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 :** 7–8 semaines à temps partiel.
|
||
|
||
---
|
||
|
||
## 13. Critères d’acceptation 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 l’app
|
||
- [ ] 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 l’onboarding.
|
||
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.*
|