Dinetap Admin Dashboard

Full-stack internal operations and financial analytics dashboard for restaurant payments.

  • Next.js
  • Express.js
  • TypeScript
  • MySQL
  • Sequelize
  • Redux Toolkit
  • TanStack Query
  • nuqs
  • Tailwind CSS
  • Playwright
  • Jest
  • AWS
  • Supabase

Full-stack internal admin dashboard for restaurant payment operations across Singapore and Australia. I contributed across both the Next.js 14 frontend and Express.js backend - owning Adyen payment features, surcharge systems, business intelligence dashboards, and platform-wide performance improvements.

Highlights

  1. Owned the Adyen transaction charges management system end-to-end across both admin frontend and backend API - per-restaurant configuration supporting Adyen and Stripe with full CRUD, provider-specific validation, and charge calculation logic.
  2. Owned 76% of the Adyen Australian surcharges management system - complex surcharge matrix across Credit/Debit × Local/International × payment method combinations, covering the admin UI, form validation, and backend computation layer.
  3. Built business intelligence dashboards for financial analytics - real-time payment performance and merchant operations reporting consumed by internal product and business teams.
  4. Delivered Adyen and Airwallex merchant onboarding flows - multi-step account creation and payment provider configuration workflows integrating Adyen and Airwallex APIs across Singapore and Australia.
  5. Refactored Redux state management to URL-based state using nuqs - eliminated redundant client storage, simplified filter and pagination logic, and improved developer velocity across the codebase.
  6. Optimized Next.js dashboard loading by 4 seconds using hybrid SSR/CSR rendering and query caching strategies, eliminating unnecessary client-side data hydration on initial load.
  7. Eliminated a 35% performance bottleneck in the Adyen merchant onboarding backend service by parallelizing sequential third-party API calls in the Express.js layer.

Last updated: 2026-06-06