Our project is called DigiPunch and is a remote time clock application. There were many ways we could go about implementing a remote time clock but we went with the way we best understood and decided to use the Google API to use Google Sheets as our database. The button below is a link to the spreadsheet we used to collect data from our timeclocks and keep track of clock ins and clock outs. As a way of streamlining the program, it was decided that requests would include only an ID, with the program deciding whether it is a clock-in or clock-out based on past data.
The spreadsheet is mostly for just data collection, though we found that keeping track of the clock status of the different workers was difficult without consulting the most recent change. To solve this, we decided to make use of spreadsheet functions rather than trying to keep track of changes locally. The spreadsheet uses a formula to look up the latest change made for the given ID, which is used to determine whether to clock in or clock out in the spreadsheet editing script.
As a result of these decisions, both the punching terminals and the updater can be located anywhere, without having to be on-premises. There can even be more than one spreadsheet editing script, as there is no local data necessary to make the correct changes. This makes the solution highly scalable, and the extremely low network and computational overhead make implementing it very simple and low-cost.