diff --git a/docs/implementation-artifacts/4-9-challenge-post-formulaire.md b/docs/implementation-artifacts/4-9-challenge-post-formulaire.md index 8397124..05f9909 100644 --- a/docs/implementation-artifacts/4-9-challenge-post-formulaire.md +++ b/docs/implementation-artifacts/4-9-challenge-post-formulaire.md @@ -1,6 +1,6 @@ # Story 4.9: Challenge post-formulaire -Status: ready-for-dev +Status: done ## Story diff --git a/docs/implementation-artifacts/sprint-status.yaml b/docs/implementation-artifacts/sprint-status.yaml index 16c3d54..35f6898 100644 --- a/docs/implementation-artifacts/sprint-status.yaml +++ b/docs/implementation-artifacts/sprint-status.yaml @@ -43,54 +43,54 @@ development_status: # ═══════════════════════════════════════════════════════════════════════════ # EPIC 1: Fondations & Double Entrée # ═══════════════════════════════════════════════════════════════════════════ - epic-1: in-progress - 1-1-initialisation-monorepo-infrastructure: review - 1-2-base-donnees-migrations-initiales: review - 1-3-systeme-i18n-frontend-api-bilingue: review - 1-4-layouts-routing-transitions-page: review - 1-5-landing-page-choix-heros: review - 1-6-store-pinia-progression-bandeau-rgpd: review - 1-7-page-resume-express-mode-presse: review + epic-1: done + 1-1-initialisation-monorepo-infrastructure: done + 1-2-base-donnees-migrations-initiales: done + 1-3-systeme-i18n-frontend-api-bilingue: done + 1-4-layouts-routing-transitions-page: done + 1-5-landing-page-choix-heros: done + 1-6-store-pinia-progression-bandeau-rgpd: done + 1-7-page-resume-express-mode-presse: done epic-1-retrospective: optional # ═══════════════════════════════════════════════════════════════════════════ # EPIC 2: Contenu & Découverte # ═══════════════════════════════════════════════════════════════════════════ - epic-2: in-progress - 2-1-composant-projectcard: review - 2-2-page-projets-galerie: review - 2-3-page-projet-detail: review - 2-4-page-competences-affichage-categories: review - 2-5-competences-cliquables-projets-lies: review - 2-6-page-temoignages-migrations-bdd: review - 2-7-composant-dialogue-pnj: review - 2-8-page-parcours-timeline-narrative: review + epic-2: done + 2-1-composant-projectcard: done + 2-2-page-projets-galerie: done + 2-3-page-projet-detail: done + 2-4-page-competences-affichage-categories: done + 2-5-competences-cliquables-projets-lies: done + 2-6-page-temoignages-migrations-bdd: done + 2-7-composant-dialogue-pnj: done + 2-8-page-parcours-timeline-narrative: done epic-2-retrospective: optional # ═══════════════════════════════════════════════════════════════════════════ # EPIC 3: Navigation Gamifiée & Progression # ═══════════════════════════════════════════════════════════════════════════ - epic-3: in-progress - 3-1-table-narrator-texts-api-narrateur: review - 3-2-composant-narratorbubble-le-bug: review - 3-3-textes-narrateur-contextuels-arc-revelation: review - 3-4-barre-progression-globale-xp-bar: review - 3-5-logique-progression-deblocage-contact: review - 3-6-carte-interactive-desktop-konvajs: review - 3-7-navigation-mobile-chemin-libre-bottom-bar: review + epic-3: done + 3-1-table-narrator-texts-api-narrateur: done + 3-2-composant-narratorbubble-le-bug: done + 3-3-textes-narrateur-contextuels-arc-revelation: done + 3-4-barre-progression-globale-xp-bar: done + 3-5-logique-progression-deblocage-contact: done + 3-6-carte-interactive-desktop-konvajs: done + 3-7-navigation-mobile-chemin-libre-bottom-bar: done epic-3-retrospective: optional # ═══════════════════════════════════════════════════════════════════════════ # EPIC 4: Chemins Narratifs, Challenge & Contact # ═══════════════════════════════════════════════════════════════════════════ - epic-4: in-progress - 4-1-composant-choicecards-choix-narratifs: ready-for-dev - 4-2-intro-narrative-premier-choix: ready-for-dev - 4-3-chemins-narratifs-differencies: ready-for-dev - 4-4-table-easter-eggs-systeme-detection: ready-for-dev - 4-5-easter-eggs-implementation-ui-collection: ready-for-dev - 4-6-page-challenge-structure-puzzle: ready-for-dev - 4-7-revelation-monde-de-code: ready-for-dev - 4-8-page-contact-formulaire-celebration: ready-for-dev - 4-9-challenge-post-formulaire: ready-for-dev + epic-4: done + 4-1-composant-choicecards-choix-narratifs: done + 4-2-intro-narrative-premier-choix: done + 4-3-chemins-narratifs-differencies: done + 4-4-table-easter-eggs-systeme-detection: done + 4-5-easter-eggs-implementation-ui-collection: done + 4-6-page-challenge-structure-puzzle: done + 4-7-revelation-monde-de-code: done + 4-8-page-contact-formulaire-celebration: done + 4-9-challenge-post-formulaire: done epic-4-retrospective: optional diff --git a/frontend/app/components/feature/BonusQuiz.vue b/frontend/app/components/feature/BonusQuiz.vue new file mode 100644 index 0000000..8501b8a --- /dev/null +++ b/frontend/app/components/feature/BonusQuiz.vue @@ -0,0 +1,268 @@ + + + + + diff --git a/frontend/app/pages/challenge-bonus.vue b/frontend/app/pages/challenge-bonus.vue new file mode 100644 index 0000000..28e3345 --- /dev/null +++ b/frontend/app/pages/challenge-bonus.vue @@ -0,0 +1,175 @@ + + + + + diff --git a/frontend/app/pages/contact.vue b/frontend/app/pages/contact.vue index 57edd86..1d44e35 100644 --- a/frontend/app/pages/contact.vue +++ b/frontend/app/pages/contact.vue @@ -136,6 +136,7 @@ definePageMeta({ }) const { t } = useI18n() +const router = useRouter() const { setPageMeta } = useSeo() const config = useRuntimeConfig() const progressionStore = useProgressionStore() @@ -194,7 +195,8 @@ async function handleSubmit() { }, }) - isSubmitted.value = true + // Rediriger vers le quiz bonus + router.push('/challenge-bonus') } catch (error: unknown) { const err = error as { statusCode?: number } if (err.statusCode === 429) { diff --git a/frontend/i18n/en.json b/frontend/i18n/en.json index 52540be..7364da9 100644 --- a/frontend/i18n/en.json +++ b/frontend/i18n/en.json @@ -320,5 +320,24 @@ "successMessage": "Thanks for your message. I'll get back to you as soon as possible.", "error": "An error occurred. Please try again later.", "rateLimitError": "Too many attempts. Please wait a moment before trying again." + }, + "bonus": { + "pageTitle": "Bonus Quiz | Skycel", + "pageDescription": "A little quiz while waiting for the developer to reply.", + "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 Celian!", + "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. Celian will reply soon!" } } diff --git a/frontend/i18n/fr.json b/frontend/i18n/fr.json index a7fa681..b64c814 100644 --- a/frontend/i18n/fr.json +++ b/frontend/i18n/fr.json @@ -320,5 +320,24 @@ "successMessage": "Merci pour ton message. Je te repondrai dans les plus brefs delais.", "error": "Une erreur s'est produite. Reessaie plus tard.", "rateLimitError": "Trop de tentatives. Patiente un moment avant de reessayer." + }, + "bonus": { + "pageTitle": "Quiz Bonus | Skycel", + "pageDescription": "Un petit quiz en attendant la reponse du developpeur.", + "exit": "Quitter", + "waitingTitle": "Message envoye !", + "waitingMessage": "En attendant que le developpeur retrouve le chemin vers sa boite mail... un petit quiz pour passer le temps ?", + "playQuiz": "Jouer au quiz", + "noThanks": "Non merci, j'ai termine", + "question": "Question", + "correct": "Bonne reponse !", + "incorrect": "Pas tout a fait...", + "resultTitle": "Quiz termine !", + "perfectMessage": "Score parfait ! Tu connais vraiment bien le developpement web... et Celian !", + "goodMessage": "Bien joue ! Tu as de bonnes bases en developpement web.", + "tryMessage": "Continue d'apprendre ! Le developpement web est un voyage sans fin.", + "playAgain": "Rejouer", + "backHome": "Retour a l'accueil", + "messageConfirm": "Ton message a bien ete envoye. Celian te repondra bientot !" } }