🎯 Objetivos del Proyecto - lod1004/GII-TFG-Asistente-de-practicas-agiles-para-repositorios-en-GitHub GitHub Wiki

✅ Objetivos funcionales

Estos objetivos definen lo que la aplicación debe permitir hacer al usuario:

Análisis de métricas de calidad del proceso: La herramienta analiza automáticamente diferentes métricas de calidad de los repositorios para identificar buenas prácticas y detectar áreas de mejora. Por ejemplo, frecuencia de commits, uso de issues, ramas, etc.

Personalización temporal del análisis: El usuario puede definir periodos de análisis utilizando fechas absolutas o relativas (como "primer trimestre de vida del repositorio"), lo que permite adaptar el estudio a diferentes fases del desarrollo.

Comparación entre repositorios de referencia: Se pueden cargar y comparar métricas entre repositorios propios y de referencia, permitiendo una evaluación visual y cuantitativa del estado relativo del proyecto.

Visualización de prácticas ágiles aplicadas: El sistema traduce los resultados del análisis a prácticas ágiles reconocidas, con explicaciones breves y enlaces útiles que permiten entender por qué se evalúan ciertas métricas y cómo mejorarlas.

Apoyo a estudiantes en trabajos académicos: La aplicación puede utilizar otros TFGs públicos como casos de referencia, facilitando a los estudiantes comparar su progreso con ejemplos reales y mejorar sus proyectos.

🧩 Objetivos no funcionales

Estos objetivos se centran en la calidad técnica, mantenibilidad y experiencia de usuario:

Mantenibilidad y modularidad: La aplicación se ha construido usando Angular por su arquitectura basada en componentes y módulos reutilizables, facilitando futuras modificaciones y ampliaciones del sistema.

Usabilidad y experiencia de usuario: Se prioriza una interfaz clara y accesible, con formularios dinámicos, navegación fluida por pestañas y validaciones en tiempo real que mejoran la comprensión de cada acción.

Reusabilidad del código: Se aplican principios de buenas prácticas como DRY y SOLID (especialmente el principio Open/Closed) para asegurar un código extensible y fácil de mantener. El uso de TypeScript garantiza un tipado estricto y una detección temprana de errores.