Automation of time tracking via QR codes in C#, C++ and QML

Automation of time tracking via QR codes in C#, C++ and QML

January 28, 2021

FORA is the largest retail chain for digital household appliances and software in the Republic of Kazakhstan. We have developed ETT (“Employee Time Tracking”) to register the start and end of the working day for the company's numerous employees. Tracking of employee working hours.

Registration takes place through scanning a QR code generated for the required operation — “Clock In” or “Clock Out”. The server collects and accumulates information on each employee, and provides the administrator with tools for analyzing statistics and generating reports. The interface changes depending on the user's role: employee or administrator.


The “Administration” button on the main window takes you to the management page, where you can configure the “QR Code Lifetime” parameter, search the administrators' table, edit it and add new administrators.

FORA administration
System setup
FORA organization
List of organizations and managers

The “Reports” section contains two types of documents, each exported to Excel: a report card and a report on clock-in and clock-out times. Report cards are built both for all employees and just selected ones. The report on clock-in and clock-out times is currently generated only for selected employees. A report card is generated for use throughout the company.

01 Not open day dial Empty cell The clock-in time was not specified.
02 Open day dial Cell with null So far, only the clock-in time has been specified.
03 Worked out dial Non-null values These show the duration of the time worked.
FORA report card
Report card
FORA report workday
The employee's working day

The employee

The employee interface is a web page displaying clock-in and clock-out events, displaying generated QR codes. Access authorization is not required. After selecting an event, the generated code appears on the window. After scanning, using the mobile application, an event for “Clock-in” or “Clock-out” appears. After expiry, the QR code disappears from the page. The user may only clock-in and clock-out once per day. The employee's actions are logged on the database.

FORA event selection
FORA start day
FORA error open day

Mobile Application

Also, a cross-platform mobile application using QML and C++ is built into the time tracking system to solve two tasks for employees:

  1. Registration of an employee via mobile phone, and, consequently, linking his or her account to their passport and phone number.
  2. Clocking in and out using a QR code.

Upon launching for the first time, a unique smartphone identifier is generated. A window then appears for entering the employee's TIN (Taxpayer Identification Number) and the server address. Then, the data is sent to the database for verification.

FORA code screen
FORA employee registration
FORA authorisation error
TIN verification and registration on the mobile app

Fully-fledged work is possible only after registration. In the case where the QR code is successfully scanned, the mobile application records the saved TIN and the smartphone's unique identifier before sending the information to the server. The server then checks the relevance of the code along with the presence of a pair record on the database: TIN and ID. Then, the QR code disappears and the status “Clock-in” or “Clock-out” appears.

FORA employees
Linking employees to phone numbers and TIN