TimeHammer

Este es un proyecto personal en el que llevo trabajando desde comienzos del 2020, poco antes del confinamiento por la COVID-19. Consiste en un sistema que permite recordar y simplificar la realización de los fichajes en una empresa.

Se trata de TimeHammerBot un chatbot de Telegram en el cual el trabajador se registra indicando su lugar y horario habitual de trabajo. Una vez registrado, el chatbot se encargará de recordarle los momentos en los que se debe realizar un fichaje. No sólo se trata de recordatorios en los diferentes momentos de fichaje, sino que el chatbot propone una serie de botones integrados en los mensajes de recordatorio, que al ser pulsados ejecutan la acción de fichar.

Se ha desarrollado una arquitectura orientada a eventos EDA. El proyecto se ha dividido en diversos módulos, cada uno con una responsabilidad, que se comunican entre si mediante el envío de mensajes. Estos mensajes representan los diferentes eventos que desencadenan la lógica de negocio.

Para el desarrollo se ha utilizado Quarkus, que es un stack basado en java que posibilita la compilación a código nativo. Quarkus permite tanto la programación imperativa como la reactiva. En este proyecto se ha optado por la programación reactiva.

Para el envío de los mensajes se ha utilizado Kafka puesto que la integración con Quarkus es muy sencilla.

Para la ejecución en producción se utiliza Docker. Cada uno de los módulos que componen el proyecto tiene una imagen de Docker asociada. En el entorno de producción se ejecutan contenedores de dichas imágenes. Actualmente son se utiliza ningún orquestador de contenedores, directamente se están arrancando con docker-compose. El siguiente paso planificado es la utilización de kubernetes como orquestador de contenedores.

Diego Castro
Diego Castro
Ingeniero en Informática

Apasionado de la programación

Relacionado