TimeHammer

Aug 13, 2020 · 2 min read

This is a personal project I worked on during the first half of 2020. Its goal is to remind employees and simplify the time-tracking process within a company.

The system, called TimeHammerBot, is a Telegram chatbot where employees register by providing their location and usual working schedule. Once configured, the bot sends reminders at the right moment and provides integrated buttons to clock in and out directly from the message, without needing to open another application.

The architecture follows an event-driven model (Event-Driven Architecture). The project is divided into several independent modules, each with a clear responsibility, which communicate by sending messages representing the different events in the system.

The development was done using Quarkus, a Java stack that supports compilation to native code. Quarkus supports both imperative and reactive programming; for this project, a fully reactive approach was chosen.

Message exchange was handled using Kafka, whose Quarkus integration is particularly straightforward.

For production, the system runs in Docker containers, with one image per module. Deployment currently uses docker-compose, although the next planned step is to migrate the solution to a Kubernetes-orchestrated environment.

The project was discontinued after being presented to the company I was working for at the time. Although it was proposed as a replacement for their existing time-tracking system, they ultimately decided not to adopt it.