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.jsNode.jsPostgreSQLFirebaseGCPFlutter
- 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 systemsInternal-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

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.
Challenges and Solutions
| Challenge | Approach |
|---|---|
| Complex RBAC | DB-driven permissions, middleware on every route, audit logs, anomaly monitoring |
| Ledger correctness | Dedicated service layer, integrity hashing, Jest coverage, idempotent operations |
| Many geocoding providers | API allocator pattern and proxy modules with SSRF allowlists |
| Schema evolution in prod | Idempotent migrations in schema_migrations, run on startup |
| Large admin surface area | Vertical 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.