Between December 5th-6th, the Zitec Team (Vlad Stefanescu, Gabriel Croitoru and Tiberiu Popovici) entered one of the biggest Hackathons out there: London Disrupt, organized by TechCrunch. We had fun, we won some prizes, we drank some beer but, most importantly, we created a hack based on Clover and learned some new technologies.
One of the main sponsors of the event was Clover, a San Francisco based company that replaces your cash register, payment terminal, receipt printer, and barcode scanner with an integrated suite of products. Clover offered to give a prize for the most interesting app utilizing the Clover platform. We decided to target this prize because we really liked the technology and, after a brief research, we found that the Clover APIs had great docs and the implementation seemed straightforward.
The idea for our app came one day, during our lunch break. We noticed that there are a lot of restaurants in our area that offer discounts for the employees of nearby companies. Our app, called “Company Perks”, aims to provide means for managing the discounts and identify the loyal customers by NFC tags. Usually, an NFC tag is the actual employee access badge but it can be anything, from a bank card to an Oyster card or even custom NFC tags branded by the merchant.
What it does
The Company Perks app allows NFC tag scanning. The NFC tag is used to identify the customer and apply the discount to the current open order on the Clover Station. Also, the customer has the ability to self register his NFC card by selecting the company he’s employed at. By using this approach, the cashier’s flow is not blocked at registration time and in order to administer the discounts, we also built a management interface from which the merchant can associate discounts to companies and see loyalty statistics.
How we built it
First of all, the app has 3 components.
1) The Android app is used for scanning the NFC tags. This app is installed on an Android device, other than the Clover Station. The Android device will be on the cash register desk, near the Clover Station POS. Using this app, the loyal customers will scan their company badge at checkout time and the discount will be applied for the order. The Android app exchanges data with our backend API.
2) The Backend API is used for handling the communication between the Android app and the Clover API and also with the administration interface. The backend was built using Parse.
Challenges we ran into
We ran into a few issues, mostly related with the Clover Station’s security policy. We discovered that, although the Clover Station is a very fast NFC reader for credit cards, it doesn’t expose that NFC capability for developers because of PCI Compliance reasons. Because of this, we decided to leverage the NFC scanning on another Android device. This approach demonstrates that you can use an external device, maybe a dedicated NFC scanner, maybe just a simple Android phone to extend the capabilities of the Clover Station.
Another important issue to be mentioned is that, because of the same reasons, our Clover Station app could not receive Push Notifications. Initially, we wanted to Push to our app whenever an NFC tag would be scanned on the external device and then, the app would use Clover’s Android API to apply the discount to the current order (being on the same device). Because of this, we abandoned the idea of making an app for the Clover Station and we used the REST API instead.
What we learned
Since this was the first time we’ve played with the Clover APIs, we learned that there are a lot of integration methods available and we explored their Android and REST APIs. We also found very interesting that, while using the REST API, the device updates really quick. Apart from this, none of us used Parse before, but we heard many good things about it and we decided to give it a try.
What’s next for Company Perks
Company Perks demonstrates the business idea of leveraging an external device in order to scan NFC Tags, while these tags can be the employee access badge, the public transportation subscription card (RATB, Oyster) or even merchant branded loyalty cards, NFC capable. The idea can even be extended to aggregate discounts, by releasing NFC loyalty cards which can be used across a whole network of shops, restaurants or other Clover merchants.
From a technical point of view, we hope that the NFC capability on the Clover Station gets available for 3rd party developers soon, since this would remove the need for an external device used for scanning, thus decreasing the transaction time. The thing is, a system like this, used for identifying an NFC card only needs the NFC tag id and not the other data stored on the tag, therefore our approach is secure.
We enjoyed the event overall, especially coding for the app and meeting the folks from Clover. We also liked the Clover Station, which is actually a custom Android tablet with a custom ROM and some hardware attached (used mainly for handling Credit Cards) and we are very proud that, despite fierce competition, we managed to snatch the prize.