Saltar al contenido
Mis Proyectos
Caso de estudio 2026

Sistema Escolar Integral

Aplicación de escritorio para la gestión académica integral de una escuela: alumnos, calificaciones, asistencias, pagos y reportes en un solo sistema.

  • Java
  • Swing
  • MySQL
  • Maven

El caso de estudio

Problema
La información académica suele vivir dispersa en hojas de cálculo separadas, sin validación, sin control de acceso y sin una visión agregada.
Solución
Java 21 y Swing sobre una arquitectura en capas estricta (UI → Servicios → DAO → JDBC → MySQL), con pool de conexiones y capa de datos propios, seguridad por rol con BCrypt y una base normalizada a 3FN.
Resultado
Cada módulo ofrece CRUD, filtros y paginación en servidor, exportación a PDF y CSV y un dashboard de indicadores; documentado a fondo y con capturas.

Proceso

Proceso de desarrollo

El razonamiento detrás de las decisiones técnicas: por qué se eligió cada tecnología, qué retos surgieron y cómo se resolvieron.

  1. 01

    Arquitectura en capas estricta

    Organicé el sistema en capas con dependencias hacia adentro: UI → Servicios → DAO → JDBC → MySQL. Cada capa solo conoce a la de abajo, así que la lógica de negocio no sabe de Swing ni de SQL. La ventaja es concreta: puedo cambiar la interfaz o la base de datos sin reescribir las reglas, y cada capa se prueba de forma aislada.

  2. 02

    Seguridad y datos confiables

    Las contraseñas se guardan con BCrypt y el acceso se controla por rol, porque un sistema escolar maneja datos sensibles. La base está normalizada a 3FN para evitar inconsistencias, y escribí un pool de conexiones propio para no abrir una conexión por consulta —un detalle que mantiene la app fluida bajo uso real.

  3. 03

    Rendimiento con muchos registros

    El reto de una app de gestión aparece cuando las tablas crecen. En lugar de traer todo a memoria y filtrar en el cliente, moví filtros y paginación al servidor (SQL), de modo que la interfaz siempre trabaja con páginas pequeñas. Sumé exportación a PDF y CSV y un dashboard de indicadores para convertir los datos en decisiones.

Repositorios

Commits

  1. Cambios

    c89b130Eduardohace 2 semanas