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 user for 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!