KasirKu
Full-Stack Developer
KasirKu is a production-grade point-of-sale platform built with Next.js 15, TypeScript, Prisma, and SQLite, engineered to handle rapid food stall (warung makan) service with zero inventory drift. Every checkout executes within an ACID-compliant interactive database transaction that guarantees zero overselling, coupled with real-time cash drawer reconciliation, automated tax calculations, and native 80mm thermal receipt printing.
Key features
ACID-compliant atomic checkout & stock ledger
Checkout requests execute inside an isolated Prisma interactive transaction ($transaction) that validates stock and applies atomic decrements to prevent overselling under concurrent clicks, recording immutable StockMove ledger entries.
Zero-latency POS terminal with dual pipelines
Designed for rapid food service, the single-screen terminal unifies live catalog search, category filtering, cart steppers, inline discounts, and automated taxes, switching seamlessly between instant QRIS validation and cash with numpad change calculation.
Shift lifecycle & cash drawer reconciliation
The shift engine tracks cashier accountability from opening cash float to end-of-day drawer close via dedicated lifecycle APIs, automatically auditing surplus or deficit variances against physical cash counts.
Hardware-ready 80mm thermal receipt printing
Receipts leverage specialized @media print rules enforcing an 80mm max-width container and total document-body isolation to output clean, marginless thermal slips directly to ESC/POS hardware, backed by 7-day revenue analytics and CSV exports.
Screens
A walk through the key screens in KasirKu, one at a time.

Kasir
The screen a cashier actually lives in. A product grid sits beside the running cart, with discount, automatic tax, cash numpad and QRIS controls all reachable without a page change.

Produk
Product management. New items are added beside the live table, and stock can be nudged with inline steppers — the total value of stock on hand is shown as it changes.

Transaksi
The last fifty sales, newest first, each linking to its receipt. It is the quickest way to reprint a receipt or check what was sold at a given time.

Shift
Shift records with the opening cash float, expected cash and QRIS totals, the physical count entered at close, and the resulting difference — the end-of-day reconciliation in one table.

Laporan
The reports dashboard: revenue, transaction count and average sale up top, a seven-day revenue chart, best sellers and a low-stock list, all filterable by date and exportable to CSV.
