Skip to content

miw-upm/iwvg-devops

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ingeniería Web: Visión General (IWVG) DevOps

Este proyecto es un apoyo docente de la asignatura. Cada release liberada corresponde al código utilizado en clase del curso indicado

GitHub GitHub release (latest by date including pre-releases) GitHub Release Date GitHub code size in bytes GitHub issues GitHub closed issues

Estado del código

DevOps Maintainability Rating

Tecnologías necesarias

Java Maven GitHub GitHub Actions Sonarcloud Slack Spring-boot Railway OpenAPI

⚙️ Instalación del proyecto

  1. Clonar el repositorio en tu equipo, mediante consola:
> cd <folder path>
> git clone https://github.com/miw-upm/iwvg-devops
  1. Importar el proyecto mediante IntelliJ IDEA
    1. Import Project, y seleccionar la carpeta del proyecto.
    2. Marcar Create Project from external model, elegir Maven.
    3. NextFinish.

📖 Diapositivas

  • Lista de reproducción: IWVG. Devops

📃 IWVG. Devops. Enunciado de la práctica

Todo el software deberá estar en ingles.

1. Crear un proyecto (0.5 pto)

Crear un proyecto Maven llamado: iwvg-devops-apellido-nombre, versión 4.0.0. Para ello se aporta zip de la plantilla.

Recordar editar el pom y cambiar el nombre del artefacto (artifactId).
Recordar cambiar el nombre de la carpeta.
Importarlo desde IntelliJ.
Crear un repositorio en GitHub con el mensaje del primer comit: "Initial. Nombre Apellido"

2. Preparar la gestión mediante Scrum (0.5 pto)

Crear un proyecto de gestión en GitHub y prepararlo para la metodología de Scrum (columnas, etiquetas, hitos...).

3. Sprint 1. Preparación del ecosistema (1.5 ptos)

Se crearán las siguientes 2 historias (Issues) pero se trabajarán en las ramas develop & master.

  • 1️⃣ Integración continua con GitHub Actions. Incluir Badge en README con link.
  • 2️⃣ Análisis del código con Sonarcloud. Incluir Badge en README con link a la cuenta de Sonar.

1️⃣, 2️⃣... representa el orden temporal de desarrollo de los issues.

4. Release (0.5 pto)

Realizar la primera liberación del código (v.4.0.0-release)

5. Sprint 2. Preparación del software a desarrollar (2 ptos)

Se crearán las siguientes 4 historias (Issues).

  • Clases 1️⃣Fraction & 5️⃣FractionTest.
  • Clases 2️⃣User & 3️⃣UserTest.
  • Clases 4️⃣UsersDatabase.
  • Ampliación 6️⃣Fraction & 7️⃣FractionTest con las funcionalidades: isProper, isImproper, isEquivalent, add, multiply & divide.

1️⃣, 2️⃣... representa el orden temporal de desarrollo de los issues. Cuando un issue se termine se debe incorporar a la rama develop. Las clases User, Fraction y UsersDatabase se podrán copiar de las dadas en clase.

Realizar la segunda liberación del código (v.4.1.0-release)

6. Sprint 3. Preparación de cuatro búsquedas a partir de las siguientes, según el valor de las primeros cuatro valores distintos del último commit realizado de la liberación anterior, se creará una historia (**

Issues**) por cada búsqueda, con el test correspondiente (3.5 ptos).

  • 0 Stream<String> findUserFamilyNameInitialBySomeProperFraction();
  • 1 Stream<String> findUserIdBySomeProperFraction();
  • 2 Fraction findFractionMultiplicationByUserFamilyName(String familyName);
  • 3 Fraction findFractionDivisionByUserId(String id);
  • 4 Double findFirstDecimalFractionByUserName(String name);
  • 5 Stream<String> findUserIdByAllProperFraction();
  • 6 Stream<Double> findDecimalImproperFractionByUserName(String name);
  • 7 Fraction findFirstProperFractionByUserId(String id);
  • 8 Stream<String> findUserFamilyNameBySomeImproperFraction();
  • 9 Fraction findHighestFraction();
  • a Stream<String> findUserNameBySomeImproperFraction();
  • b Stream<String> findUserFamilyNameByAllNegativeSignFractionDistinct();
  • c Stream<Double> findDecimalFractionByUserName(String name);
  • d Stream<Double> findDecimalFractionByNegativeSignFraction();
  • e Fraction findFractionAdditionByUserId(String id);
  • f Fraction findFractionSubtractionByUserName(String name);

Realizar la tercera liberación del código (v.4.2.0-release)

7. Bug (1.5 ptos)

Suponer que la búsqueda 3 anterior no es buena y se debe proceder a modificarla. Realizar un cambio y proceder a la cuarta liberación del código (v.4.2.1-release).

✅ Criterios transversales con pérdida de puntos por falta de calidad

  • Uso correcto del flujo de trabajo ramificado. Hasta -3 ptos.
  • Adecuación de la temporalidad de desarrollo según el enunciado. Hasta -3 ptos.
  • Mantenimiento de calidad del código según GitHub Actions, Sonar, Better Code Hub. Cobertura >= 80%. Hasta -2 ptos.
  • Gestión adecuada, completa y equlibrada (estimación, tiempo real...) durante el desarrollo. Hasta -2 ptos.
  • Commits correctos y completos. Hasta -2 ptos.
  • Código limpio, bien formateado y ordenado. Hasta -2 ptos.
  • Uso del ingles. Hasta -1 pto.

👏 Entraga de la práctica

Indicar como texto en la subida la URL de GitHub

NOTA. Acordarse de dar al botón de envío

Ejemplo resuelto: