Files
portfolio/formation.md
T
kayjaydee 7970bcc0fd feat(auth): scaffold auth pages and guards
- Add Pinia auth store, types, and auth service (mocked)
- Add login/register/verify/forgot password views and dashboard
- Add reusable auth UI components (card, inputs, buttons)
- Add router guards and protected routing wiring
- Disable vue devtools plugin by default to avoid Node localStorage crash
- Update dependencies for cookie handling
- Comment out Umami script in index.html

Made-with: Cursor
2026-04-07 22:43:41 +02:00

180 lines
5.7 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.
Parfait Killian. Voici **tous les prompts structurés bloc par bloc** pour développer ta **plateforme de formation ultra sécurisée avec abonnement Stripe, cours vidéo/textes, exercices exécutables, progression, etc.** dans Cursor.
Chaque bloc est indépendant et peut être copié-collé dans Cursor directement pour guider la création pas à pas.
---
**🧱 Bloc 1 Authentification sécurisée (frontend uniquement)**
```
Tu crées une plateforme de formation avec cours vidéo/textes, exercices interactifs, paiement par abonnement via Stripe, progression personnalisée et haut niveau de sécurité.
Commence par créer lauthentification côté frontend (Vue 3 + TypeScript).
Fonctionnalités :
- Inscription (email, mot de passe, plan choisi — non fonctionnel pour linstant)
- Connexion avec token (JWT ou cookie, à simuler)
- Déconnexion
- Mot de passe oublié
- Vérification demail (page après inscription)
Implémente :
- un store Pinia `useAuthStore`
- une couche `authService.ts` avec appels mockés
- des vues `LoginView`, `RegisterView`, `ForgotPasswordView`
- composants UI réutilisables pour formulaire
- navigation protégée (route guards)
```
---
**🧱 Bloc 2 Intégration Stripe (paiement + plans)**
```
Ajoute le système de paiement mensuel avec Stripe.
Fonctionnalités :
- Plans dabonnement multiples (mensuel, annuel, premium, etc.)
- Paiement sécurisé via Stripe Checkout ou Billing Portal
- Stockage du statut de souscription côté backend
- Accès conditionnel aux cours selon le plan
Frontend :
- Crée une page "Plans" avec boutons "Sabonner"
- Intègre Stripe.js et redirige vers Checkout
- Gère le retour de paiement via `success_url` / `cancel_url`
Backend (simulé ou prêt pour implémentation future) :
- Création dun client Stripe à linscription
- Webhooks Stripe pour gérer statut de paiement
```
---
**🧱 Bloc 3 Architecture des cours (textes + vidéos + code)**
```
Crée la structure dun cours dans le système.
Fonctionnalités :
- Un cours contient plusieurs chapitres
- Un chapitre contient des leçons (texte, vidéo, exercices)
- Une leçon contient du contenu markdown + vidéo + zone de code
Modèle (à représenter en TypeScript dans frontend pour linstant) :
- Course: id, title, description, cover, plan_required
- Chapter: id, course_id, title, position
- Lesson: id, chapter_id, title, content (markdown), video_url, exercise_type
Crée les vues :
- `CourseOverview.vue` pour explorer un cours
- `LessonViewer.vue` avec affichage markdown + vidéo + éditeur de code
```
---
**🧱 Bloc 4 Progression utilisateur dans les cours**
```
Crée un système pour suivre la progression individuelle de lutilisateur.
Fonctionnalités :
- Chaque utilisateur peut suivre plusieurs cours
- Chaque leçon peut être marquée comme complétée
- Affichage de la progression dans le cours (ex: 4/10 leçons terminées)
- Synchronisé avec le backend (mocké pour linstant)
Implémente :
- Un store Pinia `useProgressStore`
- Une structure : { user_id, course_id, completed_lessons: [lesson_ids] }
- Affiche des badges de progression dans lUI
```
---
**🧱 Bloc 5 Éditeur de code avec exécution sandboxée**
```
Ajoute une zone dexécution de code dans certaines leçons (exercices interactifs).
Fonctionnalités :
- Zone d’édition avec CodeMirror ou Monaco Editor
- Bouton "Exécuter"
- Envoi du code à une API dexécution (Docker, VM, ou service type Piston ou Playground)
- Récupération de loutput stdout/stderr
Commence avec un backend mocké (`codeRunnerService.ts`) qui renvoie une sortie simulée, prêt à être branché sur un vrai moteur plus tard.
UI :
- Composant `CodeExercise.vue` avec éditeur + output + reset
- Validation des exercices dans la progression si output match attendu
```
---
**🧱 Bloc 6 Sécurité avancée & protection des routes**
```
Implémente une sécurité frontend renforcée.
Fonctionnalités :
- Redirection automatique si token expiré
- Accès conditionnel selon abonnement (plan actif ou non)
- Navigation dynamique : masquer les cours inaccessibles
Ajoute :
- Middleware de navigation Vue Router pour bloquer laccès aux routes protégées
- Contrôle daccès par rôle/plan dans `authStore`
- Méthodes helpers comme `canAccess(course)` ou `hasPlan(planName)`
```
---
**🧱 Bloc 7 Tableau de bord utilisateur (dashboard)**
```
Crée un dashboard utilisateur avec :
- Cours suivis et progression
- Plan actuel et facturation
- Historique des paiements (via Stripe si connecté)
- Accès aux paramètres de compte
Crée la vue `DashboardView.vue` avec :
- Composants `UserCourses.vue`, `BillingInfo.vue`, `AccountSettings.vue`
- Requêtes via les stores et services simulés
```
---
**🧱 Bloc 8 Administration des cours (interface admin)**
```
Crée une interface pour que ladministrateur puisse :
- Créer, modifier, supprimer des cours
- Ajouter des chapitres, leçons, vidéos, exercices
Crée la vue `AdminCoursesView.vue` avec :
- Liste des cours avec boutons daction
- Formulaires dynamiques pour ajouter chapitre/leçon
- Éditeur markdown intégré + upload vidéo
Utilise Pinia ou un store temporaire pour gérer les états du formulaire.
```
---
**🧱 Bloc 9 Gestion des erreurs et UX propre**
```
Ajoute une UX propre et robuste :
- Toasts pour succès/erreurs
- Indicateurs de chargement dans tous les appels API
- Pages 404 / 403 / erreur serveur
- Fallbacks pour vidéos, markdown, et éditeur de code
Ajoute un composable `useToast.ts` pour centraliser l'affichage des messages et erreurs.
```
---
Souhaites-tu que je taide à écrire le backend ou les services API de ces blocs en parallèle ? (Rails, Node.js, autre ?)