(AYD2) Proyecto - Fase III

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 5

Universidad San Carlos de Guatemala

Facultad de Ingeniería
Escuela de Ciencias y Sistemas
Análisis y diseño de sistemas 2
Ing. Marlon Francisco Orellana López
Tutor: Cristian Alexander Gómez Guzmán

PROYECTO
Fase III
Introducción
El curso de Análisis y diseño de sistemas 2 busca la ampliación del conocimiento de
las buenas prácticas, así como herramientas adecuadas para diseñar y construir un
sistema completo, tomando en cuenta su arquitectura, DevOps, CI/CD. El proyecto
se llevará a cabo en tres fases, cada una iterativa y dependiendo de la anterior.

Configuración del flujo de trabajo


Se deben utilizar las siguientes herramientas para el desarrollo de la práctica:

Jira software
El tablero debe tener como mínimo las siguientes columnas:
● To-Do
● Bloqueadas
● En proceso
● test/QA
● Listo para producción
● Finalizadas

Cada equipo deberá dejar constancia videográfica de las siguientes prácticas de


scrum.
● Daily scrum
● Sprint planning
● Sprint retrospective

Documentación de Sprints
En una página de Confluence, se deberá listar los enlaces de las grabaciones de las
reuniones que realizaron para cada sprint y deben adjuntar el Burndown Chart
para demostrar los puntos que realizaron en el sprint.
Configuración del repositorio
● Husky: Se deben configurar los hooks de pre-commit y pre-push para
ejecutar las pruebas unitarias y para que no se pueda realizar commits en la
rama develop y rama main.
● Jest: Para el backend deberán realizar pruebas unitarias con jest, deberán
probar las nuevas funcionalidades. El coverage mínimo para esta fase es de
70% y para las pruebas de integración deberán utilizar SuperTest.
● Para el cliente deberán realizar pruebas unitarias y deberán realizar pruebas
de integración de las siguientes vistas: login, compra y vista de llaves. El
coverage mínimo para esta fase es de 70%.
● Pruebas E2E, deberán utilizar selenium o cypress para realizar pruebas
end-to-end para simular la interacción del usuario con el UI.
Escenarios a probar: (Deben realizar 4 pruebas)

SonarQube

La calidad del software es un elemento fundamental en la industria del desarrollo.


Disponer de herramientas que nos ayuden a evaluar nuestro código se convierte en
una tarea imprescindible para garantizar el desarrollo de una manera correcta y la
aplicación de buenas prácticas. Por lo que se les solicita que al menos un integrante
del equipo debe de instalar SonarQube en su máquina de desarrollo, y configurarlo
para realizar un análisis del código de las APIs.
Para la implementación del diseño arquitectónico debe tomar en cuenta que
los siguientes requerimientos:

El objetivo es que el estudiante logre contenerizar, crear servicios y a su vez


microservicios en una aplicación web la cual tendrá como objetivo el manejo de la
copa mundial 2026, el cual su funcionamiento será explicado más adelante.

● Almacenamiento de imágenes, deberán utilizar Google cloud storage o un


bucket de Amazon S3.
● Deberán hacer uso de una base de datos caché para mejorar la
disponibilidad de su aplicación, esta deberá estar instalada en una máquina
virtual de compute engine.
● Para cada microservicio deberá dejar documentado sus endpoints con
(Swagger, Insomnia o Postman)
● Seguridad de la aplicación, deberán utilizar JWT
● Los datos sensibles deben ser encriptados en la base de datos.
● Para la base de datos deberán hacer uso de un servicio administrado en la
nube que facilite las tareas de configuración, operación y escalado de una
base de datos.
● Deberán utilizar un registro privado de imágenes de contenedor (Google
Container Registry o Gitlab Container Registry)
● Tienen que alojar su página web en Google App Engine.
● Configurarán un runner como una instancia de VM en GCE. Esto con el
objetivo de utilizar un runner propio y no incurrir en gastos en la plataforma de
Gitlab.

GitLab CI/CD
En cada repositorio deberán configurar un pipeline con los siguientes escenarios:
Copa Mundial 2026
Su equipo ha sido contratado para realizar mejoras en la plataforma web del
mundial 2026 por lo que a continuación se lista los nuevos requerimientos y
mejoras.

Reportes admin
● Estadios en donde más eventos se han llevado a cabo.
● Estadios con cantidad de entradas más vendidas
● Estadios con mayores ingresos
● Ingresos total por día.
● Historial de cambios de contraseña (Mostrar sólo el correo y la cantidad de
cambios a solicitar).
● Reporte de usuarios registrados en la plataforma.
● Reporte de cantidad de entradas que ha comprado un usuario.

Reportes cliente
● Top 5 goleadores
● Selecciones con más goles
● Selección más goles ha recibido
● Estadios visitados

Documentación:
● Diagrama del diseño arquitectónico implementado

Consideraciones
● Google Kubernetes Engine es obligatorio
● Se debe utilizar el control de versiones Gitlab
● La estrategia de branching a utilizar debe ser Git-Flow. Se revisará que hayan
trabajado correctamente con Git-Flow.
● La documentación debe ser almacenada en el repositorio utilizando el
formato markdown.
● Deberán implementar como mínimo 2 sprints.
● Las copias totales o parciales tendrán una nota de 0 puntos y será reportada
a las autoridades correspondientes.
● Se trabajará en equipos no mayores a 5 personas.
● Agregar al auxiliar al repositorio o grupo, usuario: “@cgomez29”.
Recursos:
● https://www.youtube.com/watch?v=sTdNtl9bo-A
● https://www.losmundialesdefutbol.com/
● https://www.fifa.com/fifaplus/es/tournaments/mens/worldcup/qatar2022/teams/
argentina/squad
● https://as.com/futbol/mundial/cuadro-del-mundial-2022-como-son-los-cruces-y
-quien-se-enfrenta-a-quien-en-octavos-cuartos-y-semifinales-n/
● https://www.youtube.com/watch?v=JzZKQzgTA5A
● https://www.fifa.com/fifaplus/es/tournaments/mens/worldcup/qatar2022/knock
out-and-groups

Entregables:
● Link de repositorio de código fuente de GitLab.

Fecha de entrega: Miércoles 28 de diciembre

También podría gustarte