(case study) 02
Rewards Platform
Skills: Angular, Spring Boot, PostgreSQL, REST API, Docker, GitHub Actions CI
What it does
A loyalty rewards app. Members check their points balance and activity history, browse a catalog of partner rewards (travel, gift cards, merchandise and statement credits) and redeem points for them.
How it's built
- REST API in Spring Boot for users, the rewards catalog and redemptions, consumed by the Angular frontend.
- Redemptions that can't double-spend. Each redemption runs in one transaction: the member's row is locked, the balance is checked and debited, and the activity and redemption records are written together. The database also rejects a negative balance.
- Data access with JPA and Hibernate, with the schema and seed catalog managed as Flyway migrations.
- Tested with unit and integration tests (Karma and Jasmine on the frontend).
- PostgreSQL in Docker Compose, GitHub Actions CI for the frontend, and a feature-branch workflow.