Saltar al contenido principal

🎮 Entidades Relaciones Gamificadas

Modelo de dominio para plataforma de cursos con mecánicas de juego.

📋 Contexto​

La gamificación aumenta el engagement. Este modelo diseña un sistema completo con puntos, badges, logros y leaderboards.

🎯 Objetivo​

Diseñar modelo de dominio con:

  • Progresión del alumno
  • Sistema de evaluaciones
  • Mecánicas de juego (puntos, badges)
  • Leaderboards

📦 Alcance​

Incluye:

  • Núcleo académico (Courses, Lessons)
  • Evaluaciones (Quizzes, Challenges)
  • Gamificación (Badges, Points, Leaderboards)
  • Economía virtual (Wallets, Rewards)

🏛️ Modelo de Dominio​

Núcleo Académico​

EntidadRelacionesAtributos Clave
User1..Enrollments, 0.. Badgesid, name, email, timezone
Course1..Modules, 0.. Prerequisitescode, title, level, status
Module1..* Lessons, 1 Coursetitle, order
Lesson0..Quizzes, 0.. Challengestype, contentRef, order
Enrollment0..LessonProgress, 0.. Submissionsstatus, progressPercent

Evaluaciones​

EntidadDescripción
QuizEvaluación con preguntas, passingScore, attemptLimit
QuestionTipos: MULTIPLE_CHOICE, TRUE_FALSE, ORDERING
AttemptIntento de quiz con score y respuestas
ChallengeRetos tipo CODING, PROJECT, REFLECTION
SubmissionEntrega de challenge con auto/manual score

Gamificación​

EntidadPropósito
BadgeInsignias con rarity (COMMON/RARE/EPIC/LEGENDARY)
UserBadgeAsignación de badge a usuario
PointsAccountBalance de puntos (GLOBAL o por curso)
PointTransactionHistorial de ganancia/gasto
StreakRacha de actividad diaria
LeaderboardRanking por scope (GLOBAL/COURSE/WEEKLY)

Economía​

EntidadDescripción
CurrencyTipos: SOFT (ganado), HARD (comprado)
WalletBalance por usuario y currency
StoreItemItems canjeables
PurchaseTransacción de compra

🔄 Relaciones Principales​

User 1:N Enrollment N:1 Course
Course 1:N Module 1:N Lesson
Lesson 1:N Quiz 1:N Question
Lesson 1:N Challenge 1:N Submission
User 1:N UserBadge N:1 Badge
User 1:N PointsAccount 1:N PointTransaction

✅ Reglas de Negocio​

  • Un usuario no puede tener badges duplicados si son "unique"
  • Streak se rompe si no hay actividad en 24h
  • Leaderboards se recalculan diariamente
  • Challenges combinan auto-score + manual-score

📚 Referencias​