Skip to content
← All projects

E-commerce

Roti Macan — E-commerce Bakery

Bakery e-commerce with per-session pickup quotas, multi-staff fulfilment kanban and Midtrans payments.

Client
Roti Macan
Period
Sep 2022 – Jun 2023
Role
Full-stack developer (solo)
Contribution
Built from scratch

Context & Problem

A bakery with busy pickup queues needed online ordering that never sells beyond production capacity per session and makes order handling easy for staff.

My Contribution

Built it end to end from scratch: database design, NestJS backend, Next.js storefront and dashboard, payment integration.

Solution & Key Features

  • Per-session pickup quotas — time slots with capacity, enforced inside a database transaction.
  • Fulfilment kanban — orders move across columns (paid → in progress → ready → picked up), worked on by several staff at once.
  • Barcode scanner to verify pickups.
  • BullMQ for async jobs: payment expiry and notifications.
  • Midtrans payments with idempotent webhooks.

Architecture

flowchart LR
  C[Customer - Next.js] --> API[NestJS API]
  S[Staff Dashboard] --> API
  API --> DB[(PostgreSQL)]
  API --> R[(Redis)]
  R --> Q[BullMQ Workers]
  API <--> M[Midtrans]

Challenges & Decisions

  • Quotas are checked with a row lock on the session slot, not in a cache, so the shop can never oversell.
  • Payment webhooks are processed idempotently through a queue to survive gateway retries.

Outcome

Orders and pickups run without manual queueing; staff work in parallel on a single kanban board.

Related projects

OperationsMaintenance & EnhancementConfidential

Rembo Printing — Printing Management

Maintenance and enhancement of a NestJS + Vue.js printing management system.

Rembo Printing · 2024

PostgreSQLTypeORMNestJSTypeScriptVue.js
BookingBuilt from scratch

Anekatransport — Bus Ticket Booking

Online bus ticket booking with real-time seat inventory and overbooking prevention.

Anekatransport · 2022

LaravelPHPPostgreSQLNuxt.jsRedis
InsuranceDevelopmentConfidential

Tugu Clone — Insurance Management

Insurance management system with cross FE/BE RBAC, claim workflows and real-time notifications.

Perusahaan asuransi (NDA) · 2024

LaravelPHPPostgreSQLFirebase Cloud MessagingVue.js