PadelManager
Microservicio que se encarga de la gestión de pistas de padel, usuarios y partidos.
Install / Use
/learn @ruanete/PadelManagerREADME
PadelManager
¿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
- Instalación, ejecución y uso en local
- Instalación, ejecución y uso en producción. Explicación de perfiles.
- Documentación de las clases del microservicio
- Documentación API REST
- Integración continua
- Tests REST API
- Herramienta de construcción
- Configuración y despliegue en PaaS. Heroku.
- Creación de imagen Docker y uso en local. Uso de DockerHub.
- Despliegue de contenedor Docker en Google Cloud. Autodespliegues.
- Configuración Vagrant y Ansible. Despliegue en local. Subida de box a Vagrant Cloud.
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
node-connect
350.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.9kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
350.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
350.1kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
