0% encontró este documento útil (0 votos)
2 vistas7 páginas

Aplicación StudyFlow para Estudiantes

StudyFlow es una aplicación de escritorio en Java diseñada para centralizar herramientas académicas, mejorando la organización y el rendimiento de estudiantes universitarios. Integra cinco módulos: Gestor de Tareas, Apuntes Cornell, FlashCards, Calculadora y Chat, utilizando estructuras de datos como pilas y listas para optimizar operaciones. La arquitectura sigue el patrón MVC, facilitando el mantenimiento y escalabilidad del sistema.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
2 vistas7 páginas

Aplicación StudyFlow para Estudiantes

StudyFlow es una aplicación de escritorio en Java diseñada para centralizar herramientas académicas, mejorando la organización y el rendimiento de estudiantes universitarios. Integra cinco módulos: Gestor de Tareas, Apuntes Cornell, FlashCards, Calculadora y Chat, utilizando estructuras de datos como pilas y listas para optimizar operaciones. La arquitectura sigue el patrón MVC, facilitando el mantenimiento y escalabilidad del sistema.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD NACIONAL DE TRUJILLO

FACULTAD DE INGENIERÍA
ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS

PROYECTO FINAL
STUDYFLOW

INTEGRANTES:
Aranda Siccha, José Fernando
Barrena Plasencia, Fernando Martin
Gomez Flores, Maria Gabriela
Guerra García, Jennifer Emperatriz

EXPERIENCIA CURRICULAR:
ESTRUCTURA DE DATOS ORIENTADA A OBJETOS

CICLO ACADÉMICO:
IV

DOCENTE:
Ing. Torres Villanueva Marcelino

TRUJILLO – PERÚ
2026
Resumen
StudyFlow es una aplicación de escritorio desarrollada en Java (Swing) orientada a centralizar
herramientas académicas en una sola plataforma para mejorar la organización, el repaso y la
resolución de actividades de estudiantes universitarios. El sistema integra cinco módulos: Gestor de
Tareas, Apuntes Cornell, FlashCards, Calculadora y Chat (asistente). Se aplicó el paradigma de
Programación Orientada a Objetos y estructuras de datos lineales para modelar operaciones reales
del dominio: pila para historial de operaciones, lista doblemente enlazada para gestión de tareas,
lista circular para navegación de flashcards, lista enlazada simple para apuntes y cola para el
historial del chat. La arquitectura se estructuró bajo el patrón MVC, separando la interfaz, la lógica y
el manejo de eventos, facilitando mantenimiento y escalabilidad.
Palabras clave: Java, Swing, MVC, estructuras de datos, organización académica, flashcards.

Índice
Nota: En Word puede generar el índice automático desde Referencias → Tabla de contenido, una
vez aplicados los estilos de Título.

1. Introducción
Los estudiantes universitarios suelen enfrentar dificultades para organizar su tiempo y su material
de estudio debido al incremento de tareas, evaluaciones y contenido por revisar. La dispersión de
información (apuntes en diferentes formatos, recordatorios en aplicaciones separadas y
herramientas no integradas) genera pérdida de productividad y estrés, afectando el rendimiento
académico.
Frente a ello, se propone StudyFlow, una aplicación de escritorio que integra en un solo entorno
herramientas clave para el estudio: gestión de tareas, apuntes con metodología Cornell, tarjetas de
repaso (flashcards), calculadora con historial y un módulo de chat para consultas rápidas. El
objetivo es ofrecer una solución accesible e intuitiva que reduzca la fricción operativa del
estudiante y mejore su flujo de aprendizaje.
El alcance del proyecto comprende la implementación de los cinco módulos mencionados, su
navegación desde una ventana principal y el uso de estructuras de datos para soportar operaciones
de inserción, eliminación, recorrido, historial y navegación, priorizando eficiencia y claridad de
diseño.
2. Objetivos

2.1 Objetivo general


Desarrollar una aplicación de escritorio aplicando Programación Orientada a Objetos (POO) y
estructuras de datos lineales, con el fin de optimizar el flujo de estudio de estudiantes
universitarios mediante una interfaz integrada y modular.

2.2 Objetivos específicos


 Implementar una Pila (Stack) para gestionar el historial de operaciones de la calculadora
(LIFO).
 Utilizar una Lista Doblemente Enlazada para administrar tareas académicas con inserción y
eliminación dinámica.
 Aplicar una Lista Circular para permitir navegación continua entre FlashCards
(siguiente/anterior sin fin).
 Implementar una Lista Enlazada Simple para almacenar apuntes Cornell y permitir recorrido y
edición.
 Gestionar el historial de mensajes del módulo de Chat mediante una Cola (Queue), preservando
el orden cronológico (FIFO).

3. Alcance y limitaciones
StudyFlow se orienta a uso local (escritorio) e integra funcionalidades esenciales de organización y
repaso. El sistema permite crear, editar y eliminar registros (tareas, apuntes, flashcards) y ejecutar
operaciones de calculadora con historial. La navegación es modular mediante paneles dentro de
una ventana principal.
Limitaciones: La versión actual no incorpora autenticación de usuarios, sincronización en la nube ni
colaboración multiusuario. La persistencia, si se habilita, se realiza a nivel local (archivos) y
depende de la configuración del proyecto.

4. Arquitectura del software

4.1 Patrón de diseño


El sistema se desarrolló siguiendo el patrón Modelo–Vista–Controlador (MVC). La Vista agrupa los
formularios y paneles Swing; el Modelo representa las entidades (Tarea, Apunte, FlashCard,
Mensaje) y las estructuras de datos (nodos, listas, pila, cola); y el Controlador encapsula el manejo
de eventos y la coordinación entre Vista y Modelo. Esta separación reduce el acoplamiento, facilita
pruebas y mejora la mantenibilidad.

4.2 Estructura de paquetes


La organización del proyecto se divide en paquetes para mantener separación de
responsabilidades. Se recomienda la siguiente convención:
 view: formularios/paneles Swing (JFrame/JPanel) y componentes visuales.
 controller: controladores de eventos y lógica de navegación entre paneles.
 model: entidades del dominio (Tarea, ApunteCornell, FlashCard, Mensaje).
 ds (structures): implementación de estructuras de datos (Nodo, ListaSimple, ListaDoble,
ListaCircular, Pila, Cola).
 utils: utilidades (validaciones, formateo, carga/guardado si aplica).
Figura 2. Estructura de paquetes del proyecto (insertar captura del árbol del proyecto en
NetBeans/IntelliJ).
Fuente: Elaboración propia.

4.3 Diagrama de clases (UML)


El diagrama de clases resume las relaciones entre la ventana principal (FrmPrincipal), los paneles
de cada módulo y las clases del modelo y estructuras de datos. Debe evidenciar composición entre
FrmPrincipal y paneles, además de las clases de nodos utilizadas en listas.
Figura 1. Diagrama de clases UML del sistema (insertar imagen del UML).
Fuente: Elaboración propia.

5. Desarrollo de módulos y estructuras de datos


Esta sección describe cada módulo funcional y justifica la estructura de datos seleccionada,
considerando operaciones principales y complejidad esperada.

5.1 Módulo: Calculadora


Descripción: Permite realizar operaciones matemáticas básicas y visualizar resultados.
Estructura de datos: Pila (Stack).
Justificación técnica: La pila permite mantener un historial de operaciones bajo el criterio LIFO
(Last In, First Out). De esta manera, el último resultado calculado es el primero en recuperarse, lo
cual es útil para funciones como “deshacer” y para extender a evaluaciones de expresiones en el
futuro.
Figura 3. Interfaz del módulo Calculadora (insertar captura).
Figura 4. Fragmento de código de la implementación/uso de la pila para historial (insertar captura).

5.2 Módulo: Gestor de tareas


Descripción: Permite agregar, eliminar y marcar tareas como completadas, facilitando la
organización académica.
Estructura de datos: Lista Doblemente Enlazada.
Justificación técnica: La lista doblemente enlazada permite inserciones y eliminaciones eficientes
sin necesidad de desplazar elementos. Cada nodo mantiene referencias al anterior y al siguiente,
facilitando recorridos bidireccionales y operaciones de borrado en el medio de la lista con menor
costo que en estructuras contiguas. Esto resulta apropiado cuando el usuario reordena o elimina
tareas con frecuencia.
Figura 5. Interfaz del módulo Tareas (insertar captura).
Figura 6. Código de nodos y operaciones (insertar, eliminar, recorrer) en la lista doble (insertar
captura).

5.3 Módulo: FlashCards


Descripción: Tarjetas de pregunta y respuesta para repaso activo y memorización.
Estructura de datos: Lista Circular.
Justificación técnica: La lista circular permite navegación continua. Cuando el usuario avanza desde
la última tarjeta, se retorna a la primera sin requerir condiciones especiales. Esta característica
favorece sesiones de repaso repetitivas y reduce casos borde en la lógica de navegación
(siguiente/anterior).
Figura 7. Interfaz del módulo FlashCards (insertar captura).
Figura 8. Código de la lista circular y navegación (insertar captura).

5.4 Módulo: Apuntes Cornell


Descripción: Registro de apuntes con título, ideas clave y resumen final siguiendo la metodología
Cornell.
Estructura de datos: Lista Enlazada Simple (nodos).
Justificación técnica: La lista enlazada simple permite gestionar apuntes con crecimiento dinámico
sin redimensionamientos. Su recorrido se adapta a operaciones de listado y selección. Además, la
edición se realiza ubicando el nodo objetivo por título o índice de recorrido.
Nota de diseño: Si se requiere priorizar el repaso en orden de creación, puede utilizarse una cola
adicional para una bandeja de “apuntes pendientes de repaso”. Esta cola no reemplaza la estructura
principal de almacenamiento, sino que modela un flujo FIFO de revisión.
Figura 9. Interfaz del módulo Apuntes Cornell (insertar captura).
Figura 10. Código de la lista simple y operaciones de búsqueda/edición (insertar captura).

5.5 Módulo: Chat (asistente)


Descripción: Permite enviar consultas y visualizar respuestas dentro de un historial conversacional.
Estructura de datos: Cola (Queue).
Justificación técnica: La cola asegura el orden cronológico de mensajes (FIFO). Los mensajes se
encolan al enviarse y se muestran en el mismo orden en que fueron registrados. Esto simplifica el
manejo del historial y evita inconsistencias en la visualización.
Figura 11. Interfaz del módulo Chat (insertar captura).
Figura 12. Código de encolado y renderizado del historial (insertar captura).
6. Interfaz gráfica (UI/UX)
La interfaz se implementó con Java Swing utilizando componentes como JFrame, JPanel, JButton,
JTable, JScrollPane y JLabel. La aplicación emplea una ventana principal (FrmPrincipal) que
contiene un panel de navegación (panDashboard) y un panel de contenido dinámico. Al seleccionar
un módulo, el sistema reemplaza el contenido del panel central sin cerrar la ventana, emulando una
navegación tipo “Single Page Application” en escritorio.
Figura 13. Ventana principal y menú de navegación (insertar captura).
Figura 14. Ejemplo de navegación entre módulos (insertar captura).

7. Desafíos y soluciones
Comunicación entre paneles: Durante el desarrollo se presentaron errores de tipo
NullPointerException debido a referencias no inicializadas entre la ventana principal y paneles
secundarios. Se solucionó inyectando la referencia de FrmPrincipal en los paneles mediante
métodos setter y validando nulos antes de acceder a objetos compartidos.
Renderizado de imágenes: Se observó pérdida de calidad al escalar imágenes dentro de JLabel. Para
mejorar la visualización se aplicó un escalado suave mediante la constante SCALE_SMOOTH,
manteniendo proporciones y nitidez aceptable.

8. Pruebas realizadas
Se ejecutaron pruebas funcionales básicas por módulo para verificar comportamiento esperado y
estabilidad del sistema.
Módulo Caso de prueba Resultado esperado Resultado obtenido

Tareas Registrar tarea con La tarea aparece en la Conforme


estado pendiente lista

Tareas Eliminar tarea La tarea se elimina sin Conforme


seleccionada errores

FlashCards Navegar 'Siguiente' Retorna a la primera Conforme


desde la última tarjeta

Calculadora Registrar operación y Historial muestra Conforme


revisar historial último resultado
primero

Apuntes Crear apunte Cornell y Se muestra en Conforme


listar tabla/lista

Chat Enviar 3 mensajes Se muestran en orden Conforme


consecutivos de envío
Figura 15. Evidencia de pruebas (insertar capturas opcionales).

9. Conclusiones
1. Se implementó una aplicación de escritorio modular que integra cinco herramientas
académicas en un único entorno de trabajo.
2. El uso de estructuras de datos (pila, listas enlazadas y cola) permitió modelar operaciones
reales del dominio, mejorando la eficiencia de inserción, eliminación, navegación e historial.
3. La adopción del patrón MVC facilitó la separación de responsabilidades, reduciendo
acoplamiento y permitiendo extender funcionalidades sin reestructurar la aplicación.
4. Las pruebas funcionales ejecutadas confirmaron el comportamiento esperado de los módulos
principales y la estabilidad general en escenarios básicos de uso.

10. Trabajo futuro


 Incorporar persistencia local completa (serialización/JSON) para mantener datos entre
ejecuciones.
 Agregar búsqueda avanzada y filtros (por prioridad/fecha en tareas; por título en apuntes).
 Implementar autenticación y perfiles de usuario.
 Extender el módulo de chat integrando un servicio externo o un motor de conocimiento local,
manteniendo la separación de componentes.

Anexos
Anexo A: Capturas de interfaz adicionales.
Anexo B: Fragmentos de código relevantes por estructura de datos.
Anexo C: Manual de usuario breve (pasos para operar cada módulo).

También podría gustarte