Construction attendance — nothing to dismantle on site, the hour carries its location
A site is temporary, so a turnstile is hardware you later take down; we put none on the door. Entry and exit come from a QR scan on the worker's own phone, and location verification decides the site, so its name is never chosen by hand. Duration comes from a matched pair, and an entry left open stands as an incomplete record. Payment due is produced from those pairs rather than a second calculation table, and the same worker's hours at different sites add up separately. React Native (Expo) on the phone, Laravel taking the records, MySQL holding them.
Read the case study →