Aller au contenu
Studeia Docs
AI-assisted translation — last updated 2026-06-03. For original (pt-BR or en-US), use the language switcher.

Gamification native : XP, badges, leaderboards, contests, rewards

Gamification Studeia : moteur XP hiérarchique, 11 critères de badge AND/OR, OB 3.0, leaderboards Redis (cours/groupe, weekly/monthly), contests 7 métriques, boutique de récompenses avec coins et agent IA

Par Équipe Studeia 2026-06-03 7 min
Resposta curta

La gamification native de Studeia augmente l'engagement et le taux de complétion : XP configurable par cours, badges automatiques (compatibles Open Badges 3.0 ; signature cryptographique dans la roadmap), classements par groupe et par période, contests, boutique de récompenses avec monnaies et même un agent IA qui aide l'admin à construire sa stratégie par chat. Tout est intégré au portail parents et aux automations, pour récompenser les étapes clés sans travail manuel.

Modèle

TenantGamificationConfig (XP rules, level thresholds, features)
  └── CourseGamificationConfig (override per-course)

UserGamificationProfile (totalXp, currentLevel, currentStreakDays, coins)
  ├── XpLog (chaque XP earned avec source)
  ├── UserBadge[]
  ├── ContestParticipant[]
  └── RewardRedemption[]

Moteur XP

XP earned par activité. Configuration dans xpRules JSON :

{
  "lessonComplete": 50,
  "quizPass": 30,
  "quizPassFirstTry": 50,
  "assignmentSubmit": 40,
  "forumPostCreate": 10,
  "forumReplyCreate": 5,
  "chatTutorMessage": 2,
  "liveClassJoin": 20,
  "dailyLogin": 5,
  "streakBonus": [
    { "days": 7, "bonus": 100 },
    { "days": 30, "bonus": 500 }
  ]
}

handleGamificationEvent() intégré dans 7 routes (lesson complete, quiz, chat tutor, forum post/reply, live class join, assignment submit).

Niveaux

Seuils configurables (défaut : niveau N = 100 × N²) :

Niveau 1 : 0 XP
Niveau 2 : 100 XP
Niveau 3 : 400 XP
Niveau 4 : 900 XP
Niveau 5 : 1600 XP
...

La montée de niveau déclenche l'événement level_up (automation) + notification push (mobile). L'événement badge_earned est émis lorsqu'un badge est attribué.

Badges

11 types de critères avec logique booléenne AND/OR :

CritèreDéclencheur
lesson_countN leçons complétées
module_countN modules complétés
course_countN cours complétés
xp_thresholdXP >= N
streak_daysstreak de N jours
mastery_avgmoyenne de mastery >= X
quiz_perfect_countN quiz à 100%
forum_post_countN posts dans le forum
study_minutesN minutes d'étude
badge_collectionensemble de badges obtenu
compoundrègles AND/OR imbriquées

Critères composés (AND/OR, profondeur max 3) :

{
  "logic": "AND",
  "rules": [
    { "type": "quiz_perfect_count", "value": 3 },
    {
      "logic": "OR",
      "rules": [
        { "type": "streak_days", "value": 7 },
        { "type": "mastery_avg", "value": 0.9 }
      ]
    }
  ]
}

Les badges manuels utilisent criteriaType=manual et peuvent être attribués par des enseignants/admins autorisés ; manual n'est pas un type de critère automatique.

Open Badges 3.0

Un badge obtenu crée un UserBadge avec une page publique :

  • /badges/verify/[userBadgeId] (sans authentification)
  • /api/badges/verify/[userBadgeId] retourne un JSON-LD compatible avec Open Badges 3.0 (modèle de données W3C VC)
  • Schema.org EducationalOccupationalCredential pour la découverte sur Google/LinkedIn
  • Authenticité vérifiée par l'URL/API publique + enregistrement de la plateforme. Signature/proof cryptographique et bouton natif LinkedIn pas encore implémentés (roadmap) ; partage manuel via URL

Leaderboards

Redis ZSET (sorted sets) pour les performances :

ZADD leaderboard:tenant:{tenantId}:scope:course:{courseId}:window:weekly {xp} {userId}
ZADD leaderboard:tenant:{tenantId}:scope:class:{classId}:window:alltime {xp} {userId}

Portées : course, class_group. Fenêtres : alltime, weekly, monthly.

Mode anonyme : l'apprenant apparaît comme « Apprenant #42 » (config par tenant).

Contests

Cycle de vie : draft → active → ended (cron auto-start/end).

7 métriques :

  1. xp_earned (XP total sur la période)
  2. lessons_completed
  3. quizzes_passed
  4. avg_quiz_score
  5. study_minutes
  6. forum_posts
  7. badges_earned

Configurable : portée (course/class/tenant), date de début/fin, prix (rewards).

Boutique de récompenses

Catalogue de récompenses virtuelles. L'apprenant dépense des coins (accumulés via XP) :

  • certificate_template — diplôme stylisé
  • profile_customization — avatar/bordure
  • badge_special — badge unique
  • virtual_item — sticker, couleur de nom, etc.

Remboursement atomique (anti-condition de course). Remboursement automatique si l'admin refuse.

Agent IA de gamification

L'admin peut créer/gérer la gamification via chat :

"Crée 5 badges pour mon cours de Mathématiques en mettant l'accent sur
la régularité (streaks) et la maîtrise (>= 80% de réussite). Bonus pour
les apprenants qui aident dans le forum."

19 outils (CRUD badges/contests/rewards, config XP, analytics, attribution manuelle). Boucle tool_use max 15 itérations.

L'agent de Gamification (IA) permet de créer des badges, des contests et des rewards via chat.

Rapports parents

Gamification intégrée dans packages/core/src/monitoring/advanced-reports.ts :

  • StudentReport inclut XP, niveau, badges récents, streak
  • Le portail parents affiche une section « Succès » avec une grille de badges + compteur de streak
  • Le rapport LLM mentionne les succès : « Marie a complété 3 cours et obtenu 5 badges ce mois-ci »

Voir aussi

FAQ

Studeia dispose-t-elle d'une gamification native ?

Oui, complète. XP par activité (configuration hiérarchique tenant→cours), niveaux configurables, badges avec 11 critères automatiques (composés AND/OR), leaderboards Redis ZSET avec portée cours ou groupe et fenêtres weekly/monthly/alltime, contests avec 7 métriques, boutique de récompenses avec monnaies virtuelles. Plus un agent IA dédié pour que l'admin crée sa stratégie via chat.

Les badges suivent-ils la norme Open Badges ?

Oui. Les badges sont exportés en JSON-LD compatible avec Open Badges 3.0 (modèle de données W3C Verifiable Credential). Chaque UserBadge dispose d'une page publique sur /badges/verify/[userBadgeId] et d'une API JSON-LD sur /api/badges/verify/[userBadgeId], avec schema.org EducationalOccupationalCredential pour la découverte sur Google/LinkedIn. L'authenticité est vérifiée par l'URL/API publique et par l'enregistrement de la plateforme. La signature/proof cryptographique et le bouton natif LinkedIn « Add to Profile » sont dans la roadmap ; aujourd'hui le partage sur LinkedIn est manuel via l'URL publique.

Comment configurer les XP par leçon complétée ?

Tenant Settings > Gamification > XP Rules. Chaque activité a un XP de base (lessonComplete : 50, quizPass : 30, etc.). Un cours peut effectuer un override (CourseGamificationConfig). Bonus pour streak journalière, première fois, difficulté, etc.

Puis-je désactiver la gamification dans un cours ?

Oui. CourseGamificationConfig.enabled=false. La barre latérale de l'apprenant masque « Gamification » si l'apprenant n'a pas de cours actif avec la gamification activée. La sous-navigation du cours masque l'onglet « Gamification » pour les cours spécifiques avec le flag désactivé.

Veja tambem

Gamification native : XP, badges, leaderboards, contests, rewards