The Sistema de Admisión Web ships with a comprehensive reporting layer that covers every stage of the admissions lifecycle — from first pre-registration through final biometric check-in. Reports are available in two output formats: PDF (rendered byDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/ariellukezz/admision-web/llms.txt
Use this file to discover all available pages before exploring further.
barryvdh/laravel-dompdf via the Pdf facade) and Excel (generated by maatwebsite/excel). All report endpoints are scoped to auth()->user()->id_proceso, so switching the active process automatically changes the data set without any additional filtering.
Available Report Types
1. Pre-inscriptions Excel Export
ExcelController::export() produces a grouped XLSX file containing one sheet-block per program. Each record includes: id, id_postulante, DNI, full name (nombres, paterno, materno), phone, email, program, modality, process, registration date, sex, inscription status, and any observations. The file is streamed directly to the browser.
The
/export-excel route is not under the /admin prefix. It requires authentication (auth middleware) but is accessible to any authenticated user. When auth()->user()->programas is not null, the export is automatically scoped to the programs assigned to that user, enabling regional coordinators to download only their own programs.{d-m-Y H:i:s}preinscritos.xlsx and is generated by the PreinscripcionExport class, which receives the collection already grouped by program.
2. Summary by Program (Pre-inscriptions vs Inscriptions)
ReporteController::reportePrograma() generates a side-by-side comparison of pre-inscription and inscription counts per program, including the numerical difference. Results can be returned as JSON for on-screen display or streamed directly as PDF.
public/documentos/{id_proceso}/reportes/ReporteProgramas_{timestamp}{user_id}.pdf before being streamed to the browser, creating a server-side audit copy.
3. Daily Inscription Report by Program
ReporteController::reporteProgramaDiario() pivots inscriptions by calendar date, generating one column per day that has at least one inscription. This is ideal for tracking registration momentum across the registration window. Returns HTTP 404 with { "message": "No hay datos disponibles para este proceso" } when no inscriptions exist for the process.
Reportes.programa_ins) is rendered on A4 portrait orientation via dompdf.
4. Daily Inscription Report by User (Inscriptor Activity)
ReporteController::reporteUsuarios() pivots inscriptions by the staff member who registered them (id_usuario), producing the same daily-column structure. This allows management to audit individual inscriptor performance and identify anomalies.
5. Enrollment Summary (Resumen de Inscripciones)
ResumenInscripcionesController::resumenInscripciones() provides a flexible grouped summary of inscriptions. Access the summary pages via:
/admin/resumenes-inscripcion— Grouped inscription summary with PDF and Excel export/admin/resumenes-general— High-level dashboard-style summary page/admin/resumenes-inscripcion-programa-diario— Inscription counts per program per calendar day/admin/reporte-usuarios-diario— Per-staff inscription activity by day
6. Biometric Summary (Resumen Biométrico)
ResumenBiometricoController::resumenBiometrico() cross-references biometric captures in control_biometrico with admitted results to show how many admitted applicants have completed identity verification.
/admin/resumenes-biometrico.
7. Demographic Reports (Dashboard Sub-panel)
Ten demographic breakdown endpoints are available under the admin prefix for on-screen chart data:{ "datos": [...], "estado": true } and are consumed by the Chart.js visualisations in Admin/Dashboard/components/reportes.vue. These endpoints are handled by DashboardController methods (reporteInscritosGenero, reporteInscritosEdad, etc.).
Report Navigation
Resumenes de Inscripción
/admin/resumenes-inscripcion — Flexible grouped inscription summary.Resumen General
/admin/resumenes-general — High-level dashboard-style summary page.Programa Diario
/admin/resumenes-inscripcion-programa-diario — Inscription counts per program per calendar day.Usuario Diario
/admin/reporte-usuarios-diario — Per-staff inscription activity by day.Resumen Biométrico
/admin/resumenes-biometrico — Biometric capture completion report by area/program/modality.Trazabilidad
/admin/trazabilidad — Full audit trail of all administrative actions, filterable by actor, action, and date range.Excel Export Details
Themaatwebsite/excel package is used for XLSX generation. The pre-inscriptions export is invoked via ExcelController::export():
PreinscripcionExport class receives a collection already grouped by program. Each group produces a labelled section in the spreadsheet. Columns include: id, id_postulante, dni, nombres, paterno, materno, celular, email, programa, id_programa, id_modalidad, modalidad, proceso, fecha, sexo, estado, observacion.
PDF Report Details
All PDF reports usebarryvdh/laravel-dompdf with PHP execution and HTML5 parsing enabled:
resources/views/Reportes/:
| Template | Report |
|---|---|
programa_pre_ins.blade.php | Pre-inscriptions vs inscriptions by program (reportePrograma) |
programa_ins.blade.php | Daily inscriptions by program (reporteProgramaDiario) |
usuarios_inscripciones.blade.php | Daily inscriptions by staff user (reporteUsuarios) |
public/documentos/{id_proceso}/reportes/ before streaming, creating a persistent server-side archive.
Audit Trail Export
The audit trail can be browsed and filtered at/admin/trazabilidad and accessed programmatically via AuditTrailController:
| Parameter | Description |
|---|---|
action | Filter by action type (e.g. CREATE, UPDATE, DELETE) |
model_type | Filter by affected model class |
user_id | Filter by the actor’s user ID |
target_user_id | Filter by the target user ID |
id_proceso | Filter by process ID |
date_from | Start date (inclusive) — YYYY-MM-DD |
date_to | End date (inclusive) — YYYY-MM-DD |
search | Full-text search on description and alias fields |
per_page | Page size (default 25) |