Delta Loyalty Platform
An employee-operations platform for points, rewards, activities, communications, directories, app delivery, and wellness workflows.

Project introduction
Delta is an internal employee-experience and operations platform with a Nuxt admin and two backend services. It covers points and rewards, stock and redemption, activities and celebrations, content, notifications, directories, chat, mobile-app version management, and wellness workflows.
What I worked on
- Implemented modular Nuxt/Vuetify administration workflows and permission-aware navigation
- Built AdonisJS/Lucid APIs backed by PostgreSQL, with Microsoft SQL Server connections for employee and calendar data
- Developed a dedicated NestJS/TypeORM service for point balances, reward stock, redemption, and transaction history
- Supported S3-compatible uploads, Firebase Cloud Messaging, Socket.IO updates, migrations, and audit-oriented history
Architecture
The AdonisJS API owns the broad employee application and integrations. The dedicated NestJS service isolates point and reward operations in PostgreSQL, giving balances, stock changes, and redemption history a clearer boundary. The admin brings both service surfaces into one operational interface.
Outcome
Operations teams can manage interconnected employee programs from one interface while sensitive point and reward changes remain explicit and traceable.
How the main product workflows operate
A redemption coordinates balance, order history and inventory inside one transaction
The point-management service treats redemption as a multi-record operation. It locks the selected reward, validates eligibility, burns points, creates a waiting fulfilment record and commits only when every database step succeeds.
NestJS · TypeORM · PostgreSQL · Decimal arithmetic
Balance and point cost avoid floating-point arithmetic, and every earn or burn writes a separate history record.
A pessimistic write lock is the concurrency boundary around validation and redemption.
In the supplied snapshot, reduceRewardAndProductQuantity validates reward/product existence but does not yet persist the decrement. The diagram does not claim complete oversell protection until that method is finished and tested.