Skip to content

Wagle-Studio/leveling

Repository files navigation

Leveling

API Symfony pour gérer des parcours de progression personnels (domaine → branche → compétence → objectif → étape) et déclencher des scénarios d’accompagnement générés par OpenAI.

⚠️ Projet en cours (WIP), l’API et les endpoints peuvent encore évoluer.

🐘 PHP 8.3 · 🎼 Symfony 7.3 · 🗃️ PostgreSQL 16 · 🐳 Docker Compose · 🌐 Nginx · 📫 Mailpit · 🛠️ Adminer · 🤖 OpenAI (gpt-5-mini)

Fonctionnalités

  • CRUD JSON sur domaines, branches, compétences, objectifs et étapes.
  • Découverte de compétences à partir d’un message libre (/api/progression/skill/discover).
  • Génération de plans d’apprentissage pour un objectif via la file de jobs Messenger (/api/progression/portal/open/{objective_id}).
  • Génération de scènes narratives autour d’une étape (/api/progression/quest/open/{step_id}).
  • File interne QueueJob avec persistance en base et reprise automatique des échecs.
  • Jeux de données de démo (santé, créativité…) disponibles via les fixtures.

Stack technique

  • PHP 8.3 · Symfony 7.3 (Doctrine ORM, Serializer/ObjectMapper, Validator, Messenger)
  • Base PostgreSQL 16 + migrations Doctrine
  • Docker Compose : PHP-FPM, Nginx (8000), Postgres (5432), Mailpit (8025/1025), Adminer (8080)
  • Provider IA : openai-php/client (modèle gpt-5-mini)
  • Tests : PHPUnit · Zenstruck Foundry pour les fixtures

Installation

Prérequis : Docker et Docker Compose.

cp .env .env.local
# Adapter DATABASE_URL sur le service "database" (admin / 123456 / leveling)
# Renseigner OPENAI_API_KEY pour activer les scénarios IA
docker compose up --build -d
docker compose exec app php bin/console doctrine:migrations:migrate --no-interaction
# Optionnel : charger les données de démonstration
docker compose exec app php bin/console doctrine:fixtures:load --no-interaction

Points d’accès :

API en bref

  • Authentification basique : POST /api/auth/register.
  • Référentiels : /api/domains, /api/domains/{id}/branches, /api/branches/{id}/skills, /api/skills/{id}/objectives, /api/objectives/{id}/steps (CRUD).
  • Scénarios de progression : portal open et quest open en file async, skill discover en direct.
  • Données d’exemple : src/Fixtures/Story/DevStoryData.json si les fixtures sont chargées.

About

🏗️ Work In Progress API Symfony pour structurer des parcours de progression, avec scénarios OpenAI orchestrés via Messenger

Topics

Resources

Stars

Watchers

Forks

Contributors