I am trying to develop a Time Attendance System with use of barcodes printed on id card, I think it can be achieved in the following way, but i dont know which tool to use. I have this abstract steps already outlined.
Step 1: I want to add each user information to a data base which will have a unique id that will be used to generate the barcode.
Step 2: There will be a Standby barcode reader that will read the barcode, the application logic will decide which user owns the data and check the time the user clocked in, the application then write the time clocked in into the database or to a txt file or any where it wants to write to.
Step 3: At day end, A report will be automatically generated everyday and saved for collection by the admin.
The system seems simple, but I just know i can do it but I dont know how to go about it. Can any one please help. I really need to do this. I dont know if there is any tool that can be recommended or available for this system to work
Thanks for the invite!
This is one of those systems where I'd say, if you can just buy something (and you can) then just buy it. There is a lot of liability for a company to keep correct attendance; people will get pissed if they don't get paid on time or correctly; the company can get sued if it's incorrect, etc...
But - if you must -
1 - you'll need a desktop app of sorts be it Windows or OS X or Linux to interact with the barcode scanner. A small pc or Mac Mini to place at the scanner location to plug the bar code scanner into - look into an HP Thin Client or similar - something you can hang on a wall or under a desk.
2 - Find a good bar code scanner with a well documented API - make sure the API can be used in VB.net or C# for a pc, Objective-C or Swift for the Mac (I can't speak to linux)
3 - Build your app - in Windows, the easiest choice will be VB.net or C# - both have tons of tutorials and docs online. If this is a 1 off for a company, I'd say run a web server in house and send attendance to that - again, for liability. But if you intend to sell as a product, make your app configurable to send the data to a cloud server.
The server side of things can be as simple or as complex as you want. With PHP / MySQL - probably a lookup table with the name of employee and their barcode.
Then the actual attendance table - id of employee, and time scanned.
This is where things get complex - you'll need to calculate missed punches (scans), punch out and in for lunch, break, etc... Produce a daily hours report for each employee. Probably an exceptions report - ie: "Joe punched in at 8am, punched out at at 12pm for lunch, put out of work at 5pm" - so Joe missed his punch for returning from lunch. Policy will decide who enters that missed punch (now you need a web interface) and that it's documented. Also - employees can be shady when left un checked - what if another employee punches their friend in for them? Covering for them in other words because they might get in trouble for going over their half hour or hour lunch time?
How will the reports be viewed? Can the employee view the report? Now you need an auth system. Just management? Still some auth but not as complex. Can employees view their attendance log remotely or just while in the office? Can Management? Will management be ok with a web interface or will they want to download the report as a CSV? XLSX? PDF? Needs to be printable also so if there is an issue, HR can print the report and put it in the employee file.
Lots of moving pieces to this. You sound like you might be in a rush - this really isn't a weekend project, haha.
Hello! Before start giving answers I need some info: how many users needs to be tracked?
OS (mac, gnu/linux distro, windows)?
Preferred stack (node+gulp+browserify, node+grunt+wellIthinkYouGotThePoint)
I recently played with barcodes for an store app, the barcode get printed with a Dymo printer (but whatever printer can do the job), then in the shop the cashier read them with a barcode scanner (around 14$ on amazon) and place the order.
With nodejs, I used this library for generating the barcode: http://lindell.me/JsBarcode/
For reading them instead, is dead simple: those barcode scanners simply read the code and send it to the PC "emulating" the keyboard: is like you typed the code by yourself, with an extra "end of line" character (usually \n but some use \r\n)
I highly discourage doing this project. There are very good and stable solutions with lots of configurabilty that will integrate in whatever intranet you already have.
Though, if you really have to do this, you might want to buy a desktop scanner with a driver which writes the barcode to std-in. All you have to do is put a terminal somewhere with that scanner (I would go for a Raspberry Pi) and open up the website.
As database, you really should use something stable. Use an enterprise product. Use a licensed MSDB or Oracle DB.
As DB and application servers (separated!) you should use virtual servers which run on clustered hosts (e.g. MS Failover Cluster).
Everything else is just writing some application which inputs data into some database. You probably should add a GUI for the employees and employers as well. I highly recommend using ASVS, as well as other OWASP projects, in order to secure the whole system. You might want to join the discussion in this question.
Also be very strict about who can access the database. You don't want your employees to "fix" their timestamps themselves...
don't waste you important time, there are many free and open source projects are available across the web. like this one ==> School Management Software & EducationistPK ==> School Management Software
also you may need to use Bulk Branded SMS ==> Bulk Branded SMS Pakistan
Like everyone else has stated, we'd need a bit more information for being able to answer this with any concrete solutions. But let me try and split up your steps into something very basic so that you can get something together.
Step 1: Database
Start with a simple MySQL database. One table called
userfor storing users. It should have a unique identifier for each person. This could be a numeric ID but it could be many other things. If this was for a company, why not use their corporate email address for example? Another table called "attendance" with two columns (in a compound key) - user ID & time.Step 2: Barcode Reader
Here's where things could get complicated. What's your barcode reader? How is it interfaced with? Is it unmanned so people are expected to place their card in the right place? Or is it manned by a security person who does the scanning? If you are doing this as a learning experience, here's what I'd recommend: use a mobile phone as the barcode reader. Most modern phones have cameras and there's a wealth of tutorials out there that teach you to write a phone app. For example, here's a tutorial for writing a QR code reader in Swift. QR codes being a type of barcode if you aren't familiar with them. That could take the information required & send it off somewhere...
Step 3: Putting It All Together
You'll finally need something to tie the data all together and do the reporting your after. How about a simple web service with a REST API? It would have one endpoint to take data from the phone/barcode reader and store it in the database. Another endpoint would then be needed to generate a report the user could access via a browser. If they want to print it, they use the browsers print functionality.
And there you, that would be all the parts that are required. There's still plenty of questions to answer in there (e.g. security). But hopefully that's given you some food for thought. Good luck with it!