Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/amarcano568/pensionalamedida/llms.txt

Use this file to discover all available pages before exploring further.

Pensión a la Medida utiliza MySQL como motor de base de datos y gestiona el esquema completamente a través de las migraciones de Laravel. El esquema cubre la gestión de usuarios y permisos, el padrón de alumnos (importado desde Excel), el inventario de habitaciones, los registros de hospedaje, los grupos familiares y los movimientos económicos de pensiones.

Ejecutar migraciones

Con la base de datos MySQL creada y las variables DB_* correctamente configuradas en .env, ejecuta el siguiente comando para crear todas las tablas:
php artisan migrate
Para destruir y recrear el esquema completo desde cero (solo en desarrollo):
php artisan migrate:fresh

Archivos de migración disponibles

Los siguientes archivos en database/migrations/ definen el esquema base de la aplicación:
ArchivoTablas creadas
2014_10_12_000000_create_users_table.phpusers
2014_10_12_100000_create_password_resets_table.phppassword_resets
2019_08_19_000000_create_failed_jobs_table.phpfailed_jobs
2020_06_22_200411_create_permission_tables.phppermissions, roles, model_has_permissions, model_has_roles, role_has_permissions
Las tablas de permisos (permissions, roles, model_has_roles, model_has_permissions, role_has_permissions) son creadas por la migración de Spatie incluida en 2020_06_22_200411_create_permission_tables.php. Este paquete (spatie/laravel-permission ^3.13) se instala automáticamente vía Composer.

Tablas del sistema

El esquema completo de Pensión a la Medida incluye las siguientes tablas:
TablaDescripción
usersUsuarios del sistema con acceso a la interfaz de administración (login, email, contraseña hasheada).
alumnosPadrón completo de estudiantes importados. Es la tabla central del sistema.
alumnos_tmpTabla temporal utilizada durante el proceso de importación desde archivos Excel.
grupos_familiaresGrupos familiares vinculados a alumnos, con campos para padre, madre e hijos (separados por ``).
hijosHijos pertenecientes a grupos familiares, con referencia a grupos_familiares.
habitacionesInventario de habitaciones de la residencia universitaria.
hospedajesRegistro de hospedajes que relaciona un alumno con una habitación en un rango de fechas.
mobiliariosCatálogo de mobiliario disponible en la residencia.
trabajosCatálogo de tipos de trabajos o servicios ofrecidos.
trabajos_realizadosImputaciones de trabajos realizados por o para un alumno específico.
pensionesRegistro de pensiones, utilizado en el dashboard para métricas y control de pagos.
rolesRoles del sistema (ej. Administrator). Gestionado por Spatie Permission.
permissionsPermisos atómicos asignables a roles o directamente a usuarios.
model_has_rolesTabla pivote polimórfica que asigna roles a modelos Eloquent (principalmente User).
model_has_permissionsTabla pivote polimórfica que asigna permisos directamente a modelos.
role_has_permissionsTabla pivote que asocia permisos con roles.
La tabla alumnos_tmp se trunca en cada importación de Excel. No almacenes datos permanentes en ella; su único propósito es actuar como buffer durante el proceso de carga masiva de alumnos.

Alumnos: campos principales

El modelo App\Alumnos gestiona el padrón de estudiantes. Los campos del array $fillable son los siguientes:
ColumnaDescripción
numIdAlumnoIdentificador único del alumno (clave primaria).
strNombreNombre(s) del alumno.
strApellidosApellidos del alumno.
strCodigoExpedienteCódigo de expediente académico.
strDomicilioDirección de domicilio del alumno.
strPaisPaís de residencia.
strPoblacionLocalidad / municipio.
strProvinciaProvincia.
strTelefono1Teléfono principal.
strTelefono2Teléfono secundario.
strTelefonoMovilTeléfono móvil.
strNifNIF / número de identificación fiscal.
numTipoNifTipo de NIF (numérico).
strCodigoPostalCódigo postal.
strEMailCorreo electrónico del alumno.
strFotoRuta al archivo de foto del alumno.
strSexoSexo del alumno.
strNumeroSeguridadSocialNúmero de Seguridad Social.
blnVigenteBooleano: indica si el alumno está activo/vigente.
blnBajaBooleano: indica si el alumno está dado de baja.
blnEmagisterBooleano: indica si el alumno proviene de Emagister.
blnMatriculadoBooleano: indica si el alumno está actualmente matriculado.
fecFechaAltaFecha de alta en el sistema.
fecFechaNacimientoFecha de nacimiento.
fecFechaAltaCentroFecha de alta en el centro educativo.
numNivelEstudiosNivel de estudios (numérico).
numIdOrigenIdentificador de origen del alumno.
numIdProvinciaID de provincia (clave foránea).
numIdPaisID de país (clave foránea).
strPaisNacimientoPaís de nacimiento.
numIdPaisNacimientoID de país de nacimiento (clave foránea).
strProvinciaNacimientoProvincia de nacimiento.
numIdProvinciaNacimientoID de provincia de nacimiento (clave foránea).
strRutaNotasRuta al archivo de notas académicas del alumno.

Crear usuario administrador

Una vez completadas las migraciones, crea el primer usuario administrador usando Artisan Tinker:
php artisan tinker
Dentro del REPL de Tinker, ejecuta:
$user = App\User::create([
    'name' => 'Administrador',
    'email' => 'admin@example.com',
    'password' => Hash::make('password'),
]);
$user->assignRole('Administrator');
Reemplaza admin@example.com y password con las credenciales reales de tu instalación. El método assignRole('Administrator') es proporcionado por el trait HasRoles de Spatie Permission.

Build docs developers (and LLMs) love