Skip to content
Jakub Zając

01 / Loyalty app and admin platform

IZAPzoo

A complete loyalty programme for a brick-and-mortar retail chain: a mobile app that puts the customer card in the phone, a checkout-side flow for staff, and an admin platform for points, rewards and promotions.

Client
IZAP, a brick-and-mortar retail chain selling pet supplies and fishing gear.
Services
Mobile appsSoftware developmentDatabases and data
App splash screen with the loyalty programme branding

Overview

IZAPzoo is the loyalty programme of IZAP, a pet-supply and fishing retail chain, moved entirely into the digital world. Instead of a plastic card, the customer carries an app: they create an account, collect points on purchases, redeem rewards and vouchers, follow promotions and see their full transaction history. I designed and built the whole thing, from the Android and iOS apps through the cloud backend to the company's admin platform.

The heart of the system is the customer's QR code. At the till, showing the phone screen is enough: the cashier scans the code, the transaction lands in the system, points are credited automatically and the customer sees them on their account right away. On the other side sits the admin platform, where the company manages rewards, vouchers, promotions and users, with permissions matched to each role — a cashier sees different things than a store manager, and a manager different things than an administrator.

Both apps went through the release process and are available on Google Play and the App Store. The backend runs in the cloud and was designed to grow with the chain, so bringing another store on board requires no code changes.

Challenge

A loyalty programme in physical retail has one non-negotiable constraint: the queue at the till. The entire flow — identifying the customer, crediting points, redeeming a voucher — has to close in a few seconds and work reliably on any phone, including for customers who are not technically fluent. If the app slows the till down even slightly, staff stop recommending it and the programme dies in practice, no matter how good it looks in marketing materials.

The second challenge was data consistency and trust in the points balance. Many stores, many cashiers and thousands of small operations mean the system needs a single source of truth: a balance that cannot be corrupted from the customer's side or by a slip at the till. Add to that the personal data of programme members, which has to be stored and processed lawfully, and the requirement that promotions and rewards be managed by company staff without a developer involved in every change.

My role

I was responsible for the project end to end: needs analysis with the client, system architecture, the data model, the mobile apps for both platforms, the backend, the admin platform, and the releases to Google Play and the App Store. The client talked directly to the person writing the code, so every decision, from the shape of the cashier screen to the database structure, was made without intermediaries.

The working standards — version control, testing, separate environments and documentation — carry over from projects delivered in enterprise settings, including work connected with international organizations such as PwC, Roche and E.ON. For the client this means a system that can be developed safely and, if it ever comes to that, handed over to another team.

Solution

01

Registration and the loyalty account

The customer creates an account in the app in a few steps and immediately gets an active loyalty card. Sign-in is built on proven authentication mechanisms, and the data collected is limited to the minimum the programme needs to operate. The account keeps everything in one place: the points balance, available rewards, vouchers and purchase history.

02

The QR code and the checkout flow

Every customer has a personal QR code in the app, and it acts as an identifier — nothing more. The cashier scans the code, the system recognizes the account and records the transaction, and points are credited on the server. The cashier screen was designed for shop-floor reality: a minimum of steps, clear confirmations, and predictable behaviour even when the code is shown on a scratched screen or in poor light.

03

Points, rewards and vouchers

Points are stored as a ledger of operations rather than a single overwritten number: every credit and every redemption leaves a permanent trace, so a balance can always be explained and verified. The rewards catalogue and voucher system build on that: the customer exchanges points in the app, and redemption at the till is confirmed by the system, which closes the door on using the same voucher twice.

04

Promotions and transaction history

For the chain, the app is a direct channel to the customer: promotions and special campaigns are configured in the admin panel and published without a developer's involvement. The customer, in turn, sees the full history of their transactions and points operations. That transparency builds trust in the programme more effectively than any promise in the terms and conditions.

05

The admin platform and roles

The admin platform handles the programme's daily operations: managing rewards, vouchers, promotions, customer accounts and system users. Permissions are role-based — a cashier performs checkout operations, a store manager sees more, and full programme configuration is reserved for administrators. Sensitive operations are logged, so it is always clear who changed what and when.

06

The cloud backend and app releases

The backend runs in the cloud and is the single source of truth for the whole system; the mobile apps and the admin panel talk to the same API. The architecture assumes the chain will grow: more stores and more traffic are a matter of configuration and resources, not a rebuild. I also took both apps through the Google Play and App Store review processes, including preparing the store listings.

Technology stack

Mobile apps

  • Android
  • iOS
  • [DO UZUPEŁNIENIA / TO BE PROVIDED: technologia aplikacji mobilnej — framework wieloplatformowy lub kod natywny]

Backend and API

  • [DO UZUPEŁNIENIA / TO BE PROVIDED: język i framework backendu]
  • [DO UZUPEŁNIENIA / TO BE PROVIDED: mechanizm uwierzytelniania i autoryzacji]

Database

  • [DO UZUPEŁNIENIA / TO BE PROVIDED: silnik bazy danych]

Cloud and distribution

  • [DO UZUPEŁNIENIA / TO BE PROVIDED: dostawca chmury]
  • Google Play
  • App Store

Engineering decisions

  • 01

    The server is the single source of truth for points; the mobile app calculates nothing locally and only presents backend state. That eliminates an entire class of balance-drift problems between devices.

  • 02

    The QR code is purely an identifier, never a carrier of value: scanning it changes nothing on its own, because every operation is authorized by the server. Forging or copying a code therefore gives no access to points.

  • 03

    Points history as an operations ledger instead of an overwritten balance: any discrepancy can be traced back to a specific transaction, which in a loyalty programme is a precondition of trust on both sides.

  • 04

    The cashier screen was designed from the queue backwards, not from a feature list: first I established how many seconds and how many taps serving a customer could cost, and only then the interface layout.

  • 05

    Role-based permissions from day one rather than bolted on later, so separating duties between cashiers, managers and administrators never required rebuilding the panel.

Security & reliability

  • Personal data is limited to the minimum the programme needs, and its processing was designed with GDPR obligations in mind, including handling account-deletion requests.

  • Passwords are stored only as hashes based on proven algorithms, and all traffic between the apps and the backend is encrypted.

  • Every operation on points, rewards and vouchers is validated and authorized server-side; the database design and business rules make things like double-redeeming a voucher or manually manipulating a balance impossible.

  • The admin platform follows least privilege: each role sees only what it needs, sensitive operations go to an audit log, and the data is covered by regular backups.

Outcome

The IZAP chain now has its own digital loyalty channel: customers carry the card in their phone, and staff in every store work from one consistent view of points, rewards and transactions.

The company runs promotions, rewards and vouchers on its own through the admin platform; launching a new campaign requires no developer contact and no app update.

The apps are live on Google Play and the App Store, and the cloud backend is ready for the chain's further growth, in the number of stores and programme members alike.

Gallery

Home screen — points balance, progress to the next tier and featured coupons
Home screen — points balance, progress to the next tier and featured coupons
Onboarding — choosing a home store
Onboarding — choosing a home store
Profile — membership tier, receipt history and account settings
Profile — membership tier, receipt history and account settings

More work

Let's talk about your project

Happy to walk you through how a similar approach would work in your case — and what I would avoid.