FinTech
    Internal Tools
    RBAC
    Ledger
    GCP

    RewardsX Case Study

    Internal operations platform for a loyalty and rewards fintech

    Built and maintained the internal backbone that curates banking, merchant, and rewards data and runs earn/redeem ledger flows for a next-gen loyalty platform used by staff and consumer apps.

    Role
    Full-Stack Developer
    Timeline
    2024–2026
    Stack
    Next.js
    Node.js
    PostgreSQL
    Firebase
    GCP
    Flutter
    Team
    Engineering / product

    The Problem

    RewardsX runs consumer loyalty experiences (POS, QR rewards, personalized offers). Those apps need accurate, up-to-date data and controlled operational workflows, but that work cannot live in the consumer app itself.

    The team needed a dedicated internal platform to:

    • Manage banks, credit cards, merchants, offers, and rewards rules at scale
    • Run approval workflows and role-based access for admins, data entry, and support
    • Maintain a transaction ledger (earn, redeem, reverse) with integrity checks and downstream events
    • Handle post-transaction ops (disputes, chargebacks)
    • Integrate multiple geocoding providers for merchant location workflows
    • Feed consumer apps (e.g. Orbiter POS) via secure APIs without exposing internal tooling

    The Solution

    BRINE (Internal-BRN) is an internal operations and data platform that acts as the source of truth for RewardsX loyalty ecosystem. Staff use a web admin to manage catalog data, permissions, and ledger operations. Consumer-facing systems read and write through controlled API boundaries.

    Internal staff → BRINE Admin (Next.js + Express)
                                  ↓
                        PostgreSQL + GCP Pub/Sub
                                  ↓
                  Orbiter POS (Flutter) + downstream systems

    Internal-BRN (BRINE)

    Internal ops: banking, merchants, ledger, RBAC, disputes

    Orbiter

    Consumer POS: QR scans, rewards calculation, mobile UX (Flutter + MongoDB)

    What I Built

    • Modular REST API with 40+ domain modules (banks, merchants, credit cards, ledger, RBAC, disputes, geocoding proxies)
    • Admin dashboard on Next.js App Router for banking, merchants, transactions, RBAC, and security monitoring
    • Permission-based access control (PBAC): Firebase auth, DB-driven roles/permissions, audit logs, anomaly detection
    • Transaction ledger: earn/redeem/reverse flows, integrity hashing, merchant cashback pools, Pub/Sub events
    • BFF layer: Next.js route handlers proxy to Express with JWT; split GCP service accounts for read vs write
    • Database lifecycle: PostgreSQL with Sequelize, schema bootstrap, idempotent SQL migrations on startup
    • CI/CD: GitHub Actions build, test, Docker to GCP Artifact Registry, deploy to GCP VM on push to dev
    • Integrations: Firebase Admin, multi-geocoder proxies (OSM, HERE, Yelp, Mapbox), email, Sharp image processing

    Key Features

    1. Banking and rewards catalog

    Manage banks, payment processors, card categories, reward rules, and third-party programs with approval workflows and imagery pipelines.

    2. Merchant and location intelligence

    Merchant records, offers, ads, MCC codes, and multi-provider geocoding with batch flows and map UI (Leaflet).

    3. Transaction ledger

    Earn, redeem, reverse, withdraw semantics with integrity checks, merchant pools, and event publishing.

    4. Enterprise-grade RBAC

    Role/permission slugs, user invitations, audit trails, and security dashboard for denial anomalies.

    5. Post-transaction operations

    Disputes and chargebacks tracking with dedicated APIs and admin views.

    6. Secure cross-system integration

    Orbiter and other services use shared API keys; staff use Firebase JWT with granular permissions.

    Screenshots

    dev-brine.rewardsx.ca/signin
    RewardsX BRINE admin banking and credit card management dashboard

    Banking module: banks, credit cards, tags, and summary counts for internal staff.

    Product Demo

    Short walkthrough videos showing the admin platform in action. Internal tooling with sanitized demo data.

    Platform walkthrough

    YouTube

    Admin workflows demo

    YouTube

    Challenges and Solutions

    ChallengeApproach
    Complex RBACDB-driven permissions, middleware on every route, audit logs, anomaly monitoring
    Ledger correctnessDedicated service layer, integrity hashing, Jest coverage, idempotent operations
    Many geocoding providersAPI allocator pattern and proxy modules with SSRF allowlists
    Schema evolution in prodIdempotent migrations in schema_migrations, run on startup
    Large admin surface areaVertical slice modules (routes, controller, service, model) mirrored in frontend

    Impact

    • Single source of truth for banking, merchant, and rewards data across internal and consumer systems
    • Operational efficiency: support and data teams manage catalog and disputes in one place
    • Security posture: granular PBAC, audit trails, and least-privilege GCP IAM for ledger operations
    • Reliability: automated migrations, CI validation, and containerized deploys to GCP
    • Scale-ready foundation: modular API and event-driven ledger for downstream consumers

    Need similar internal ops or fintech work?

    I build full-stack platforms with RBAC, ledgers, and GCP deployment. Available on Upwork, Fiverr, or direct.