Arquitectura Tecnica
Estructura del proyecto, componentes y flujo tecnico.
Arquitectura Tecnica
1. Estilo general
El proyecto sigue una arquitectura monolitica PHP con renderizado del lado del servidor, uso intensivo de PDO para acceso a MySQL y organizacion por modulos funcionales.
No se observa un framework MVC formal. En su lugar, el sistema usa:
- Archivos PHP por pagina o flujo
- Helpers globales reutilizables
- Un modelo base simple
- Includes compartidos para layout
- Scripts SQL y sincronizacion automatica
2. Puntos de entrada principales
Raiz del sistema
- index.php
- login.php
- dashboard.php
- logout.php
Rutas funcionales
views/admin/*views/docente/*views/estudiante/*views/padre/*publico/*aula/*biblioteca/*mesa_partes/*chat/*foro/*kiosko/*
3. Carpetas relevantes
config/
Contiene configuracion global, base de datos, correo y otros servicios. Los archivos mas importantes son:
- config/config.php
- config/database.php
- config/mail.php
helpers/
Concentra logica transversal del sistema:
- Autenticacion
- CSRF
- Notificaciones
- Matricula
- Curricula
- Escalas de calificacion
- Asistencia
- Respaldos
- Envio de correo
- Tema visual
- Seguridad de uploads
models/
Incluye un modelo base y logica base de usuario en models/Model.php.
includes/
Incluye layout compartido, header, footer, widgets y funciones complementarias.
views/
Organiza las vistas internas por rol o especialidad. La carpeta views/admin concentra gran parte de la administracion del sistema.
Modulos de primer nivel
Estas carpetas contienen modulos funcionales completos:
aulabibliotecachatforomesa_partespublicokiosko
4. Flujo de arranque
El flujo tecnico normal de una pagina es:
- Incluir config/config.php
- Incluir config/database.php
- Iniciar o validar sesion
- Aplicar seguridad y contexto
- Ejecutar consultas y renderizar HTML
5. Responsabilidades de config/config.php
Este archivo es el nucleo de configuracion comun. Entre sus responsabilidades:
- Definir
BASE_PATH - Detectar HTTP/HTTPS
- Construir
BASE_URLyBASE_URI - Cargar
vendor/autoload.phpsi existe - Definir constantes globales
- Configurar sesion
- Aplicar headers de seguridad
- Proveer helpers de rutas y fecha
- Registrar autoload simple de clases
6. Responsabilidades de config/database.php
Este archivo no solo abre la conexion PDO. Tambien:
- Lee credenciales desde archivo externo o variables de entorno
- Crea la instancia PDO
- Sincroniza catalogos base
- Completa roles
- Ajusta columnas faltantes
- Crea tablas auxiliares
- Invoca helpers que amplian el esquema del sistema
Esto convierte la conexion a base de datos en un punto de inicializacion del modelo de datos.
7. Seguridad transversal
Se aplica a nivel de configuracion y helpers:
- Sesion con cookie
httponly SameSite=Lax- Deteccion de HTTPS
- CSP
X-Frame-OptionsX-Content-Type-Options- CSRF
- Sanitizacion basica de entradas
8. Autenticacion y autorizacion
La logica vive principalmente en helpers/Auth.php. Provee:
- Login y logout
- Verificacion de sesion
- Redireccion obligatoria
- Validacion por nivel minimo
- Consulta del rol
- Generacion de sidebars por rol
- Permisos de modulo por tabla
permisos_modulo
9. Subsistema Kiosko
El kiosko esta relativamente desacoplado del sistema principal, con:
- Configuracion propia
- Base y helpers propios
- Autenticacion puente via SSO interno
- Modulos de caja, monedero, ventas, boletas y pasarelas
10. Integraciones y servicios
Se identifican integraciones con:
- PHPMailer
- TCPDF
- Mercado Pago
- Culqi
- Clip
- Brevo Conversations
- Servicios API de Peru
11. Testing presente
Existe una carpeta tests/ con pruebas tipo smoke o consistencia, por ejemplo:
- tests/route_integrity_test.php
security_audit_test.phpsecurity_audit_round2_test.php
No parece haber una suite automatizada completa por modulo, por lo que el soporte tecnico debe complementar con pruebas funcionales manuales.