TimeHammer

Este es un proyecto personal en el que estuve trabajando la primera mitad del 2020. Su objetivo es recordar y simplificar proceso de fichaje en una empresa.
El sistema, llamado TimeHammerBot, es un chatbot de Telegram en el que los empleados se registran indicando su ubicación y horario habitual. Una vez configurado, el bot envía recordatorios en los momentos adecuados y ofrece botones integrados para realizar el fichaje directamente desde el mensaje, sin necesidad de acceder a orta aplicación.
La arquitectura está basada en un modelo orientado a eventos (Event-Driven Architecture). El proyecto se divide en varios módulos independientes, cada uno con una responsabilidad clara, que se comunican mediante el envío de mensajes que representan los distintos eventos del sistema.
Para el desarrollo se utilizó Quarkus, un stack java que permite compilar a código nativo. Quarkus soporta tanto la programación imperativa como la reactiva; para este proyecto se optó por un enfoque totalmente reactivo.
El intercambio de mensajes se gestionó con Kafka, cuya integración con Quarkus es especialmente sencilla.
En cuanto a la ejecución en producción, el sistema se ejecuta en contenedores Docker, con una imagen por cada módulo. Actualmente el despliegue se realiza mediante docker-compose, aunque el siguiente paso previsto es migrar la solución a un entorno orquestado con Kubernetes.
El proyecto fue descontinuado después de presentarlo en la empresa en la que trabajaba entonces. A pesar de la propuesta de sustituir el sistema de fichajes existente, finalmente decidieron no adoptarlo.