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.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.
Ejecutar migraciones
Con la base de datos MySQL creada y las variablesDB_* correctamente configuradas en .env, ejecuta el siguiente comando para crear todas las tablas:
Archivos de migración disponibles
Los siguientes archivos endatabase/migrations/ definen el esquema base de la aplicación:
| Archivo | Tablas creadas |
|---|---|
2014_10_12_000000_create_users_table.php | users |
2014_10_12_100000_create_password_resets_table.php | password_resets |
2019_08_19_000000_create_failed_jobs_table.php | failed_jobs |
2020_06_22_200411_create_permission_tables.php | permissions, 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:| Tabla | Descripción | |
|---|---|---|
users | Usuarios del sistema con acceso a la interfaz de administración (login, email, contraseña hasheada). | |
alumnos | Padrón completo de estudiantes importados. Es la tabla central del sistema. | |
alumnos_tmp | Tabla temporal utilizada durante el proceso de importación desde archivos Excel. | |
grupos_familiares | Grupos familiares vinculados a alumnos, con campos para padre, madre e hijos (separados por ` | `). |
hijos | Hijos pertenecientes a grupos familiares, con referencia a grupos_familiares. | |
habitaciones | Inventario de habitaciones de la residencia universitaria. | |
hospedajes | Registro de hospedajes que relaciona un alumno con una habitación en un rango de fechas. | |
mobiliarios | Catálogo de mobiliario disponible en la residencia. | |
trabajos | Catálogo de tipos de trabajos o servicios ofrecidos. | |
trabajos_realizados | Imputaciones de trabajos realizados por o para un alumno específico. | |
pensiones | Registro de pensiones, utilizado en el dashboard para métricas y control de pagos. | |
roles | Roles del sistema (ej. Administrator). Gestionado por Spatie Permission. | |
permissions | Permisos atómicos asignables a roles o directamente a usuarios. | |
model_has_roles | Tabla pivote polimórfica que asigna roles a modelos Eloquent (principalmente User). | |
model_has_permissions | Tabla pivote polimórfica que asigna permisos directamente a modelos. | |
role_has_permissions | Tabla pivote que asocia permisos con roles. |
Alumnos: campos principales
El modeloApp\Alumnos gestiona el padrón de estudiantes. Los campos del array $fillable son los siguientes:
| Columna | Descripción |
|---|---|
numIdAlumno | Identificador único del alumno (clave primaria). |
strNombre | Nombre(s) del alumno. |
strApellidos | Apellidos del alumno. |
strCodigoExpediente | Código de expediente académico. |
strDomicilio | Dirección de domicilio del alumno. |
strPais | País de residencia. |
strPoblacion | Localidad / municipio. |
strProvincia | Provincia. |
strTelefono1 | Teléfono principal. |
strTelefono2 | Teléfono secundario. |
strTelefonoMovil | Teléfono móvil. |
strNif | NIF / número de identificación fiscal. |
numTipoNif | Tipo de NIF (numérico). |
strCodigoPostal | Código postal. |
strEMail | Correo electrónico del alumno. |
strFoto | Ruta al archivo de foto del alumno. |
strSexo | Sexo del alumno. |
strNumeroSeguridadSocial | Número de Seguridad Social. |
blnVigente | Booleano: indica si el alumno está activo/vigente. |
blnBaja | Booleano: indica si el alumno está dado de baja. |
blnEmagister | Booleano: indica si el alumno proviene de Emagister. |
blnMatriculado | Booleano: indica si el alumno está actualmente matriculado. |
fecFechaAlta | Fecha de alta en el sistema. |
fecFechaNacimiento | Fecha de nacimiento. |
fecFechaAltaCentro | Fecha de alta en el centro educativo. |
numNivelEstudios | Nivel de estudios (numérico). |
numIdOrigen | Identificador de origen del alumno. |
numIdProvincia | ID de provincia (clave foránea). |
numIdPais | ID de país (clave foránea). |
strPaisNacimiento | País de nacimiento. |
numIdPaisNacimiento | ID de país de nacimiento (clave foránea). |
strProvinciaNacimiento | Provincia de nacimiento. |
numIdProvinciaNacimiento | ID de provincia de nacimiento (clave foránea). |
strRutaNotas | Ruta al archivo de notas académicas del alumno. |
Crear usuario administrador
Una vez completadas las migraciones, crea el primer usuario administrador usando Artisan Tinker: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.