The Problem
All transactions from initial registration, renewals, payouts, refunds, and cancellations were handled by an aging database and email-based workflow, handled by a minimal support staff. This was a major bottleneck to growth of the platform.
What I Built
I designed and built a new admin dashboard and customer-facing web app. The system features:
- Accounting integration — monthly and annual reporting and daily synchronization with the accounting system
- Self-service — customers can directly access their account, view transaction history, and file claims without needing to email support
- Full audit log — every state transition is recorded with timestamp, actor, and reason
- Automated approval workflow — step-by-step process for handling claims, with notifications and reminders for support staff and customers
The service exposes a clean REST API consumed by the web app. No shared database tables. Clear contract.
Technical Highlights
The new service is written in Go and Typescript. A PostgreSQL database stores transactions, events, and the audit log. It is container-hosted with blue-green deployment for seamless CI/CD on GitHub and AWS.
For the data migration, I wrote Go code to handle the legacy data import using the data models and business logic in the main app to guarantee data integrity and field-level validation.