Repository navigation
Sprint 2
Kiara Fernandez edited this page Oct 15, 2026
·
15 revisions
Proyecto: FlorApp Móvil 2026
Equipo: 1A Developers
Ceremonia: Sprint Planning
Sprint: 2
Fecha: 22/9/2026
- Organizar, estructurar y ejecutar las tareas correspondientes al Sprint 2 del proyecto FlorApp Móvil, priorizando la higiene de ramas mediante en la plataforma GitHub, la implementación del backend con seguridad (JWT y permisos), la conexión de las pantallas nativas de la aplicación Android, el testing cruzado, la automatización de pruebas y la actualización del sistema de gestión de riesgos y documentación técnica.
- Se realizó una revisión general de los entregables y la planificación de las fases para evitar bloqueos entre el desarrollo del backend (Django REST Framework) y el frontend móvil (Android Studio).
- Se estableció como metodología obligatoria el uso de ramas y la protección de
mainydevelopen los repositorios de GitHub, exigiendo Pull Requests y aprobaciones previas para mantener la estabilidad del código. - Se distribuyeron las tareas de integración por componentes (Login, Perfil, Galería, Contacto y Registro) junto con la ejecución del testing cruzado de pantallas y pruebas de seguridad.
- Se avanzó en la aplicación de las consignas de ciberseguridad sobre el backend (variables de entorno, restricciones de CORS, logs de seguridad y serializers protegidos).
| Integrantes | Tarea |
|---|---|
| Kiara Fernández | - Proyecto Integrador: Gestión y sincronización de las tareas individuales y grupales dentro del Planning Poker y tableros Kanban. Creación y estructuración formal de las Issues correspondientes al Sprint 2 en el repositorio de GitHub, asegurando la correcta asociación al Milestone Evidencia de Aprendizaje 6 - Sprint 2 para el seguimiento de métricas y entregables. Colaboración en la documentación general, registro de minutas y unificación de reportes para la Wiki. - Aplicación móvil: Conexión de RegisterActivity al backend para el alta de nuevos usuarios docentes.- Ciberseguridad & Backend: Implementación del Botón de Arrepentimiento y la casilla de Términos y Condiciones (Ley de Protección de Datos / RGPD) en la vista de registro. Configuración inicial del archivo settings.py para aislar datos sensibles mediante variables de entorno (SECRET_KEY, DEBUG, etc.).- Testing y Automatización: Ejecución del plan de pruebas funcionales, de interfaz y de seguridad correspondiente al módulo de Perfil ( TC-GP-01, TC-GP-02, TC-GP-03) y recolección de evidencias fotográficas y logs. Redacción, documentación técnica y carga en la Wiki del repositorio de la sección correspondiente a las pruebas automatizadas con Appium, detallando el flujo de ejecución, los scripts implementados y las evidencias de validación sobre el sistema móvil. |
| Darío Bosque | - Proyecto Integrador: Gestión del repositorio en GitHub mediante la actualización de la rama individual y creación del Pull Request hacia la rama develop, permitiendo desbloquear el trabajo dependiente del resto del equipo. Participación en la grabación del Video Demo grupal exhibiendo el flujo de autenticación funcional conectado a la base de datos. Asimismo, gestión de la trazabilidad en el tablero Kanban vinculando al Milestone del Sprint la estructuración de Issues por requerimiento de pruebas automatizadas (AUT-UNIT, AUT-NET, AUT-UI y ACC-01), e integración directa en la rama de desarrollo del documento técnico Testing.md con las instrucciones formales de ejecución.- Aplicación móvil: Configuración de la base de conexión HTTP integrando la librería Retrofit ( RetrofitClient y FlorAppApi) para estandarizar el consumo de la API. Refactorización del modelo de datos y conexión de la pantalla LoginActivity al endpoint /api/token/ de Django. Implementación de almacenamiento seguro cifrando localmente el token JWT recibido mediante EncryptedSharedPreferences (AES256). Adicionalmente, corrección crítica del flujo de navegación (Back Stack) entre las pantallas IngresoActivity, LoginActivity y la Galería mediante la implementación de métodos de destrucción de actividades (finish()) y aplicación de Intent Flags (FLAG_ACTIVITY_CLEAR_TOP, CLEAR_TASK, NEW_TASK) para garantizar la usabilidad del botón "Atrás" del sistema.-Ciberseguridad & Backend: Redacción del informe y mitigación de la vulnerabilidad referida al «Modo de desarrollo activo» (OWASP A05:2021) en la Wiki del proyecto, junto con la modificación del archivo settings.py en Django para desarrollo de mejoras de seguridad en el backend, restricción de dominios CORS y configuración de Logs de auditoría para intentos de inicio de sesión fallidos. Implementación de un network_security_config en Android para bloquear el tráfico en texto plano (HTTP) y forzar HTTPS.- Testing: Ejecución y registro de pruebas funcionales manuales, de interfaz (UI Testing) y usabilidad para las pantallas de Bienvenida (Splash) e Ingreso, incluyendo la carga de evidencias con @TAGS en la planilla compartida. Diseño y validación de casos de prueba de Ciberseguridad, comprobando el rechazo de credenciales inválidas y verificando en el sistema de archivos la correcta ilegibilidad del token encriptado. Complementariamente, actualización de la matriz de trazabilidad estandarizando la nomenclatura de los casos de prueba, definiendo la Capa (Frontend/Integración) y el Ambiente (Desarrollo), y ejecutando ciclos de retesting sobre el caso TC-NAV-01 para validar la solución en el código y adjuntar las evidencias audiovisuales de respaldo. |
| Ignacio Bentivoglio | - Proyecto Integrador: Limpieza del repositorio mediante la eliminación de ramas antiguas. Configuración de las ramas develop y main con políticas de control en el repositorio de GitHub de FlorAppMovil, estableciendo el requisito de una aprobación para cada Pull Request. Documentación de la primera y segunda fase de trabajo del Sprint 2 en la bitácora. Actualización del documento IEEE 830, incorporando nuevos criterios de aceptación (CA) para galería y accesibilidad. Creación de tareas (TK) para US-RNF-01, correspondiente a la interfaz visual con criterios de aceptación de accesibilidad, y para US-SEC-01. Creación de US-SEC-02 con sus criterios de aceptación y tareas (TK). Incorporación de criterios de aceptación adicionales para US-RNF-01. Creación de la historia de usuario de seguridad US-SEC-03, con sus criterios de aceptación y tareas (TK). Utilización de Kanban mediante Issues con los estados ToDo, InProgress y Done.- Apps móviles: Diseño del flujo de navegación en Figma, mediante la creación de nuevas pantallas y la adaptación de las pantallas existentes al nuevo estilo visual. Incorporación de la dependencia Glide en Gradle para cargar imágenes mediante HTTP. Conexión de GaleriaActivity al endpoint de flora del backend, incorporando la carga de imágenes desde la API mediante Glide. Refactorización de la galería mediante la modularización de las fichas en un único archivo XML reutilizable. Incorporación de un Spinner con las categorías para permitir el filtrado dinámico de las fichas. Las fichas muestran la imagen, categoría, el nombre común y el nombre científico con un estilo visual moderno y esquinas redondeadas. Implementación del detalle de las fichas para mostrar su descripción al tocarlas, ocultando la imagen y estableciendo un tamaño mínimo por ficha para conservar la estructura de la tarjeta cuando la imagen se oculta. Creación e implementación del ABM con CRUD completo de fichas en los paneles de administración y docente, permitiendo crear, editar y eliminar fichas. Desarrollo del diseño y los estilos visuales de la galería y paneles de gestión de fichas, Se incorporó el rol al mapeo del login para permitir que los docentes visualicen y modifiquen únicamente sus propias fichas, mientras que los administradores pueden acceder y modificar cualquier ficha cargada en el sistema. Corrección del bug [BUG-TC-GAL-05], incorporando un mensaje de confirmación cuando se filtra por categorías vacías.- Ciberseguridad: Modificación del serializador y de las vistas de usuarios para prevenir la escalada de privilegios mediante solicitudes PUT, impidiendo que los usuarios autenticados con un rol distinto al de administrador puedan modificar el rol. Incorporación de rol en read_only_fields y creación de una validación dinámica para interceptar el encabezado que contiene el token de acceso e identificar al usuario en la base de datos, verificando si la solicitud proviene de un administrador. Configuración del serializador mediante la condición es_admin = true, permitiendo la actualización únicamente cuando la solicitud proviene de un administrador; en caso contrario, se aplica validated_data.pop('rol', None). Incorporación de los encabezados en las vistas para recuperar el token de acceso almacenado en localStorage y disponible en cada petición. Incorporación del campo ALLOWED_HOSTS en el archivo .env de ejemplo del backend para la comunicación con las peticiones desde Android Studio. Actualización de la sección «Sistema de Gestión de Riesgos y Seguridad» en la Wiki y redacción del informe de ciberseguridad «Prevención de escalada de privilegios y blindaje de serializers de usuarios». - Testing: Creación del campo «Historia de usuario» en la planilla Excel de testing. Creación de los casos de prueba correspondientes a la Activity galería, incorporando criterios de aceptación e historias de usuario. Incorporación de la historia de usuario en los casos de prueba de ingreso, desde TC-ING-01 hasta TC-ING-05. Creación de los casos de prueba de seguridad TC-SEC-01, TC-SEC-ROL-01 y TC-SEC-ROL-02. Creación del caso de prueba de accesibilidad TC-ACC-02, incorporando criterios de aceptación (CA), historia de usuario (US) y tareas (TK), y documentándolo en el IEEE 830. Ejecución y documentación de los casos de prueba de contacto TC-CTO-01, TC-CTO-02, TC-CTO-03 y TC-CTO-04, adjuntando evidencias en la planilla Excel de testing. Ejecución de los casos de prueba de seguridad TC-SEC-PUB-01 y TC-SEC-02, incluida la reejecución de TC-SEC-02, con evidencias en la planilla Excel. Ejecución de los casos de prueba de accesibilidad TC-ACC-01 y TC-ACC-03, adjuntando evidencias en la planilla Excel. Documentación del bug [BUG-TC-ACC-03], correspondiente al caso TC-ACC-03 y creación de una tarjeta Issue en el Kanban con su evidencia. Creación y reporte del caso de prueba automatizado AUT-UNIT-02, utilizando JUnit 4 y Mockito para implementar dos pruebas unitarias de ContactoViewModel, verificando la gestión correcta de estados mediante LiveData: una prueba de respuesta exitosa que simula el repositorio mediante un objeto @Mock (enviarConsultaExito_actualizaEstadoExitoso) y otra de error que verifica el mensaje de fallo ante problemas de conectividad (enviarConsultaError_actualizaEstadoError). Corrección del bug [BUG-TC-GAL-05], incorporando un mensaje de confirmación cuando se filtra por categorías vacías. |
| Carlos Balbastro | - Backend & Ciberseguridad: Instalación y configuración de djangorestframework-simplejwt en Django, actualizando settings.py e implementando los endpoints de generación de token (feature/jwt-auth). Ajuste de ALLOWED_HOSTS con IP local y políticas de autorización por perfiles/permisos (IsAuthenticated). Configuración, conexión y consumo de las APIs REST para el intercambio de datos entre la app móvil y el servidor. Redacción del Sistema de Gestión de Riesgos de la Aplicación Móvil en la Wiki y grabación del video explicativo sobre la fundamentación del JWT.- Testing: Ejecución de pruebas funcionales y de seguridad sobre la pantalla de Registro. |
| María Florencia Lorenzati |
Proyecto Integrador: • Limpieza del repositorio eliminando ramas antiguas. • Configuración de las ramas develop y main con políticas de control en el repositorio de GitHub para FlorApp moduloWeb (requiriendo 1 aprobación por Pull Request). • Creación del Milestone "Sprint 2". • Aporte de la bitácora de reuniones para el Sprint 2, definiendo tipos de tareas y fases de trabajo. • Actualización del documento IEEE 830, incorporando nuevos criterios de aceptación (CA) para contacto, perfil, navegación e ingreso, entre otros. • Creación de US-RNF-01 (interfaz visual con CA de accesibilidad), RNF-05 de seguridad con US-SEC-01 (con CA), US-SEC-02 (con CA y TK) y modificación de US-RF07 de navegación (con CA y nuevas TK). • Gestión del flujo de trabajo mediante tablero Kanban con Issues ( ToDo, InProgress y Done). • Incorporación de la biblioteca multimedia para la carga de fichas en la Wiki. Aplicación móvil: • Diseño del flujo de navegación en Figma (wireframes, creación de nuevas pantallas y adaptación visual de pantallas existentes en web a mobile). • Modificación del endpoint de usuario ( api/usuarios/) desactualizado en el repositorio del módulo web. • Conexión de ContactoActivity con el backend mediante envío de datos POST a api/interacciones/ validando el código 201 Created para confirmación de éxito y limpieza del formulario. • Definición de estilos globales: implementación de fuentes, paleta de colores, componentes de botones, inputs, títulos e íconos vectoriales. • Actualización de diseño y estilos en vistas de Contacto e Ingreso (incorporando contenido multimedia en la pantalla de Ingreso). • Implementación de modal informativo al ingresar como invitado en la pantalla de Ingreso con lógica de navegación. • Corrección de error Bad Request en el endpoint de Login adaptando la etiqueta email propia del modelo personalizado JWT con validación de correo. • Creación e integración del Navbar con lógica de navegación dinámica según el rol de sesión (Invitado, Docente o Admin) en todas las pantallas y estructuración de layouts (Contacto, Perfil y Galería). • Reemplazo del modal por uno personalizado para Términos y Condiciones en la actividad de Registro. • Creación e implementación del ABM con CRUD completo de usuarios (panel de administración de usuarios) para listar, modificar y eliminar usuarios con tarjetas personalizadas (indicadores visuales de rol, nombre, apellido y email). • Estandarización de diseño de Navbar y modales (fijación de altura, alineación en navbar.xml para evitar colapsos, enrutamiento dinámico para "Gestión" según rol activo y unificación de recursos de estilos). • Solución de bugs surgidos de casos de prueba: [BUG-TC-ING-06] (desborde en orientación landscape) y [TC-ACC-02] (cumplimiento de área táctil mínima de 48x48dp).Ciberseguridad: • Implementación de autenticación JWT completa con modelo personalizado y gestión estricta de permisos de seguridad ( AllowAny / IsAuthenticated). • Implementación de Route Guards en Angular y control diferenciado en el backend (protección de lectura pública y privada para flora). • Protección de rutas privadas y mitigación de vulnerabilidades IDOR: [BUG-SEC-01] (modificación/propiedad de fichas ajenas) y [BUG-SEC-02] (visualización de fichas ajenas mediante URL). • Protección de rutas docentes con auth.guard y ajuste de manejo de errores (401 / 403) en el formulario de plantas con redirección y limpieza de campos. • Actualización de la sección «Sistema de Gestión de Riesgos y Seguridad» en la Wiki y redacción del informe de ciberseguridad «Blindaje de endpoints, autenticación JWT y control de acceso (IDOR)». Testing: • Creación del campo "Criterio de Aceptación" en la planilla Excel de testing. • Creación del Milestone "Sprint 2" en GitHub para la carga de Issues pertenecientes a testing. • Creación de casos de prueba para la Activity Contacto asociando criterios de aceptación e historias de usuario. • Creación de casos de prueba de seguridad ( TC-SEC-02, TC-SEC-PUB-01, TC-SEC-PUB-02). • Creación de casos de prueba de accesibilidad ( TC-ACC-01, definiendo CA, US, TK e integrándolo al IEEE 830). • Ejecución y documentación de todos los casos de prueba de la Galería ( TC-GAL-01 a TC-GAL-05) con evidencias en la planilla Excel y registro del bug [BUG-TC-GAL-05] con su tarjeta Issue en Kanban. • Ejecución y documentación de casos de prueba de seguridad ( TC-SEC-ROL-01, TC-SEC-ROL-02) con evidencias en la planilla. • Ejecución y documentación del caso de prueba de accesibilidad ( TC-ACC-02) con reporte del bug [BUG-TC-ACC-02] en Kanban con evidencias. • Corrección y re-testing de bugs: [BUG-TC-ING-06], [BUG-SEC-01], [BUG-SEC-02] y [TC-ACC-02]. • Creación y reporte de pruebas automatizadas ( AUT-UNIT-03) en JUnit 4 con 4 casos unitarios sobre ContactoValidador (verificación de formato, límites de longitud y caracteres permitidos en el campo Nombre). • Creación de la sección de accesibilidad en la Wiki con informe de accesibilidad y usabilidad, vinculación a Pull Requests, reporte de Issues de accesibilidad e integración práctica en Android (Java y XML). • Vinculación del reporte de accesibilidad en la sección de testing de la Wiki. |
| Eric Heredia |
Ciberseguridad (backend Django): - Eliminación de la SECRET_KEY por defecto (lectura obligatoria desde .env).- Hasheo de contraseñas con make_password / check_password y migración de datos para las existentes.- Política de contraseñas: mínimo 8 caracteres, mayúscula, minúscula y número. - Token JWT con solo user_id y rol (acceso 30 min / renovación 1 día).- Corrección de la renovación del token con el modelo Usuario.- Protección contra IDOR (OWASP A01) y registro de accesos denegados en security.log.- Pruebas en Postman: • Login del docente para obtener el token → 200 OK. • Consulta de un usuario sin token → 401 Unauthorized. • El docente modifica su propio usuario → 200 OK. • El docente intenta modificar al administrador → 403 Forbidden. • El intento no autorizado queda registrado en security.log.Aplicación móvil: - Configuración de la IP del backend en local.properties.- Conexión de ProfileActivity para la lectura (GET) y actualización (PUT) de datos del usuario mediante el consumo del Token JWT.- Programación del botón "Cerrar Sesión" para el borrado seguro del token almacenado. - Corrección de la sesión en modo invitado. - Modal de confirmación al presionar "Atrás" en la Galería ( BUG-NAV-01).- Retorno a la Galería con "Atrás" desde las demás secciones ( BUG-NAV-02).- Área táctil del enlace de registro del Login de 40dp a 48dp ( minHeight en activity_login.xml) (BUG-ACC-01).- Contraste de la etiqueta de categoría de las fichas de 1.84:1 a 5.6:1 (color de texto en item_ficha.xml) (BUG-ACC-02).Testing & Automatización: - Script de prueba automatizada en Java con Appium para el Login y cierre de sesión ( AUT-LOG-01).- Script de prueba automatizada en Java con Appium para el registro de usuarios ( AUT-REG-01).- Documentación de las pruebas con Appium en la Wiki. - Tests de repositorio con MockWebServer para respuestas 200 y 500 ( AUT-UNIT-04 / AUT-UNIT-05).- Documentación de las pruebas con MockWebServer en la Wiki. - Flujo crítico de login con Espresso y Screen Object ( AUT-ESP-01).- Chequeos automáticos de accesibilidad con Espresso (contraste, tamaño táctil y etiquetas), que detectaron BUG-ACC-01 y BUG-ACC-02.Testing General: - Ejecución y documentación de pruebas funcionales sobre la pantalla de Login ( TC-LOG-01 a TC-LOG-05).- Verificación general de endpoints protegidos. - Detección, registro y re-ejecución de bugs de navegación ( TC-NAV-01, TC-NAV-02).- Diseño, ejecución y re-ejecución de casos de prueba de accesibilidad ( TC-ACC-01 tamaño táctil, TC-ACC-02 contraste).- Registro de los bugs como issues en GitHub con su resolución. |
- Respetar estrictamente el modelo de control de versiones con GitFlow y la nomenclatura de ramas
feature/trabajando sobre GitHub, exigiendo Pull Requests con aprobación previa antes de realizar unmergeadevelopomain. - Mantener la comunicación constante de avances y dependencias técnicas a través del grupo de trabajo.
- Cumplir rigurosamente con el esquema de testing cruzado (cada integrante testea el módulo desarrollado por un compañero).
- Consolidar todas las evidencias (capturas de pantalla con nombres normalizados y logs) en el repositorio y la Wiki del proyecto.
- Posibles conflictos de integración (merging) al momento de fusionar las distintas ramas
feature/de cada módulo haciadevelop. - Dependencias temporales en la primera etapa del sprint debido a la necesidad de tener configurado el backend con JWT y el cliente Retrofit antes de iniciar la conexión de las pantallas individuales.
- Realizar el merge final de
develophacia la ramamaintras la verificación de correcto funcionamiento. - Generar el Release oficial en GitHub y exportar el archivo instalable
.apk. - Grabar el Video Demo grupal (máximo 3 minutos) mostrando la aplicación conectada y operativa con la base de datos.
- Actualizar los enlaces en el archivo
README.mddel repositorio.