# Story 4.9: Challenge post-formulaire Status: ready-for-dev ## Story As a visiteur ayant envoyé un message, I want m'amuser en attendant la réponse, so that le temps d'attente est transformé en moment de jeu. ## Acceptance Criteria 1. **Given** le formulaire de contact a été envoyé avec succès **When** la confirmation s'affiche **Then** un message "En attendant que le développeur retrouve le chemin vers sa boîte mail..." est affiché 2. **And** un challenge optionnel bonus est proposé 3. **And** le challenge est différent du challenge principal (mini-jeu, quiz, exploration) 4. **And** le visiteur peut fermer et quitter à tout moment 5. **And** la participation est totalement optionnelle 6. **And** le résultat n'impacte rien (juste pour le fun) 7. **And** le narrateur commente avec humour ## Tasks / Subtasks - [ ] **Task 1: Créer la page challenge-bonus** (AC: #1, #2, #4) - [ ] Créer `frontend/app/pages/challenge-bonus.vue` - [ ] Message d'attente humoristique - [ ] Présentation du mini-jeu - [ ] Bouton "Quitter" visible en permanence - [ ] **Task 2: Concevoir le mini-jeu** (AC: #3, #6) - [ ] Quiz sur le développement web (5 questions) - [ ] OU : Memory avec des technos (Vue, Laravel, TypeScript, etc.) - [ ] OU : Snake simplifié thème code - [ ] Résultat juste pour le fun, pas de récompense - [ ] **Task 3: Créer le composant BonusQuiz** (AC: #3) - [ ] 5 questions aléatoires sur le dev - [ ] Choix multiples (4 options) - [ ] Feedback immédiat (correct/incorrect) - [ ] Score à la fin - [ ] **Task 4: Commentaires du narrateur** (AC: #7) - [ ] Message d'intro humoristique - [ ] Réactions aux réponses - [ ] Message de fin selon le score - [ ] **Task 5: Navigation de sortie** (AC: #4, #5) - [ ] Bouton "Retour à l'accueil" visible - [ ] Confirmation que le message est envoyé - [ ] Remerciement final - [ ] **Task 6: Tests et validation** - [ ] Tester le quiz complet - [ ] Vérifier que le résultat n'impacte rien - [ ] Tester la sortie à tout moment ## Dev Notes ### Page challenge-bonus.vue ```vue ``` ### Composant BonusQuiz ```vue ``` ### Clés i18n **fr.json :** ```json { "bonus": { "exit": "Quitter", "waitingTitle": "Message envoyé !", "waitingMessage": "En attendant que le développeur retrouve le chemin vers sa boîte mail... un petit quiz pour passer le temps ?", "playQuiz": "Jouer au quiz", "noThanks": "Non merci, j'ai terminé", "question": "Question", "correct": "Bonne réponse ! 🎉", "incorrect": "Pas tout à fait... 😅", "resultTitle": "Quiz terminé !", "perfectMessage": "Score parfait ! Tu connais vraiment bien le développement web... et Célian !", "goodMessage": "Bien joué ! Tu as de bonnes bases en développement web.", "tryMessage": "Continue d'apprendre ! Le développement web est un voyage sans fin.", "playAgain": "Rejouer", "backHome": "Retour à l'accueil", "messageConfirm": "Ton message a bien été envoyé. Célian te répondra bientôt !" } } ``` **en.json :** ```json { "bonus": { "exit": "Exit", "waitingTitle": "Message sent!", "waitingMessage": "While the developer finds their way to the inbox... a little quiz to pass the time?", "playQuiz": "Play the quiz", "noThanks": "No thanks, I'm done", "question": "Question", "correct": "Correct! 🎉", "incorrect": "Not quite... 😅", "resultTitle": "Quiz completed!", "perfectMessage": "Perfect score! You really know web development... and Célian!", "goodMessage": "Well done! You have solid web development basics.", "tryMessage": "Keep learning! Web development is an endless journey.", "playAgain": "Play again", "backHome": "Back to home", "messageConfirm": "Your message was sent successfully. Célian will reply soon!" } } ``` ### Dépendances **Cette story nécessite :** - Story 4.8 : Page contact (redirection après envoi) - Story 3.3 : useNarrator **Cette story prépare pour :** - Aucune (dernière story de l'Epic 4) ### Project Structure Notes **Fichiers à créer :** ``` frontend/app/ ├── pages/ │ └── challenge-bonus.vue # CRÉER └── components/feature/ └── BonusQuiz.vue # CRÉER ``` **Fichiers à modifier :** ``` frontend/i18n/fr.json # AJOUTER bonus.* frontend/i18n/en.json # AJOUTER bonus.* ``` ### References - [Source: docs/planning-artifacts/epics.md#Story-4.9] - [Source: docs/planning-artifacts/ux-design-specification.md#Bonus-Challenge] - [Source: docs/brainstorming-gamification-2026-01-26.md#Post-Contact] ### Technical Requirements | Requirement | Value | Source | |-------------|-------|--------| | Type de mini-jeu | Quiz (5 questions) | Décision technique | | Impact sur progression | Aucun | Epics | | Sortie | Toujours possible | Epics | | Ambiance | Humoristique | Epics | ## Dev Agent Record ### Agent Model Used {{agent_model_name_version}} ### Debug Log References ### Completion Notes List ### Change Log | Date | Change | Author | |------|--------|--------| | 2026-02-04 | Story créée avec contexte complet | SM Agent | ### File List