Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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 II
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.
Jira software
El tablero debe tener como mínimo las siguientes columnas:
● To-Do
● Bloqueadas
● En proceso
● test/QA
● Listo para producción
● Finalizadas
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.
SonarQube
1. Code Complexity
2. Duplications
3. Maintainability (Code-smells, technical debts)
4. Reliability (Bugs, Reliability Rating)
5. Security (Vulnerabilities, Security Rating)
6. Code Size, % comments, functions, statements
Para la implementación del diseño arquitectónico debe tomar en cuenta que
los siguientes requerimientos:
Página principal
Deberán crear un dashboard el cual debe proporcionar información sobre los
partidos próximos a jugar, así como la cantidad de partidos que ya se jugaron y la
cantidad de partidos que faltan por jugar. Deberán mostrar una tabla en donde se
muestran los goleadores y grupos.
Registro de usuarios:
Deben requerir el correo, nombre, contraseña, confirmación de contraseña, número
de tarjeta de crédito, código CVV y fecha de expiración.
Entradas
Para poder comprar una entrada a un partido, el usuario debe estar registrado en la
página. Al momento de realizar la compra esta será confirmada por correo
electrónico. Un usuario podrá comprar como máximo 6 entradas por cada partido.
Compra
Es importante que al momento que el usuario ya tenga las entradas seleccionadas y
seleccione su tarjeta, solo se debe de mostrar los últimos 4 dígitos de la tarjeta, al
igual que en la factura, que llegue por correo al usuario.
Olvidé mi contraseña
Se desea permitir a los usuarios recuperar su contraseña.
Flujo:
● El usuario selecciona recuperar contraseña.
● El usuario ingresa su correo electrónico
● Si no hay ningún usuario con el correo, deberá mostrar un mensaje de error.
● Si el correo está vinculado a un usuario, deberán enviar un código de
verificación.
● En la pantalla se requerirá el código de verificación
● Si el código es incorrecto, se mostrará un error.
● Si el código es correcto, se permitirá al usuario cambiar su contraseña.
● Finalmente, se redireccionará al usuario nuevamente a la página de Login.
Ver perfil
En esta pantalla se mostrarán los datos de usuario y podrá cambiar su tarjeta de
crédito (Para realizar este cambio el usuario deberá confirmar contraseña).
Historial de compra:
Deberá contar con una pantalla en donde se listen las entradas que el usuario haya
comprado, los datos que debe mostrar son fecha, hora, cantidad de entradas, total y
el evento para el cual se compró la entrada.
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.