[HN Gopher] City of Bloomington's Raspberry Pi Based Employee Ti... ___________________________________________________________________ City of Bloomington's Raspberry Pi Based Employee Timeclocks Author : ethanpil Score : 53 points Date : 2021-07-08 20:16 UTC (2 hours ago) (HTM) web link (city-of-bloomington.github.io) (TXT) w3m dump (city-of-bloomington.github.io) | jazzyjackson wrote: | I have a similar project I need to decide how to do, basically | have the Pi host a website whose data is updated by tapping an | NFC card. | | 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? | user3939382 wrote: | I previously bought this thing: | https://smile.amazon.com/gp/product/B0155NL3MA | | 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. | adolph wrote: | _Timetrack is a web application to handle an organization 's | employees' time keeping data. It is designed so that some | employees will use their ID card to scan their clock-in and | clock-out times. Others will be able to enter their time-in and | time-out using the web interface directly. The system is designed | to have two level approval process. The first is the group | manager approval then the final approval is the director approval | named 'Payroll Process Approval'. Currently the application | handles two weeks pay period._ | | 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... | EvanAnderson wrote: | The time tracking services and software I've worked with make | their money by scaring employers re: regulatory compliance | ("Subscribe to our service and we'll keep you legal w/ local HR | laws...") or by making time tracking part of a larger suite of | HR products. | andscoop wrote: | I don't think it's mentioned explicitly anywhere, but | Bloomington Indiana is a college town and Indiana University | has sought after computer science, informatics, business and | public affairs programs. | | 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. | yeuxardents wrote: | In my experience its one of those solved problems where only a | handful of products do it well, and well = pretty terrible for | anyone SMB. | xupybd wrote: | Or it's terribly expensive. We just ripped ours out when the | cost got to $600 USD per month. We were just clocking in and | out factory workers. | | We now use a pen and paper. I've looked at open source | options, the landscape is not great. | da_chicken wrote: | Yes, speaking with experience from a public K-12, timeclocks | and timekeeping is an industry where $$ gets you something | that claims to do everything but actually does nothing but | fail or cause problems, $$$ gets you something that's | stripped down total crap that can be made to work after | modest concessions, and $$$$$$$$$ gets you something that | does what you want reliably. | | It's not hard, but everyone who can do it well has noticed | what their competition is charging and followed suit. | alias_neo wrote: | I love the lengths it went to explain how to flash the microSD, | connect the ribbon cable for the display driver board and then | skipped over almost everything different and interesting about | the project. | xupybd wrote: | It looks like that page is just a setup guide. At least it's | linked as a setup guide on the GitHub page. | tyingq wrote: | I'm curious how an RFID reader works in a "not clunky" way since | the application is delivered via a web browser. I'm assuming the | RFID reader is just showing up as a virtual keyboard in this kind | of setup. | | Do 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? | zeusk wrote: | My university had this, and you're right. | | When I tap the ID card, it would just blurt out my uni ID | number in whichever field had the focus. | Havoc wrote: | Excellent. I think rasps could do a lot more if knowledge of them | and basic programming was more common. Plus a ton of my *nix | learning was rasp based since wiping an SD card is easier than | having hardware & understanding for VMs. | | 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. | dan_quixote wrote: | I've seen success using RAMDisk instead of running entirely on | SD card | 908B64B197 wrote: | Use it in read-only mode and have durable writes go to the | cloud. Better, have all your software already packaged to the | image you'll flash on the SD card. | | https://learn.adafruit.com/read-only-raspberry-pi/ | spicybright wrote: | Too bad it's a Pi inside. Give it a few years and most will fail | from bad SD cards... A cheap consumer tablet will keep ticking | for years. | amiga-workbench wrote: | Can't the Pi boot off a network? | syntheticnature wrote: | Indeed it can! | jazzyjackson wrote: | ...so it's a good thing the part that wears out is the easiest | thing in the world to replace, right? | SahAssar wrote: | Cheap tablets use eMMC so they use the exact same storage | technology with the same problems. | qbasic_forever wrote: | You can directly boot a Pi from USB now with the Pi 4. Switch | to a SSD and you won't worry about SD card corruption as much. | The bigger issue is that you need to cleanly shutdown any | embedded system instead of just yanking or hard cutting power-- | flash memory and filesystems need time to sync. The Pi is no | more or no less susceptible to this problem. | | 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. | nightfly wrote: | Any serious embedded system should designed with minimal | writable data: ro os and minimal writable data partitions. | And at a minimum do manual syncs. Hopefully using a data | storage system that in the worst case you lose a few records | devmor wrote: | Oh no, an easily-replaceable $10 part will fail instead of | having to pay a vendor thousands to replace an entire unit? | What a problem. | recursive wrote: | So it will fail after the same length of time that a consumer | tablet will keep ticking? | | FWIW, I use an ipad to enter a code at my kids' pre-school. The | screens are frequently messed up. | rubicks wrote: | What happens when one of these devices is admitted as trial | evidence? Is there a hardware root of trust that can be used for | cryptographic verification? Has anyone succeeded in doing trusted | boot on a Raspberry Pi? | thedanbob wrote: | I made similar units for my org to replace the old iPod Touch | units, most of which were suffering from swollen batteries. The | cheap touchscreens I used tend to only last a year or two but | they're only ~$30 on Amazon. So far no SD cards have failed. | EvanAnderson wrote: | Time clocks are a terrible racket. The hardware is ridiculously | overpriced, and most of of the units I've seen are tremendously | low-tech (a microcontroller w/ a no-name serial-to-Ethernet or | serial-to-Wi-Fi board strapped to it). They speak ugly | undocumented binary protocols and, increasingly, are tied to ugly | web-based hosted subscription services. | swamp40 wrote: | What is your idea of a beautiful protocol/method? | EvanAnderson wrote: | Something documented. Binary is fine. Text is fine. Document | it. | xnyan wrote: | Often once it's established that X costs Y, it's very easy to | just keep writing the check especially when it's probably not a | huge expense relative to revenue and the risk of getting in | trouble if the change goes wrong. | | 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. ___________________________________________________________________ (page generated 2021-07-08 23:00 UTC)