Back to Portfolio
Tech Test Project•Full-Stack & Cloudflare Architect•Agustus 2026

🛒 Mini POS — Point of Sale System

Aplikasi manajemen kasir & inventoris modern berbasis **TypeScript Monorepo**, **Next.js 16**, **Hono.js**, **Drizzle ORM**, dan **Cloudflare Edge Infrastructure (Workers + D1)**. Menghadirkan transaksi atomik server-side, kalkulasi presisi integer, dan snapshot riwayat harga mutlak (*immutable*).

Architecturenpm workspaces
API ServerHono.js (Edge)
DatabaseCloudflare D1
ORM LayerDrizzle SQLite
Test SuiteVitest Workers
Hosting Cost$0 (Free Tier)
01 // PROJECT OVERVIEW & TECHNICAL CONTEXT

**Mini POS** dirancang sebagai proyek penilaian teknis (*technical assessment test*) yang mengambil konsep aplikasi kasir minimarket modern (seperti Alfamart/Indomaret). Meskipun merupakan proyek skala ringkas (*mini project*), arsitektur dan kualitas kodenya dibangun dengan **Fintech Grade Standards** untuk menangani integritas transaksi keuangan, validasi stok atomik, dan immutabilitas catatan riwayat harga.

Key Engineering PhilosophyAplikasi kasir tidak boleh mengandalkan harga yang dihitung di browser (*client-side*). Seluruh kalkulasi Rupiah, ketersediaan stok, dan pengurangan kuantitas dilakukan secara atomik di backend serverless (**Hono.js + Cloudflare Workers**) untuk mencegah manipulasi data.
02 // APPLICATION INTERFACE & USER FLOW
DASHBOARD // INTERACTIVE POS CASHIER INTERFACE100% Responsive
Mini POS Dashboard Preview

Interactive Cart, Catalog CRUD & Real-time Stock Sync

Antarmuka kasir bersih dengan tema Dark Glassmorphic. Menampilkan katalog produk aktif, filter stok real-time, kalkulasi keranjang belanja instan di client, dan modal verifikasi checkout atomik.

03 // CORE FEATURES & FINTECH LOGIC HIGHLIGHTS
1. Zero Trust Server-Side Checkout

Client hanya mengirimkan productId dan qty. Server Hono.js mengambil harga resmi dari database D1, memvalidasi sisa stok, dan menghitung total harga di backend secara atomik.

2. Historical Price Snapshot Table

Nama & harga unit disimpan secara snapshot di tabel transaction_items saat checkout. Jika harga produk di katalog berubah di kemudian hari, riwayat transaksi lama tetap utuh (*immutable*).

3. Integer-Based Rupiah Calculation

Seluruh nilai mata uang Rupiah disimpan dan dihitung dalam bentuk **Integer**, menghindari potensi bug pembulatan angka desimal khas JavaScript (0.1 + 0.2 !== 0.3).

4. 100% Serverless Edge Architecture

Di-deploy secara utuh pada infrastruktur gratis Cloudflare (Workers, D1, Pages) tanpa perlu langganan VPS/server terpisah, dengan latency respon di bawah 50ms.

04 // SYSTEM ARCHITECTURE & TRANSACTION PIPELINE
Atomic Transaction & Price Snapshot Flow
Step 1 // Client
Interactive Cart
Next.js 16 (React 19)
→
Step 2 // Edge Router
Hono.js API
Cloudflare Workers
→
Step 3 // Validation
Atomic Stock Check
Drizzle ORM Query
→
Step 4 // Snapshot DB
Immutable Log
Cloudflare D1 SQLite
05 // DATABASE SCHEMA DESIGN (DRIZZLE SQLITE)
1. `products`
  • id: integer (PK)
  • name: text
  • price: integer (IDR)
  • stock: integer
  • isActive: integer (0/1)
  • createdAt: datetime
2. `transactions`
  • id: integer (PK)
  • total: integer (IDR)
  • createdAt: datetime
3. `transaction_items`
  • transactionId: FK
  • productId: FK
  • productNameSnapshot: text
  • priceSnapshot: integer
  • qty: integer
  • subtotal: integer
06 // DETAILED TECHNOLOGY BREAKDOWN
Next.js 16 & React 19 (Frontend)

Next.js App Router dengan Static Export ke Cloudflare Pages. Rendering instan dan pengelolaan state keranjang belanja yang halus.

Hono.js & Cloudflare Workers (Backend)

Framework REST API ultra-fast di Edge network. Menangani routing, validasi transaksi atomik, dan proteksi manipulasi stok.

Cloudflare D1 & Drizzle ORM (Database)

Database SQLite serverless terdistribusi di Edge. Schema type-safe dengan migrasi otomatis dan performa query sangat cepat.

Vitest + Cloudflare Workers Pool (Testing)

Automated test suite untuk menguji kalkulasi harga, validasi stok, serta integritas snapshot sebelum deployment.