SkillAgentSearch skills...

PadelManager

Microservicio que se encarga de la gestión de pistas de padel, usuarios y partidos.

Install / Use

/learn @ruanete/PadelManager
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

PadelManager

License: GPL v3 Build Status

¿Qué es PadelManager?

PadelManager es un microservicio centrado en la gestión de pistas de padel y la generación de partidos en los cuales los usuarios tendrán la posibilidad de apuntarse, siempre y cuando la pista este disponible y no existan en dicho partido cuatro jugadores.

¿Por qué PadelManager?

Esta idea surge debido a que un conocido que tiene pistas de padel se dedica a crear partidos cada día para que los usuarios se apunten, comprobar horarios disponibles y llevar el control de las pistas alquiladas mediante mensaje en Whatsapp. Para facilitar su trabajo se va a llevar a cabo dicho microservicio para poder ser consumido finalmente mediante una pagina web o incluso una aplicación para el móvil.

¿Que es lo que se podrá realizar?

  • Añadir tantas pistas de padel como el usuario desee.
  • Añadir horarios a las pistas.
  • Creación de partidos en dichas pistas.
  • Realización de reservas en las pistas con una fecha y hora dada.
  • Posibilidad a los usuarios de crear partidos y de apuntarse a estos.

¿Cómo se llevará a cabo?

Inicialmente la implementación de dicho microservicio será realizada en Java, concretamente usando el framework Spring Boot. He decidido hacer uso de este framework debido a que actualmente estoy trabajando con él realizando una API REST para manejar una base de datos. Además, como Java es uno de los lenguajes en los que más he trabajado me parece más acorde trabajar con un framework que haga uso de este. Aunque esto puede formar parte de un servicio y no de un microservicio que es en lo que estamos centrandonos, solo será implementado parte de este proyecto.

Tecnologías a usar

  • Java: Lenguaje de programación.
    • Spring Boot: Framework basado en Java que se centra en el desarrollo de aplicaciones simplificando los pasos de creación del proyecto y despliegue.
    • Spring Test (JUnit 4): Biblioteca para la realización de test unitarios. Usada por su facilidad de uso y por su integración directa con el framework usado como es el caso de Spring Boot.
  • MySQL: Gestor de bases de datos.
  • Swagger: Herramienta que ayuda a desarrollar, construir, documentar y consumir la REST API. Es de mucha utilidad mantener una buena documentación de la API, por ello he usado esta herramienta que va ayudar a mantener la API REST documentada sin que tenga mucho coste de trabajo.
  • Spring Boot Actuator: Dependencia para Spring Boot que monitoriza, recopila metricas, comprende el trafico o el estado de la base de datos.
  • Travis-CI: Servicio de integración continua. Usado debido a la integración directa que tiene con GitHub y que es usado directamente desde la nube, además es fácil de configurar y compatible con la mayoría de lenguajes.
  • GitHub Actions: Servicio de integración continua. Al ser un servicio propio de GitHub está totalmente integrado con este y las facilidades que con esto conlleva, muy parecido de configurar a Travis CI.
  • Heroku: Servicio de computación en la Nube (PaaS).
  • Google Cloud: Servicio de infraestructura en la nube (IaaS).
  • Docker: Contenedores que facilita el despliegue del proyecto.
  • Vagrant: Herramienta para la creación y configuración de entornos de desarrollo virtualizados.
  • Ansible: Herramienta para el provisionamiento de sistemas virtualizados.

Documentación

Herramienta de construcción

buildtool: pom.xml

Despliegue en Heroku

Despliegue: https://padelmanager.herokuapp.com

Repositorio DockerHub

Repositorio: https://hub.docker.com/r/ruanete/padelmanager

Despliegue contenedor en Google Cloud

Contenedor: https://padelmanager-yt2vhm5fza-uc.a.run.app/

Configuración Vagrant y Ansible. Despliegue en local. Subida de box a Vagrant Cloud.

provision: despliegue/ansible/playbook.yml

Box de Vagrant PadelManager

Vagrant Cloud: https://app.vagrantup.com/ruanete/boxes/PadelManager

Related Skills

View on GitHub
GitHub Stars8
CategoryDevelopment
Updated2y ago
Forks2

Languages

Java

Security Score

70/100

Audited on Jan 30, 2024

No findings