We needed a system to operate our Hackspace utilities shop, where we sell materials, snacks, and even the use of some restricted equipment. It needed to be instantaneous, allow for a small amount of debt in case of emergency and work using our College ID cards to keep track of who is purchasing what.
What it does
Each student has a set credit assigned to them that they may spend in our shop's products. To start the transaction they must tap their college ID onto the RFID scanner and, after being able to check their current credit, they can scan the barcode of the product they want to buy. If this transaction would leave them with less than £5 of debt, the may scan more items or proceed to checkout. Their credit can be topped up through our College Union website which will, in turn, update our database with their new credit amount.
How we built it
The interface is built in bootstrap-generated webpages (html) that we controlled with python, and these are locally hosted. We hosted all of our databases on firebase, accessing them through the firebase API with a python wrapper.
Challenges we ran into
Connecting the database with the GUI without the python program crashing took the majority of our debugging time, but getting it to work in the end was one of the most incredible moments of the weekend.
Accomplishments that we're proud of
We've never made a webapp before, and we have been pleasantly surprised with how well it turned out: it was clean, easy to use and modular, making it easy to update and develop. Instead of using technology we wouldn't have available back in London and doing a project with no real future outlook or development, we chose to tackle a problem which we actually needed to solve and whose solution we will be able to use many times in the future. This has meant that competing the Hackathon will have a real impact in the every day transactions that happen in our lab. We're also very proud of developing the database in a system which we knew nothing about at the beginning of this event: firebase. It was challenging, but the final result was as great as we expected.
What we learned
During the Hackathon, we have improved our coding skills, teamworking, database management, GUI development and many other skills which we will be also able to use in our future projects and careers.
What's next for ICRS Checkout
Because we have concentrated on a specific range of useful tasks for this Hackathon, we would love to be able to develop a more general system that can be used by different societies, universities and even schools; operated under the same principles but with a wider range of card identification possibilities, products and debt allowance.