Get in touch

Home/Projects/Time attendance, public institution

Case study · In production

Attendance and accessin a public institution

A public institution uses a biometric time attendance and access control system with 16 readers. During maintenance we found former employees still on the readers, different user lists from one entrance to another, and a bloated database. We checked, cleaned up and repaired everything on a copy first, then in production, with a backup beforehand.

76former employees removed from the readers, with 778 commands23 Oct 2026
342–352 → 277users on the main area readers: the same list on all of themafter repairs
1,387 → 688 MBdatabase size after the logs were cleaned up24 Oct 2026
196,811attendance records in the system, for 233 active employeesvolume managed
The situation

Where we started

The system was in operation. When we took over maintenance, former employees had not been removed from the readers: 76 of the 79 people who had left were still there.

The readers had different lists from one another, the live attendance screen showed "null" instead of names, and the database had grown because of the logs. Leave is tracked in the HR software, with no link to access rights.

What we did

The solution

  • we read the user list directly from each reader and compared it with the database;
  • we removed former employees and closed visitor records from the readers;
  • we cleaned up the database, with a backup beforehand;
  • we fixed the live attendance screen: visitors now appear as "Visitor", with a code;
  • we built a tool that repeats the checks and repairs in a few clicks, in test mode first.
How we work

On a copy first, then in production

Data operations were done at the weekend, and nothing was changed in production without our confirmation.

Readthe user lists, directly from the readers
Compareagainst a copy of the database
Testthe scripts run in test mode first
Backupbefore any change
Apply and re-readthe result verified on the readers

"null" in live attendance

The cause was in the application's compiled code: the name was taken only from the employee record, and visitor cards have no record. The first fix covered only the page load; the second also covered the real-time updates.

A mistake, fixed the same evening

The first tool sent 52 visitors to one reader instead of 47, because production keeps the command history for a shorter time than the copy. We fixed it the same evening, verified it by re-reading, and changed the tool to use a reader read live as its reference. Since then, every tool runs in test mode first.

Proposed, awaiting the client's decision: automatic blocking of access during leave, with data taken from the HR software, reversible and logged.

Claude's role

What Claude did on the project

Every work session was recorded in a log, including the mistakes and how they were fixed.

What Claude did

  • analysed the data on a copy of the database
  • wrote the checking and repair tools
  • tested them on the copy first, then in test mode
  • compared the lists read from the readers with the database

What we did

  • ran the tools on the client's server
  • brought in the lists read from the readers for comparison
  • confirmed every change in production
  • the decisions, final verification and the relationship with the client

Nothing was changed in production without testing, a backup and a person's confirmation.

Lost control of your time attendance system?

We check who has access on each reader and bring the lists and the database back in order, on a copy first.

Request an assessment →