TimeTrack Raspberry Pi
city-of-bloomington.github.io
city-of-bloomington.github.io
For tutorials and diagrams with a comical lack of instructions between the start and end.
... who would not be able to do so, given only this guide.
Otherwise, it's a fairly straightforward step-by-step setup guide. (Specifically for an IT person setting up the hardware terminal.)
The actual UI and backend are out of scope of the guide; the last step in the process is pointing the hardware at a web page that renders the UI and actually logs the punch-in and punch-out.
If I were deploying this, it makes sense - web devs and IT people can look at the main GH page to set up the backend and web app; and then they send this page to someone with only moderate technical skills to set up the hardware terminals.
https://github.com/City-of-Bloomington/timetrack
Edit: I started to wonder, isn't time keeping a solved problem with many commercial vendors and maybe even established open source? Why would a city roll their own? Does that make them more of a hack target (internally developed software weaknesses) or less (not being part of a monocoulture of zero-days)? What are their plans for long term (20+ years) maintenance?
City-of-Bloomington/timetrack is licensed under the GNU General Public License v2.0
https://github.com/City-of-Bloomington/timetrack/blob/master...
This sounds interesting. Can you link to any of these services or software?
What do you mean by "scaring employers re: regulatory compliance"? "Scaring" reads like you're implying some kind of manipulation, but "regulatory compliance" is something a company should already be in; what is there to fear?
What are "local HR laws"?
> What are "local HR laws"?
I think this refers to the fact that regulatory compliance is different depending on where your business is located. Which brings me to my anecdotal experience with:
> What do you mean by "scaring employers re: regulatory compliance"? "Scaring" reads like you're implying some kind of manipulation, but "regulatory compliance" is something a company should already be in; what is there to fear?
A company I worked for was located in a country where it was the legal duty of the employer to keep track of the people on the office premises. Most companies used a time tracking system for this, the punch-in, punch-out kind. The thing is, the purpose of the regulation was to make sure that when evacuated, there is always a list of people that were in the building - so it could be referred to after the evacuation to see if everyone is accounted for. This law did not require keeping track of the time someone entered the premises, or the time someone left - the requirement could be satisfied with a simple paper list with checkboxes - one for when you enter, one for when you leave. And that's exactly what was done in this office. Every month or two, the company got an offer from a business trying to sell a time tracking appliance or service, and many, if not all of those offers were using manipulatory tactics - "If you're not using a time tracking system, you might be violating the law" was a common phrase. The manipulation here was that it was true that a system like that would satisfy the legal requirement, but the offers strongly implied that a having a system like that was necessary to satisfy the legal requirement. Which was not the case.
This seems a reasonable thing to say. If anything it's helpful by perhaps providing the employer with information about requirements they were ignorant of.
> but the offers strongly implied that a having a system like that was necessary to satisfy the legal requirement. Which was not the case.
But coupling it with this is a sleazy sales tactic.
One can nullify the affect though by having at least one person on your staff tasked with being knowledgeable of all of your industry's employment requirements and your company's current state of compliance with them.
We now use a pen and paper. I've looked at open source options, the landscape is not great.
It's not hard, but everyone who can do it well has noticed what their competition is charging and followed suit.
It was a complicated software package that did nothing out of the box and everything required significant configuration of the rule engine to account for the customer’s needs. It shipped with some building blocks for the rule engine but often/always required custom code to facilitate things the customer needed.
My job was to fly out to customer sites and perform the custom implementation tasks.
I don’t know that this is the case, but I’d be surprised if this project didn’t have student involvement (aka cheap labor) that helped justify rolling their own.
On the bright side, Bloomington has other hidden gems (for now) that elicited similar feelings.
* A company is legally required to do time tracking. They usually have a shitty excel sheet to fill out (and every fills in the defaults), or at best a single "check in"/"check out" button that someone coded 10 years ago and still works.
* A company does time tracking to bill 7 different customers for the 12 different tickets each engineer is assigned. The software used to track this was made by 30 full-time engineers and requires a 200-page manual to administer. New employees have to take a 2h course to understand how to fill in their time sheet.
How to book vacation time is extra.
First, you can't underestimate the value of software that works EXACTLY like you need it to. At both my church and my job, the software I wrote did something very specific to those organizations, and NOTHING else. At the church, the key was making a great interface on a small device, and various people would use Palm Pilots to quickly and discreetly mark people as having attended. At the job, the key was in making the online form work exactly like the paper sheet that people had been filling out, and then making a single page for the person who did the billing, which had 2 pivot tables for time, one for employee hours, and one for customer project hours. Both systems were very fast, and you could do your thing in seconds.
Second, any T&A system you buy/rent is trying to be all things to all people, and violates the first point, which makes them hard(er) to use, and adds friction to your internal process. I think you'll see the problem if you rephrase your question like this: "I thought general ledger was a solved problem." It was. 40 years ago. And 90% of IT in the 90's was in customizing off-the-shelf systems to work like companies needed them to.
I work for one company, wholly-contracted to another. The first company uses Workday, which I guess is taking over the world now. It's perfectly awful in an expected way. The parent company has just written their own time tracking tool, and it's predictably terrible. It takes several seconds to click through each project number, and there's a lag on entering hours in each day. But, this is what you get when you're stuck in the outsourced, waterfall development mindset from 25 years ago. I expected nothing else. In my opinion, both of these decisions were the opposite of what needed to happen. My small consulting company should have used an internal resource or 2 to roll our own, and the mothership should have subscribed to Workday.
In this specific case, I worked with one of the large manufacturers (hi Khronos) and this is their customer: clocking-in is not your business, your business is selling something or running a hospital or whatever and clocking-in is a problem you that want to solve by writing a check. Not by hiring staff to set up or replace broken units (you generally pay a vendor for this) or adding any other overhead to your operation besides a check, and this is a service Khronos would love to charge you for.
Also on a human level, Khronos and orgs like them tend to have a good sales staff that are talented at knocking on the door. Lower-margin sellers can't afford to compete with the (expensive) talents of a good salesperson. Cisco is the gold standard of this behavior, there are almost always cheaper options that will work as well, but as they say, nobody got fired for buying IBM/Cisco and their sales reps skillfully deploy steak dinners and golf trips to IT execs with great success.
I'm glad they haven't got to slick.
There's usually an underpaid employee who has to deal with the devise.
I dread the day where employees are required to wear "productivity" wrist bands, like the one Amazon patented.
I see it coming. The employers will know exactly where (gps), and what every employee is doing.
(The Fairmont Hotel wanted my father to carry around a pager. It was a directive from the Swiglets. (inside joke).
He kept droping it down the elevator shaft. They finally got the hint. They couldn't fire him because he was the only one who could reset the switch gear breakers after a hard rain. The breaker hot bars would bubble (thousands of volt amps) when flooded. My father would walk in the bubbling water to reset the flooded breakers. The only reason he wasen't electrocuted is because it was rain water, and luck. I belive the old hotel fixed the switch gear by now.)
And now that I think about it there's a comment of mine somewhere with a link to a line of connected motion sensors mounted in office chairs to "optimize lightning costs".
edit: found it again:
https://partners.sigfox.com/products/occupancy-and-chair-uti...
Identified needs – why to focus on office chair monitoring?
Data-driven managers love to monitor home officing, track work hours, save space and costs incurred by unoccupied desks when employees work away from an office or on flexible schedules
Companies are willing to avoid wasting money on lighting, heating, and cooling
Facility companies want to optimize cleaning services
There is a shift to working hubs, hot seats and a need for shared space utilizationDo the employees have to click on a form field before swiping their badge, etc?
Or maybe there's something like the RFID reader sending an unusual keycode that an event handler in the browser can wait for?
When I tap the ID card, it would just blurt out my uni ID number in whichever field had the focus.
Some of the original Yubikeys worked this way, and there are some barcode scanners out there that emulate keyboards too. I've seen some web based implementations go to great lengths to hide this fact.
I'd certainly prefer something like un-typeable keycodes to listen for as start/end markers.
Presumably you know the length of the string generated by the barcode reader, so you just set the max length of the text field to that length, and/or ignore anything longer via JS.
I'm not affiliated with this project but built a few variations of the same thing several years ago.
Essentially, yes, you can configure these scanners in a keyboard mode such that they type the student id with a return. Just set up a simple form with focus on a text field, and reset after each submission.
One iteration I worked on used some other groups web form that wasn't design with this case. I just set up my Pis to automatically launch Firefox on boot, and wrote user script to browse the site and launch the form.
This was all built into the image so if anything ever went wrong, just write the image to a new SD card and reboot.
You can set up the scanners as to scan cards passively as well, but (the way I did it anyways) they won't decode the id when configured this way. Or maybe it was just more fun to reverse engineer it.
This may be true for RFID scanners, as well.
They emulate a keyboard and some have pass-through ports, for PS/2 keyboard interfaces.
For more ‘custom’ solutions, some also have serial interfaces, so they can be programmatically controlled to scan and read based on the logic you implement.
I do wonder at use of SD card in any sort of production environment. I've got half a dozen rasps and a dozen+ sd cards...and well it's been patchy. Sometimes it lasts sometimes not with no obvious pattern.
I don't mind that SD card are slow AF, but really feel the rasp could have been taken to the next level with a better (reliability) storage solution.
Specifically for log files, I use Log2RAM which has a RAMdisk that mounts /var/log, and then periodically (based on schedule, defaulting to daily) flushes it to /var/hdd.log/
Normal level writes to os disk should not be a OS fatal situational in <year. No matter how you look at this it is not awesome.
--
[1] https://www.raspberrypi.org/products/compute-module-4/?varia...
We (some coworkers and I) back when RPis were becoming more mainstream (6... 7 years ago or so) of converting these systems to RPis. This would free up a dozen systems per store (about 3500 machines) and reduce power consumption per store from 70w/machine (estimate) to 5w/machine. So, lets go with round numbers.
70w * 10 machines = 0.7 KWh; 5w * 10 machines = 0.05 KWh.
Take that to 24h/day and you've got 17 kWh/day. $0.11/ kWh and we're at about $2/day/store... $600/day across all stores for the old systems and $40/day for RPis.
And that's not taking into consideration the hardware and the "ok, we keep a stock of a dozen RPis at each store with SD cards for the different departments and their configuration..."
Anyways... the company didn't go for it at the time. It was rather disappointing for us. It would have been a rather neat project that I still believe could have saved a good bit of money in just electrical costs (and more in hardware costs and longevity). I'm not sure if they've modernized that part of the stores since or if they're still scrounging eBay.
It was a medical device manufacturer, so it wasn't just company inertia holding them back - any change had to go through regulatory compliance. The company was in the midst of replacing their planning and tracking system when I left, and they've changed ownership twice, so I presume they've managed to replace those old systems too. I shudder to think of the problems they're having if they haven't.
That said, I hear PRI4 can boot off USB and it's faster than the SD card. At least that's my hope.
My favorite timeclock had a two-row character lcd character display, membrane keypad for digits and maybe 5 additional function buttons: clock in, clock out, lunch in, lunch out, and admin-mode.
We used the last 6 digits of our SS# to clock in and out with.
It had a serial interface.
Use an Arduino, and you can add the serial display, keypad if needed, serial rfid or barcode scanner, and ethernet or wifi.
Added ISO 14443 to it via an unused internal USB port I found once I cracked it open. Got Dropbear SSH running on the embedded Linux it was using. I think I originally rooted it by removing its internal SD card and fooling with the file system.
I can’t tell what part of this code interacts with RFID, maybe it will give me some ideas of how to do it, is it all happening through writing events to a CSV that the web interface reads from?
Is this US-only thing or popular around the world also?
FWIW, I use an ipad to enter a code at my kids' pre-school. The screens are frequently messed up.
Also you're comparing to a tablet, a device with a _built in battery_ that prevents hard power loss in 99% of circumstances. Just because you press the power button on your tablet does not mean it is immediately cutting power to the device. If you add a battery backup and soft power switch to the Pi you would be just as reliable as a tablet. If you remove the battery from a tablet and hard cut the power, you can just as easily corrupt its flash memory filesystem.
Cell phones (at least androids), make lots of partitions to isolate user data and software upgrades, falling back to known good ones if the new software update doesn't run.
Replace a ~$20 part with a ~$150 part, and you can avoid spending up to $1000 sending a repair crew, paying for the vehicle, gas, employee pay, time spent by them, etc. to a single unit.
You'd be lying through your teeth if you think a fleet of off the shelf raspis will last more than 5 years without most failing.
Anyone well versed in cost management within technology will know this.
You're not "well versed in cost management", you're a sucker with buyers remorse for vendor bullshit.
I'm excited to see the replies to your response that have some practical suggestions to prevent this.
What SD card do you use for yours?