A clock-out slip records a useful fact, but a pile of slip photos does not automatically become a useful history. My Timeclock Photo Logger gives those records a more consistent path.
A user can upload a photo, optionally run text recognition, review the parsed fields, and save the shift. Manual entry is available when there is no photo or no configured OCR service. The review step keeps the source image and the final record from being treated as the same thing.
The project supports manual, local Tesseract, and OCR.Space modes. A hosted installation can use the option its environment supports instead of requiring local software that shared hosting may not provide.
Once the fields are entered, the app recalculates shift minutes from the start and end times, including overnight shifts. It can compare the calculated duration with printed shift hours and includes duplicate-shift protection. The resulting history can be viewed by employee, week, or month.
PHP stores the records in per-employee JSON files, while uploaded images and intermediate extraction results have separate storage. That keeps the application small while retaining a connection to how an entry was created.
This is a logging and review tool, not a claim to reproduce every payroll rule. Its purpose is to organize the entered time records and make discrepancies easier to notice.
I like the workflow because it gives automation an appropriate role. OCR can save typing, but the user gets a chance to correct the fields before they become part of the history. The final record should be more dependable than the first guess.