Inspiration
Currently, the way most businesses utilize coupons is through email lists, snail mail, or in-app rewards. These modes of distribution are passive and leave the customer unengaged. This problem prompted us to create Thebes to improve customer engagement and make the retail process more enjoyable.
What it does
- Streamlines the process for businesses to generate coupons linked to NFC tags.
- Allows users to scan NFC tags to redeem coupons.
- Displays coupon details and generates QR codes for users to redeem coupons.
- Increases customer engagement by allowing businesses to create scavenger hunts with coupons as rewards.
How we built it
- React
- We used React to design our frontend admin dashboard for businesses, utilizing functional components along with hooks to track inputted user data.
- NCR's API
- We used basic authentication to make requests to NCR's Digital Coupons API.
- When a business generates a new couupon on the admin dashboard, we call the "Create Coupon" endpoint to generate and store a new coupon.
- When a user scans a NFC beacon, we call the "Retrieve Coupon by Id" endpoint to allow the user to redeem their coupon.
- GCP
- We use two GCP serverless Cloud Functions to interface with the NCR APIs from our frontend, thus bypassing the same-origin policy.
- One function is used when the business generates a new coupon, where the fields entered are sent to our cloud function and processed to be sent to the digital coupons API.
- The second function is queried when the user wants to redeem a coupon, where it returns the redeemed coupon's details.
- Kotlin
- We chose Android because there are fewer restrictions on accessing NFC capabilities on the phone.
- We chose Kotlin over mulitplatform development tools such as Flutter and React Native due to its close integration with Android deveopment.
Challenges we ran into
- No one had prior experience with Kotlin and Android development
- We didn't have easy access to NFC tags, so we had to improvise
Accomplishments that we're proud of
- Getting the NFC reader to work on the mobile app
- Learning authentication with NCR's API
- Pretty design
What we learned
Over the last 36 hours, we learned about the inner-workings of NFC technology and how to interact with NFC devices. We also learned Android development, how to integrate frontend applications with backend components, and API authentication and use.
What's next for Thebes
- Allowing users to participate in multiple companies' scavenger hunts.
- Storing user progreess across multi-part scavenger hunts with NFC beacons as checkpoints.
Citations
- React Design Template: https://ui-lib.com/downloads/matx-react-dashboard/
- NFC on Android: https://proandroiddev.com/working-with-nfc-tags-on-android-c1e5af47a3db
- QR Code Generation: https://www.geeksforgeeks.org/how-to-generate-qr-code-in-android/
Built With
- gcp
- javascript
- kotlin
- ncr-bsp
- ncr-digital-coupons-api
- node.js
- react
Log in or sign up for Devpost to join the conversation.