Tatang Romadhona

Go With Ola

Production

International Shopping & Shipping Platform

NestJS, TypeScript, Prisma, PostgreSQL

Visit Live Site →

Overview

Go With Ola is a platform that helps people shop and ship items internationally — essentially your personal import assistant. The platform simplifies the complex process of buying products from overseas stores and handling international logistics, all managed through one unified system.

The backend handles everything from order management and payment processing to logistics coordination and automated reconciliation, making international shopping accessible and straightforward for Indonesian customers.

Key Features

  • Multi-Service System: Supports various service types including personal shopping, package forwarding, and door-to-door delivery with customized workflows for each.
  • Payment Gateway Integration: Multi-currency support with automated exchange rate updates, supporting various Indonesian payment methods including bank transfers, e-wallets, and credit cards.
  • Real-time Webhook Handling: Processes payment status updates, shipping notifications, and third-party logistics events in real-time with automatic retry mechanisms.
  • Auto-Reconciliation: Automatically matches payments with orders and reconciles shipping costs with actual logistics charges, reducing manual administrative work.
  • JWT-based Authentication with RBAC: Secure authentication system with role-based access control for customers, admins, and logistics partners.

Technical Implementation

Architecture

Built using NestJS with a clean architecture approach, separating business logic from infrastructure concerns. Uses Prisma ORM for type-safe database operations with PostgreSQL, enabling efficient queries and migrations.

Order Management System

Implemented a flexible state machine for order processing that handles different service types (personal shopping, forwarding, etc.) with customizable workflows and automated status transitions.

Payment Processing

Integrated with multiple Indonesian payment gateways, implementing webhook handlers with signature verification, idempotent processing, and automatic retry logic for failed transactions.

Logistics Integration

Connects with international and domestic shipping providers, tracking packages across multiple carriers and automatically updating customers on shipment status.

Reconciliation Engine

Built an automated reconciliation system that matches payments with orders, calculates actual shipping costs versus estimates, and flags discrepancies for review.

Challenges & Solutions

Challenge: Multi-Currency Complexity

Handling transactions in multiple currencies with fluctuating exchange rates while ensuring accurate pricing and preventing losses from rate changes.

Solution:

Implemented a currency management system with scheduled rate updates from reliable sources. Lock exchange rates at order creation and apply buffer percentages to protect against volatility. Store all amounts in their original currencies alongside converted values for accurate reconciliation.

Challenge: Payment Webhook Reliability

Payment gateway webhooks could fail or arrive out of order, potentially causing incorrect order states or double processing.

Solution:

Built an idempotent webhook processing system that uses unique transaction IDs to prevent duplicate processing. Implemented a retry queue for failed webhooks and added manual reconciliation tools for edge cases. All webhook payloads are logged for auditing.

Challenge: Complex Service Workflows

Different service types (shopping, forwarding, door-to-door) had unique workflows with varying steps and requirements.

Solution:

Designed a flexible state machine pattern that allows configurable workflows per service type while maintaining consistent interfaces. Used TypeScript discriminated unions to ensure type safety across different service configurations.

Technology Stack

Backend

  • NestJS - Enterprise Node.js framework
  • TypeScript - Type-safe development
  • Prisma - Next-generation ORM

Infrastructure

  • PostgreSQL - Relational database
  • JWT - Authentication & authorization
  • Webhooks - Real-time integrations

Key Learnings

  • Mastered handling complex financial operations with multi-currency support and automated reconciliation.
  • Learned to build robust webhook handling systems with idempotency, retry logic, and proper error handling.
  • Gained experience designing flexible state machines that handle diverse business workflows while maintaining code clarity.
  • Improved skills in integrating with third-party services (payment gateways, logistics providers) and handling their limitations gracefully.