AIA Delight is an internal web application used by the marketing team to operate coupon programs. It brings coupon issuance, customer claims, expiration management, and related operational workflows into one interface.
I worked on this application during my time at AIA as a Senior Engineer / Analyst. Unlike a public campaign page, this product supported the people running the program behind the scenes, where clear states and reliable actions mattered more than promotional presentation.
![]()
The Operational Problem
Coupon programs continue after a campaign goes live. Marketing teams still need to issue coupons, review claims, track their lifecycle, and handle expiration consistently. Those activities become difficult to coordinate when their status and actions are spread across disconnected processes.
AIA Delight provided a focused operational interface for managing that lifecycle. Its purpose was to help the internal team understand what had happened to a coupon, what action was available next, and whether it remained valid.
My Role
My contribution focused on the web application and its coupon-management workflows. I implemented and maintained frontend behavior within the existing codebase, translating marketing operations into interfaces that could support repeated day-to-day use.
Because the application was internal, its production environment and source code are not publicly accessible. This case study therefore focuses on the product responsibilities and engineering context rather than confidential business rules or operational data.
UAT Implementation Evidence
The following screenshot was captured while I was developing and validating the application in the User Acceptance Testing environment. It shows the AIA Delight transaction interface alongside the browser Network panel and API response used to inspect the data integration during implementation.

UAT disclosure: This screenshot comes exclusively from the UAT environment and uses dummy test data. It does not contain production customer data or personal information.
Core Workflows
The application supported several connected parts of the coupon lifecycle:
- Coupon issuance: Creating or distributing coupons for eligible marketing activities.
- Coupon claims: Handling the workflow when a coupon was claimed.
- Expiration management: Tracking validity and managing coupons that reached their expiry date.
- Lifecycle visibility: Helping internal users distinguish coupon states and identify the appropriate next action.
Treating these as a connected lifecycle was important. Issuance, claim, and expiration are not isolated screens; each action changes what should be possible afterward.
Legacy Frontend Architecture
The application was built with React using a legacy Create React App setup. The codebase still used JavaScript rather than TypeScript.
Working inside that environment required understanding the established component conventions and data flow before changing business-sensitive coupon behavior. Without static type checking, API assumptions and state transitions needed extra care during implementation and review.
Technology Responsibilities
| Technology | Responsibility |
|---|---|
| React | Provides the component-based interface for coupon operations and reusable internal workflows. |
| Create React App | Supplies the legacy project structure, development environment, and frontend build pipeline. |
| JavaScript | Implements application behavior, coupon state handling, and interaction logic in the existing non-TypeScript codebase. |
Engineering Challenge
The main challenge was evolving a legacy JavaScript application around stateful business workflows. Coupon operations carry dependencies: an issued coupon can become claimed, a validity window can close, and available actions must follow the current state.
That made regression awareness essential. A seemingly local UI adjustment could affect what an internal user was allowed to do later in the lifecycle. I approached changes incrementally, first tracing the existing behavior and then keeping interface actions aligned with the coupon state represented by the application.
Why It Matters
Internal applications rarely receive the same visibility as customer-facing products, but they directly shape operational accuracy. This project strengthened my experience working with legacy React systems, modeling stateful business workflows, and building tools for non-engineering teams whose daily work depends on predictable software.