Skip to content

itzyeraycano/CentroEducativo

Repository files navigation

🎓 Sistema de Gestión CentroEducativo (Cloud Edition) 🌟 Sobre el Proyecto

Este proyecto es una evolución técnica de una plataforma académica desarrollada originalmente en 3º de carrera. Lo que nació como una aplicación dependiente de entornos locales (Eclipse, Tomcat manual y APIs virtuales), ha sido transformado en una solución de Infraestructura como Código (IaC) totalmente autónoma y desplegada en la nube.

He logrado que un stack tecnológico complejo (Servlets Jakarta + Spring Boot API + Hibernate) conviva de forma estable en un entorno limitado de 512MB de RAM mediante optimización de la JVM y contenerización con Docker.

👥 Perfiles de Acceso y Casos de Prueba

Para probar la robustez del sistema de autenticación, la gestión de cookies y la comunicación con la API, puedes utilizar las siguientes credenciales: 🔑 Perfil: Administrador

DNI (Usuario): 111111111

Contraseña: 654321

Responsabilidades: Posee el nivel de acceso más alto. Es el único perfil con permisos para realizar la Matriculación de alumnos en nuevas asignaturas.

Caso de prueba: Úsalo para gestionar las actas globales y verificar que solo este rol tiene acceso a las funciones de escritura de matrículas.

No posee front para modificar las asignaturas matriculadas de cada alumno, si queremos añadir o eliminar asignaturas matriculadas de un alumno debemos hacerlo mediante Postman u otra aplicacion para trabajar con llamadas a APIs.

👨‍🏫 Perfil: Profesor

DNI (Usuario): 69696969J (Pablo Martines)

Contraseña: hola1234

Responsabilidades: Gestión académica de sus asignaturas asignadas. Tiene permisos para modificar notas mediante peticiones HTTP PUT.

Caso de prueba: Entra en una de sus asignaturas (como DEW), cambia una nota y verifica el mensaje de confirmación de la API.

👨‍🎓 Perfil: Alumno (Estándar)

DNI (Usuario): 33445566X (John Wick)

Contraseña: cuidadin

DNI (Usuario): 11223344A (Bruce Wayne)

Contraseña: batman


Responsabilidades: Consulta de expediente personal y generación de certificados académicos en PDF.

Caso de prueba: Loguéate para ver cómo las notas modificadas por el profesor se reflejan instantáneamente en tu expediente y descarga el certificado para validar los datos.

🛠️ Arquitectura y Seguridad

La aplicación se basa en un flujo de seguridad y datos desacoplado:

Autenticación: Al iniciar sesión, el sistema valida contra un Tomcat Realm. Si es correcto, genera una cookie JSESSIONID que mantiene el contexto durante la navegación.

Seguridad por Filtros: Un AuthFiltro intercepta las peticiones para asegurar que solo usuarios con el token adecuado accedan a la API.

Persistencia: Las modificaciones realizadas (como el cambio de notas del profesor) se envían mediante peticiones HTTP PUT a una API de Spring Boot que persiste los datos en una DB H2.

Optimización: El despliegue incluye parches manuales de JAXB para garantizar la compatibilidad entre Java 8 y Java 11 sin sacrificar rendimiento.

🚀 Cómo utilizar la App

Entrada: Accede a la URL y selecciona el rol deseado.

Persistencia: Una vez logueado, puedes volver al "Inicio" y verás que sigues dentro gracias a la gestión de cookies.

Cierre de Sesión: Es fundamental usar el botón "Cerrar sesión" para ejecutar un session.invalidate(). Esto destruye el token y permite ingresar con un usuario distinto de forma limpia.

🧪 Notas de Despliegue

El proyecto se auto-gestiona mediante un script orquestador en el contenedor que:

Levanta la API y espera a que la base de datos esté lista.

Realiza un seedeo automático de los alumnos y profesores mediante comandos curl.

Despliega la web en la raíz (/) de Tomcat para URLs simplificadas.

Proyecto desarrollado para la asignatura de Desarrollo de Entornos Web (DEW).

About

Centro Educativo Dew 2025

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors