Skip to content

Navigation Menu

Sign in
Sign up

Repository files navigation

IESTP — Sistema de Gestión Académica

Un sistema web en PHP y MySQL para un instituto de educación superior tecnológica: asistencias con QR, horarios, unidades didácticas, justificaciones, pagos y reportes.

Sobre el proyecto

Lo desarrollé para el IESTP, un instituto de educación superior tecnológica que llevaba la gestión académica con registros manuales y dispersos. El sistema centraliza el día a día: los docentes pasan asistencia con un escáner de QR, se planifican horarios y unidades didácticas, se registran justificaciones y pagos, y la administración saca reportes sin depender de hojas sueltas.

Tiene acceso por roles (Administrador, Director, Profesor, Pagos y Notas), así que cada persona ve y hace lo que le corresponde. Además, comparte la base de datos con la app Android del instituto (aplicativo-java), que usa los mismos datos para el portal del estudiante.

Está hecho en PHP con MySQL/MariaDB y corre tanto en un servidor propio como en Railway o Vercel.

Qué se puede hacer

  • Pasar asistencia escaneando el código QR de cada estudiante con la cámara; el sistema marca puntual, tardanza o falta y evita duplicados en el mismo día.
  • Cargar y gestionar horarios por programa (desde PDF) y organizar unidades didácticas por programa, período y semestre.
  • Registrar estudiantes con alta masiva desde Excel (generando su QR) y administrar usuarios y roles.
  • Registrar justificaciones con imágenes adjuntas y revisarlas (aceptar o rechazar).
  • Importar pagos desde Excel y administrarlos.
  • Registrar y consultar notas por estudiante y unidad didáctica.
  • Generar reportes institucionales en PDF y Excel.
  • Entrar con roles distintos, con contraseñas con hash y bloqueo tras varios intentos fallidos.

Capturas

Capturas reales del sistema:

Pantalla de login

Panel principal

Listado de estudiantes

Panel principal en móvil

Un ejemplo del reporte PDF institucional: reporte-general.pdf.

Tecnologías

  • Backend: PHP y MySQL/MariaDB (PDO), Composer.
  • Frontend: Bootstrap, jQuery, DataTables y SweetAlert2, todo local.
  • QR y documentos: endroid/qr-code y phpqrcode para los códigos, FPDF para los reportes PDF y PhpSpreadsheet para los Excel.
  • Despliegue: Vercel, Railway y servidor local con el PHP built-in.

Ejecutar el proyecto

Necesitas PHP 8.1+, Composer y MySQL/MariaDB.

La forma más rápida (Windows / Git Bash):

git clone https://github.com/progamins/iestp.git
cd iestp
composer install # instala dependencias y copia .env.example → .env
bash start-local.sh # levanta MariaDB local + crea la BD + servidor PHP

Abre http://localhost:8080. La primera vez, el script crea una cuenta demo: admin@iestp.local / Admin123!.

Si prefieres hacerlo a mano en cualquier sistema:

composer install
mysql -u root -p < database/schema.sql # crea la BD y carga el esquema
php -S 0.0.0.0:8080 -t . # docroot = raíz del proyecto

Ojo: el docroot debe ser la raíz del proyecto (no public/), porque los controladores AJAX referencian ../app/controllers/.... El index.php de la raíz ya redirige al login.

Desarrollo

Requisitos: PHP 8.1+, Composer y MySQL/MariaDB.

composer install
composer lint # sintaxis PHP de app/ y public/
composer validate # valida composer.json
composer audit # auditoría de seguridad del lock

El CI de GitHub Actions corre php -l, composer validate y composer audit en cada push o PR.

Estructura

app/ # Configuración (conexión PDO, seguridad) y controladores
public/ # Páginas PHP: login, asistencias, justificaciones, notas, pagos...
database/ # Esquema SQL y migraciones
api/ # Entry point serverless para Vercel
screenshots/ # Capturas del proyecto

Documentación

Estado actual

El sistema está en uso y en desarrollo activo: hay funcionalidades nuevas casi todos los meses. El CI valida sintaxis, composer y dependencias, pero los flujos críticos (login, asistencia, justificaciones) todavía se prueban a mano, no con tests automatizados.

Si despliegas en Vercel, ten en cuenta que el modo serverless tiene filesystem efímero: las imágenes subidas no persisten entre requests. Para un uso continuo conviene Railway o un servidor propio.

Próximos pasos

  • Añadir pruebas automatizadas de los flujos críticos.
  • Revisar las consultas con contraseñas en texto plano que queden.
  • Seguir mejorando los reportes y el panel administrativo.

Autor

Desarrollado por Progamins para el IESTP.

About

Sistema de gestión académica en PHP y MySQL: asistencias con QR, horarios, unidades didácticas, justificaciones, pagos y reportes PDF.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /