Skip to main content

Modelo de Base de Datos MongoDB

Este documento describe el esquema de base de datos MongoDB utilizado en la aplicación Vibra, organizado por categorías de dominio con descripciones detalladas de cada colección, sus campos, tipos de datos y relaciones.

Documentación completa del schema migrada desde model-schema-db.md

Colecciones por Categoría

Gestión de Usuarios

Users

CampoTipoDescripción
_idObjectIdClave primaria
nameStringNombre completo
emailStringCorreo electrónico
usernameStringNombre de usuario
passwordStringContraseña encriptada
roleObjectIdReferencia a Roles
companyObjectIdReferencia a Companies
isActiveBooleanEstado de la cuenta
deletedBooleanEliminación suave

Relaciones: Users → Roles (Muchos-a-Uno), Users → Companies (Muchos-a-Uno)

Roles

CampoTipoDescripción
_idObjectIdClave primaria
serialStringIdentificador único
nameStringNombre del rol
isSuperAdminBooleanAcceso superadmin
isActiveBooleanEstado del rol

Relaciones: Roles → Users (Uno-a-Muchos)

Actividades y Aprendizaje

Activities

CampoTipoDescripción
_idObjectIdClave primaria
titleStringTítulo de la actividad
typeStringTipo (reto, evento_personal, actividad_pares)
emotionsStringEmociones asociadas
difficultyIntNivel de dificultad
isActiveBooleanEstado de la actividad
gamesArrayConfiguraciones de juegos

Emotions

CampoTipoDescripción
_idObjectIdClave primaria
nameStringNombre de la emoción
descriptionStringDescripción detallada
iconoStringReferencia al icono

ActivityCompletion

CampoTipoDescripción
_idObjectIdClave primaria
participantIdObjectIdReferencia al participante
activityIdObjectIdReferencia a la actividad
scoreIntPuntaje obtenido
dateDateTimeFecha de finalización

Notificaciones

Notifications

CampoTipoDescripción
_idObjectIdClave primaria
titleStringTítulo
messageStringContenido
isReadBooleanLeída
priorityIntPrioridad

Permisos y Control de Acceso

Permissions

CampoTipoDescripción
_idObjectIdClave primaria
serialStringIdentificador único
nameStringNombre del permiso
descriptionStringDescripción
permissionCategoryStringCategoría del permiso

Organizaciones

Companies

CampoTipoDescripción
_idObjectIdClave primaria
nameStringNombre de la empresa
nitStringNIT
isActiveBooleanEstado

Courses

CampoTipoDescripción
_idObjectIdClave primaria
nameStringNombre del curso
hightSchoolStringReferencia a la institución

Diagrama de Relaciones

graph TD
Users --> Roles
Users --> Companies
Activities --> Emotions
ActivityCompletion --> Participants
ActivityCompletion --> Activities
Courses --> HightSchools

Respaldo y Restauración

# Generar copia
mongodump --db vibra_db --out /path/to/backup

# Restaurar
mongorestore --db vibra_db /path/to/backup/vibra_db