Timekeeping Internal System

An internal Hardware and Software project used for people clocking in and out, in order to provide timekeeping reports required by the local laws.

  • Tech Stack: JavaScript, Redis, Python, RaspberryPi
  • Project Page: -
  • Development Active: No

Since the local laws require us to prepare monthly reports regarding the clocking in and out of our employees, we wanted to create something internally that uses a RaspberryPI and an NFC tag reader. Why NFC tag reader? Because we wanted to enable checkin and checkout operations using both mobile devices and NFC tags/cards.

The solution that we created involved the usage of the following things:

  • RaspberryPI
  • 2 NFC Readers - connected to the RaspberryPI using the SPI interface
  • I2C LCD Screen

For the software side we used a combination of Python, NodeJS and Redis. In Redis we store the events - Check In or Check Out (triggered by one of the 2 NFC Readers), some configuration elements - messages shown when a card is read, users that can access the Admin Panel and the timezone. The NFC reader and the display are controlled by Python code and the communication with external applications is done through websockets using NodeJS. The communication between the 2 apps is done through Redis PUB-SUB mechanism.

While the backend side of our application used a combination of technologies, for the frontend we tried to keep it simple and easy to develop. As a result we chose VueJS, since its learning curve is not that steep and our junior developers can quickly learn it and start working with it. Also, since the application had to work with a backend that exposed some APIs through REST and WebSockets, the team had a good chance to understand how these communication protocols work.

We are still using the solution today, even though the Covid restrictions are still in place.

Do you think our solution could help you too? Schedule a call with us and learn more about our application.