Pay. Tap. PoP.

PoP (Proof of Purchase) is an Android Application that virtualises the storage, organisation and sharing of receipts using NFC technology. PoP aims to help users 'future proof' their receipt management process in a digital era, with fast and easy in-app features.

Collect

Organise

Share

What is PoP

Proof of Purchase (PoP) is an android application aiming to provide an alternative to the production of paper receipts. By creating a virtual receipt for customers at the point of purchase, the tap, or “PoP” interaction will send the receipt via NFC (Near Field Communication) from the POS System (The location of purchase) to the customer’s mobile phone.

Important receipt information is sent to customer via NFC. When/If internet connection is available, the data will be retrieved from a secure cloud database. This information will then be saved on a local database on the phone, allowing offline use. Having the receipts stored in the cloud allows for access on multiple devices.

How it works

We used a MySQL Database on a virtual XOA MySQL Server which communicates with our web client via PHP.

First, the POS system generates the data to be printed onto a receipt via the stored information and the items scanned. This data which is generated by the POS system is then made available to be printed physically or to be 'PoP'd' by an additional user of the PoP app. In this 'PoP' transaction the POS system will convert the receipt data into a readable format for our PHP Web Service to handle and insert into our MySQL Server.

Meanwhile the POS system also sends some basic receipt information to the PoP device with a UUID through NFC to identify the full receipt information from our database. This had to be done as NFC has a limit on how many bytes can be transferred which we foresaw as a possible issue in the future with receipts possible having to much information on them to be transferred correctly. When an internet connection is available on click of the 'PoP'd' receipt, the userid is connected to the receipt containing the corresponding UUID to display all of the receipt information in its entirety.

All data pulled from our web service is requested from our MySQL database and is returned in JSON format for our PoP app to read, interpret and use accordingly. PHP functions are requested by our PoP app and will do things like create users, search by parameters and pull all relevant receipt information.

Database Schema

Walkthrough

Meet the team!

PoP (Proof of Purchase) was created for my fourth year project. The team consisted of 4 members.

Hey, I'm Adrian. My primary role for PoP was logistic front-end development. I handled user interaction with the app, provided the NFC interaction between customer and merchant and added additional security with the use of biometric authentication. Additionally I created the mock POS system for testing and demoing purposes.

Hey, I'm Nick. My primary role was UI Design and implementaion for PoP, which meant I was responsible for desiging and implementing the user interface for PoP. My secondary role was front-end developer, I was responsible for some of the export, search and geo location map features.

Hey, I'm Sean, I'm Scrum Master and Lead back-end developer for PoP. I have been Class Rep for many years and partook in an intensive coding project in Lens, Frnace with an international team.

Hey, I'm Aoife! My primary technical role for PoP was cloud database and server administrator. I was also Team Lead for the project, and carried out user testing & product owner duties.