Masalah
Kanteen multi-tenant menangani beberapa kanal order sekaligus — pembeli pesan di meja, kasir melayani walk-in, dan order catering berulang — biasanya lewat tool yang terpisah-pisah. Hasilnya stok tidak cocok, antrean lambat, dan tidak ada view tergabung untuk operator. InKanteen butuh kanal-kanal ini jalan sebagai satu sistem: menu QR yang bisa dipesan dan dibayar pembeli lewat HP sendiri, POS cepat untuk kasir, alur catering untuk langganan, dan dashboard yang menyatukan operasi tenant.
Kendala
- Beberapa produk berbagi satu domain model — menu, order, tenant, pembayaran
- Event order harus tetap konsisten di kanal QR, POS, dan catering
- Alur sisi pembeli harus langsung jalan di HP tanpa install aplikasi
- Pengguna Indonesia — UI dan alur pembayaran dalam Bahasa
- Dibangun untuk mendukung banyak tenant kanteen dari satu backend
Pendekatan Kami
Kami bangun InKanteen sebagai suite produk di atas frontend Vue 3 + Vite bersama dan service layer NestJS, dengan RabbitMQ membawa event order antar kanal supaya menu QR, POS, dan alur catering direkonsiliasi terhadap satu sumber kebenaran. Aplikasi pembeli memungkinkan customer pilih tenant, lihat menu, pesan, dan bayar langsung dari scan QR — tanpa install. POS memberi kasir alur tap-to-cart, checkout, dan payment-success untuk walk-in. Produk catering menangani order berulang gaya langganan untuk klien B2B (dibangun menyeluruh, disimpan sebagai produk internal). Dashboard operator berada di atas untuk manajemen menu, tenant, dan order. MySQL menopang data transaksional.
Galeri
Hasil
- Aplikasi QR ordering — pembeli pesan dan bayar dari HP sendiri, tanpa install
- POS kasir dengan alur tap-to-cart, checkout, dan payment-success
- Produk langganan catering B2B dibangun menyeluruh
- Dashboard operator untuk manajemen menu, tenant, dan order
- Backend event-driven menjaga kanal QR, POS, dan catering tetap sinkron
- Multi-tenant by design — satu backend melayani banyak kanteen
Kenapa ini penting
InKanteen jadi pengingat bahwa software nyata umumnya berupa suite, bukan satu app. Bagian menariknya bukan satu layar — tapi menjaga order QR, penjualan POS, dan langganan catering tetap konsisten di satu backend event-driven. Disiplin itu, membangun beberapa produk di atas domain model bersama, persis yang sekarang kami bawa ke kerja klien di Idin Studio.
