Orient Champions

Shipped May – Jun 2026

Orient Champions is a nationwide field-sales incentive platform for Orient Electronic, built on a React Native app and Nest.js backend syncing in real time with the client's SAP ERP across a four-level hierarchy — National, Zone, Branch, and FSM. The app and backend were already live and built by several prior developers by the time this engagement began, but the codebase had accumulated heavy dead code, tightly coupled frontend/backend modules, no real state management beyond trivial useState, hardcoded data standing in on several screens, non-functional push notifications, and a poorly managed cron-job pipeline — and the client was calling in daily about agent-reported bugs.

Orient Champions shown across five iPhone screens — login, account creation, the paid/approved/outstanding dashboard, a paid cards list, and account settings

Built With

React Native icon React Native Expo icon Expo TypeScript icon TypeScript Redux icon Redux Axios icon Axios AsyncStorage Node.js icon Node.js Nest.js icon Nest.js MongoDB icon MongoDB JWT icon JWT bcrypt icon bcrypt SAP ERP / RFC icon SAP ERP / RFC AWS S3 icon AWS S3 Firebase icon Firebase Firebase Cloud Messaging icon Firebase Cloud Messaging Twilio icon Twilio

Project Overview

Orient Champions is a nationwide field-sales incentive platform for Orient Electronic, built on a React Native app and Nest.js backend syncing in real time with the client's SAP ERP across a four-level hierarchy — National, Zone, Branch, and FSM. The app and backend were already live and built by several prior developers by the time this engagement began, but the codebase had accumulated heavy dead code, tightly coupled frontend/backend modules, no real state management beyond trivial useState, hardcoded data standing in on several screens, non-functional push notifications, and a poorly managed cron-job pipeline — and the client was calling in daily about agent-reported bugs.

The engagement centered on stabilizing and modernizing that existing platform: decoupling and cleanly separating modules on both sides, introducing Redux for app-wide state management, rebuilding and retiming the cron jobs to finish with accurate results before business hours, replacing hardcoded screens with real database-backed APIs, fixing push notifications and the App Updater end-to-end, repairing broken filters, and redesigning the mobile UI.

The results were immediate and measurable: roughly 90% of the bugs that used to trigger daily client calls disappeared, the client's calls shifted from firefighting to feature discussions, and field agents — who'd struggled daily with scanning and incentive issues — now use a faster, redesigned app without the friction that used to generate support tickets.

Orient Champions splash screen showing the brand mark while the app loads
Login screen with mobile number and password fields
Account creation form with name, mobile number, CNIC/social security, dealer code, password, and company selection
Dashboard showing total paid, approved, and outstanding amounts, plus paid/approved/verified/pending/rejected card counts and a scan button
Paid Cards list with card IDs, names, and amounts, paginated with previous/next controls
Help/FAQ screen with About, FAQs, Contact Us, Privacy Policy, Gallery, and Terms & Conditions tiles
More menu with links to videos, blogs, catalogue, policies, and the brand's social media profiles
Account screen with profile info and links to account settings, policies, help/FAQ, and sign out
Challenge
Orient Champions was already live and in production when this engagement began, having been built out by several prior developers over time. The resulting codebase was in poor shape: heavy dead code, frontend and backend modules that weren't clearly separated, and tight coupling throughout that made changes risky and slow. The React Native app had no real state management — screens leaned on trivial local useState rather than anything app-wide — and several pages ran on hardcoded data instead of real APIs. Push notifications didn't work at all, the App Updater and several filters were broken, and the backend's cron jobs were poorly managed, on schedules that didn't reliably finish with accurate results before business hours started. The operational cost was real: the client called in daily about bugs, and field agents regularly struggled to scan batches and receive their incentives correctly.
Solution
Refactored both the React Native frontend and the Nest.js backend to break apart the tight coupling and separate concerns into clear modules, removing dead code along the way. Replaced the frontend's ad hoc useState-only approach with Redux, giving the app predictable, centralized state management and a real performance improvement across screens. Audited and rebuilt the backend's cron-job pipeline — fixing broken scheduling logic and retiming jobs so they complete with accurate, fully-reconciled results before business hours start each day, rather than agents and admins working off stale or partially-synced numbers. Found and replaced several screens that were rendering hardcoded static data by moving that data into the database and building real APIs for those modules, then wiring the mobile app to consume them. Diagnosed and fixed push notifications end-to-end (they had never worked), repaired the App Updater so users reliably get prompted onto new releases, fixed broken filters agents relied on daily, and redesigned the UI across the mobile app for a cleaner, more usable experience. The underlying platform — a React Native app and Nest.js backend syncing in real time with Orient Electronic's SAP ERP across a four-level hierarchy (National, Zone, Branch, FSM) via custom BAPIs/RFC, JWT + Twilio OTP auth, and bulk Excel/CSV processing on AWS S3 — stayed in place throughout; the engagement was about stabilizing and modernizing it, not rebuilding it from scratch.
Impact
The refactor eliminated roughly 90% of the bugs and issues that previously generated daily client phone calls, most of them centered on agents' scanning and incentive-tracking difficulties. Post-refactor, the client's calls shifted almost entirely from bug fixes to discussing new features, a clear signal the underlying platform had stabilized. Field agents, who previously struggled with a slow, buggy app, now use a redesigned interface with working filters and notifications without the friction that used to generate support tickets, and the retimed cron-job pipeline gives every level of the hierarchy accurate data before the business day even starts.

Frequently Asked Questions

Orient Electronic needed a nationwide field-sales incentive program spanning a four-level hierarchy (National → Zone → Branch → FSM), with real-time sync into their existing SAP ERP — while staying resilient to SAP's own downtime and response-time swings.

Orient Champions was built with React Native, Expo, TypeScript, Redux, Axios, AsyncStorage, Node.js, Nest.js, MongoDB, JWT, bcrypt, SAP ERP / RFC, AWS S3, Firebase, Firebase Cloud Messaging, Twilio.

This was built as commercial/client work, so the source code isn't publicly available. Get in touch to discuss the implementation.

Resilient fallback queues and scheduled reconciliation catch batch scans and account activity whenever SAP is slow or down, with automated overnight pipelines settling everything cleanly against SAP without manual intervention.

They queue through the resilient fallback path and settle automatically once SAP is responsive again or at the next overnight reconciliation run — agents aren’t left waiting on SAP mid-scan.

Role-based access control and organisation-aware data scoping mean National, Zone, Branch, and FSM users each see only the activity relevant to their level, with no manual filtering required.

Through custom SAP BAPIs called via SAP RFC services, covering registration, account activation, batch scanning, and batch status synchronisation — not a generic, off-the-shelf integration layer.

It's a React Native app shipped to both the App Store and Google Play, backed by a Nest.js/MongoDB server and an admin web portal for monitoring and reporting.

It was already live and built by several prior developers, but the codebase had heavy dead code, tightly coupled modules, no real state management, hardcoded data on several screens, and a poorly managed cron-job pipeline — issues serious enough that the client was calling in daily about agent-reported bugs.

Roughly 90% of the bugs that used to generate daily support calls were eliminated. The client's calls now center on new feature requests rather than firefighting, and field agents use a redesigned, Redux-powered app with working push notifications and filters.

Available for work

Got a project like this
in mind?

Let's talk about what you're building and how I can help ship it.