Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/kenri89/PROYECTO_UTP_AED_1_1/llms.txt

Use this file to discover all available pages before exploring further.

The Sistema de Gestión Académica — UTP AED is a Java Swing desktop application built for the Instituto de Educación Superior Tecnológico Público (IESTP) Perú-Japón. Developed as a course project for Algoritmos y Estructuras de Datos (AED), the system manages students, courses, enrollment, and academic requests through a role-based interface for Administrators, Secretaries, and Students. What makes this system distinctive is that it deliberately avoids Java’s built-in collection classes — every core operation is powered by five hand-written data structures implemented from scratch: a binary search tree, a singly linked list, a stack, a 2D matrix, and a dynamic array.

Key Features

BST Student Registry

ArbolEstudiantes is a binary search tree keyed on student carnet IDs. It supports O(log n) insert, lookup, update, and delete, plus an in-order traversal used to build sorted lists throughout the UI.

Linked-List Enrollment

ListaMatricula is a custom singly linked list that stores enrollment records. It exposes agregar and recorrer operations consumed by the enrollment panel and the TSV persistence layer.

Stack-Based Action History

PilaAcciones_U3 is a hand-written stack that records enrollment actions. The Academic History panel (PanelHistorial) pops and displays entries so users can review the sequence of changes made in a session.

Semester Matrix

MatrizSemestres is a 2D matrix that organises courses by semester. When a course is added, insertarPorSemestre places it in the correct matrix row, giving the UI an efficient way to display curricula grouped by period.

Dynamic Array Course Catalog

ArregloCursos is a dynamic array (resizable on demand) that holds the full course catalog. Its insertar and obtenerCursos methods feed both the Course Management panel and the TSV persistence layer.

Role-Based Access Control

Three roles gate every panel: Administrador sees all features including request management; Secretaria manages courses, students, and enrollment; Estudiante views their own enrolled courses and submits requests.

Dual Persistence

Data is saved to and loaded from Microsoft SQL Server via PreparedStatement-based DAOs. When SQL Server is unavailable the application automatically falls back to reading and writing TSV files in ~/.proyecto_utp_aed_datos/.

Excel Export

ExportadorExcel (in Util/) uses Apache POI 5.4.0 to export academic data to .xlsx spreadsheets, enabling reporting outside the application.

Architecture Overview

The project follows a layered MVC layout inside the src/ directory.
PackageRole
Modelo/Plain data objects — Curso, Estudiante, Matricula, Solicitud, Usuario
gui/Swing views and controllers — Main, LoginFrame, MenuPrincipal, and one Panel* class per feature
dao/Data-access objects (CursoDAO, EstudianteDAO, MatriculaDAO, UsuarioDAO) that execute SQL via PreparedStatement
ESTRUCTURAS/The five custom data structures: ArbolEstudiantes, ListaMatricula, PilaAcciones_U3, MatrizSemestres, ArregloCursos, plus the supporting ListaCursos and AccionMatricula types
Util/Cross-cutting utilities: ConexionSQL (connection factory reading config.properties), PersistenciaAcademica (TSV read/write), ExportadorExcel, CuentasEstudiantes
The entry point is gui.Main, which sets the Metal cross-platform Look and Feel, applies the shared UIConstants colour palette, and then opens LoginFrame on the Swing Event Dispatch Thread. ConexionSQL loads the configuration file from the classpath using ConexionSQL.class.getClassLoader().getResourceAsStream("config.properties").

Technology Stack

TechnologyVersionPurpose
Java SE21Language and runtime
Microsoft SQL Server(local)Primary relational persistence
Apache AntBuild tool (ant run to compile and launch)
Apache POI5.4.0Excel (.xlsx) export
Google Guava33.4.0-jreString utilities, immutable collections, preconditions
mssql-jdbc13.4.0JDBC driver for SQL Server
Logback + SLF4J1.5.15 / 2.0.16Structured application logging
JUnit Jupiter5.11.4Unit testing
Apache Commons IO2.18.0File read/write helpers used by PersistenciaAcademica

Build docs developers (and LLMs) love