Une application interactive où l’utilisateur est plongé dans des situations réalistes (entretien d’embauche, conflit professionnel, dilemme éthique), et doit faire des choix influençant la suite de l’histoire. Ce projet a été réalisé dans le cadre d’un module full-stack mêlant Laravel (backend) et Vue.js (frontend).
- Backend : Laravel 11 (API RESTful)
- Frontend : Vue.js 3 + Vite
- Authentification : Laravel Sanctum
- Base de données : SQLite
- API communication : JSON
- Création de scénarios (
Scenario), étapes (Step) et choix (Option) - Authentification (register / login / logout / me)
- Middleware
auth:sanctumpour protéger les routes sensibles - Contrainte métier : un seul
is_start = truepar scénario - Endpoints versionnés (
/api/...) - Seeders avec 2 scénarios complets pré-remplis
- Réponses API claires avec codes HTTP appropriés
- Affichage de tous les scénarios disponibles
- Affichage du chapitre de départ (
is_start) - Navigation entre étapes selon les choix (relation dynamique)
- Affichage clair des options à chaque étape
- Navigation en temps réel sans rechargement
git clone https://github.com/votre-utilisateur/simulateur-decision.git
cd simulateur-decisioncd backend
# Installer les dépendances
composer install
# Copier l'exemple d'environnement
cp .env.example .env
# Générer la clé
php artisan key:generate
# Créer la base et migrer
php artisan migrate:fresh --seed
# Lancer le serveur local
php artisan serveAccès à l’API via :
http://127.0.0.1:8000/api
cd frontend
# Installer les dépendances
npm install
# Lancer le projet
npm run devAccès à l’interface :
http://localhost:5173
POST /api/register: créer un comptePOST /api/login: récupérer le tokenGET /api/scenarios: récupérer les scénarios disponiblesGET /api/scenarios/{id}: récupérer un scénario complet (steps + options)- Naviguer dynamiquement selon les relations entre étapes
- Première impression : un entretien d’embauche
- Le désaccord : une gestion de conflit professionnel
- Email :
[email protected] - Mot de passe :
password
backend/
├── app/
├── routes/api.php
├── database/seeders/ScenarioSeeder.php
frontend/
├── src/
│ ├── components/
│ ├── pages/
│ ├── composables/
│ └── App.vueProjet réalisé dans le cadre des cours de Développement de produit média et Web & Mobile UI (HEIG) – simulateur narratif à choix multiples. Usage académique uniquement.