I set up the dashboard and complete backend of Znap, an app used in Dubai to receive cash back for shopping, watching ads & participating in quizzes. I created various components for this project:

– Dashboard

The dashboard is accessible by the web. It is used by the back office team to process cashback, payment requests & support tickets, add/remove cashback offers, videos, banner ads & products eligible for cashback and to send promotional notifications.
It is also used for creating reports with visualizations to understand offer usage patterns, the profile of users claiming cashback, supermarkets with most cashback claims, etc. It has a user management system with different user roles 

– Rest API

The Rest API is a setup with Flask. The APIs are used to send/receive data from the app and the dashboard. The various API functions included in the project are:

  • User Registration & Login
  • One-Time-Password Verification
  • Storing & Retrieving User Profile & Cashback History Data
  • Uploading Images & Videos from the app & dashboard
  • Sending Push Notifications & SMS
  • Elastic Search to find Products/Offers
  • Referral System
  • Managing Task Queues

The APIs connect various external services like

  • AWS S3 for file storage
  • AWS SES for sending transactional & promotional emails
  • AWS SQS for task queues
  • SMSGlobal for sending One-Time-Passwords for Mobile Verification
  • FCM to send Push Notifications

The API latency is improved with AWS API Gateway & AWS Cloudfront. AWS Cloudfront is also used to serve images & videos on the app much faster.