GithubHelp home page GithubHelp logo

baloncesto-cicd-uah's Introduction

Proyecto Final Integración Continua

Este informe detalla el desarrollo de un proyecto como parte del curso final de Integración Continua del Máster de Desarrollo Ágil de Software para la Web en la Universidad de Alcalá. El proyecto se centra en la creación de una plataforma web para votar por jugadores de la liga ACB, implementada en Java con Spring. El objetivo principal es establecer un pipeline de Integración y Entrega Continua (CI/CD), donde la aplicación pase por una serie de fases antes de ser desplegada en producción.

Gestión Ágil del Proyecto:

El proyecto se gestionó utilizando metodologías ágiles, específicamente mediante Github Projects. Durante el desarrollo, se identificaron y abordaron dos requisitos adicionales, los cuales se organizaron como seis tareas bajo un nuevo spring (milestone):

  1. Implementación de la funcionalidad para restablecer los votos de los jugadores.
  2. Añadir un nuevo botón para visualizar la tabla de votos.
  3. Desarrollo de pruebas funcionales para validar la funcionalidad de restablecimiento de votos.
  4. Desarrollo de pruebas funcionales para asegurar la adición de un nuevo jugador.
  5. Creación de una prueba unitaria para verificar que la actualización de un jugador incrementa correctamente sus votos.

Desarrollo y Control de Versiones:

Para abordar estas funcionalidades, se crearon dos nuevas ramas en el repositorio de GitHub. Posteriormente, se generaron solicitudes (pull requests) para fusionar estas ramas con la rama principal (main), siguiendo un proceso de revisión.

Pipeline de CI/CD:

Se estableció un pipeline de CI/CD utilizando GitHub Actions, compuesto por seis etapas:

• Build & Unit Testing: Compila el código y ejecuta pruebas unitarias.

• Tests Funcionales: Realiza pruebas funcionales después de haber superado la etapa de compilación y pruebas unitarias.

• Quality Assurance (QA): Realiza análisis estático de código, asegurando que la cantidad de errores mayores no exceda el límite establecido (20).

• Deploy-Testing-Stage: Despliega la aplicación en un entorno de pruebas en Azure, para validar cambios antes de pasar a pre-producción.

• Deploy-Pre-Stage: Despliega la aplicación en un entorno de pre-producción para pruebas exhaustivas previas a la producción.

• Deploy-Prod-Stage: Despliegue automático en el entorno de producción en Azure, después de la aprobación manual correspondiente.

Conclusiones:

El establecimiento de este pipeline de CI/CD ha permitido una integración y entrega continua eficiente y controlada de la aplicación, mejorando la calidad del software y agilizando el proceso de desarrollo.

Autor

Demo

baloncesto-cicd-uah's People

Contributors

cruzmediaorg avatar

Watchers

 avatar

baloncesto-cicd-uah's Issues

QA - 20 Major Issues

QA: Como garantía de calidad, el código fuente completo del proyecto debe
tener un límite de problemas importantes (major issues) de 20 calculados con
SonarQube, en otro caso no debe poderse desplegar la aplicación a
producción.

Poner votos a cero

Al pulsarlo se pongan a 0 los votos de todos los jugadores en la base de datos.

Nuevo botón ver votos

Como nuevo requisito de la aplicación, la página principal debe ofreceral usuario un botón “Ver votos”, que al pulsarlo muestre una nueva página (por ejemplo, VerVotos.jsp), que muestre una tabla o lista con los nombres de todos los jugadores que hay en la base de datos y sus votos, y un enlace para volver a la página principal.

Prueba Funcional 2: Otro jugador

Programar en PruebasPhantomjsIT.java una nueva prueba funcional
que introduzca en la caja de la página principal el nombre de un nuevo jugador
y marque la opción “Otro”, pulse el botón “Votar”, vuelva a la página principal,
simule la pulsación del botón “Ver votos”, y compruebe que en la página
VerVotos.jsp ese nuevo jugador tiene 1 voto

Prueba Funcional 1: Poner votos a cero

Programar en PruebasPhantomjsIT.java una nueva prueba funcional
que simule en la página principal la pulsación del botón “Poner votos a cero”,
después la pulsación del botón “Ver votos”, y compruebe que en los votos que
aparecen para cada jugador en la página VerVotos.jsp son todos cero.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.