Trabajo final para la materia "Metodologías Ágiles en Desarrollo de Software" de la carrera Ingeniería en Sistemas de Información de la UTN FRRo. El propósito principal del proyecto es desarrollar el clásico juego del Ahorcado de forma ágil, simulando sprints de SCRUM y aplicando técnicas de Extreme Programming (XP), tales como Pair Programming, TDD, Continuous integration, Simple design, etc.
El objetivo del juego es adivinar una palabra oculta antes de que se completen todas las partes del cuerpo del ahorcado, es decir, antes de que se acaben las vidas.
- Un jugador ingresa por teclado la palabra oculta.
- Otro jugador intenta adivinar la palabra oculta arriesgando letras o arriesgando una palabra.
- Al acertar una letra, revela las posiciones dentro de la palabra.
- Al errar una letra, suma una parte del cuerpo del ahorcado, hasta un máximo de siete partes.
- El jugador gana si adivina todas las letras o si arriesga correctamente la palabra.
- El jugador pierde si completa todas las partes del cuerpo del ahorcado...
Debido a que el objeto principal del trabajo práctico es aplicar metodologías ágiles, se desarrolló tanto un backend como un frontend sencillos.
- Python 3.8
- Angular CLI
- Clonar el repositorio localmente por medio de
git clone https://github.com/adrielgorosito/Metodologias-agiles-TP.git
. - Navegar a la carpeta tp y ejecutar
pip3 install -r requirements.txt
para instalar las dependencias de Python. - Iniciar el servidor de Python ejecutando
uvicorn main:app --reload
desde la carpeta tp. - Navegar a la carpeta frontend y ejecutar
npm install
para instalar las dependencias de Angular. - Iniciar la aplicación de Angular ejecutando
ng serve -o
desde la carpeta frontend.
Nota: modificar la url del backend dentro del servicio AhorcadoService en Angular a http://127.0.0.1:8000
.
Alternativamente, se puede jugar visitando la página: metodologias-agiles-tp.vercel.app.
- Unit Tests usando TDD.
- Single Repository.
- CI Server que solo compile (Github Actions, Azure DevOps, TravisCI, etc).
- CI Server que ejecute los Unit tests.
- CI Server que muestre resultados de Code Coverage.
- Desarrollar UI Web con Acceptance tests.
- CI Server que deploye a producción.
- CI Server que ejecute Análisis Estático de Código.
- CI Server que ejecute los Acceptance tests.
- El backend fue programado con Python, utilizando el framework FastAPI. El frontend se programó con Angular.
- Se utilizó el framework unittest de Python para desarrollar los tests unitarios.
- Se utilizó el framework Cucumber junto a behave y el lenguaje Gherkin para desarrollar los tests de aceptación.
- Se eligió Github Actions como servidor de integración continua para automatizar los UT y AT.
- Se utilizó Render para el deploy del backend y Vercel para el deploy del frontend.
- Se utilizó SonarQube para el análisis estático de código.
- Navegar a la carpeta tp.
- Ejecutar el comando
coverage run unit_tests.py
para correr los tests unitarios. - Ejecutar el comando
coverage report
para obtener un reporte de test coverage.
- Navegar a la carpeta tp.
- Ejecutar el comando
behave -f allure_behave.formatter:AllureFormatter -o at_results ./features
para correr los tests de aceptación. - Ejecutar el comando
allure generate at_results -o allure-report
para obtener un reporte del resultado de los tests. - Ejecutar el comando
allure open allure-report -h localhost
para ver el reporte de forma gráfica.
Este proyecto fue desarrollado por:
- Ballestero, Martín Aníbal - @tincho425
- Gorosito, Adriel Tomás - @adrielgorosito
Profesores:
- Joaquín, Andrés
- Cullen, Patricio