POS Multi-Cabang, ERP & SaaS

ArFi Aps

Platform multi-tenant yang menghubungkan penjualan kasir, akuntansi, inventori, loyalitas, dan penggajian di Web, Windows, serta Android.

Peran:
Pengembang Fullstack
Platform
Web PWA / Windows / Android
Situs web
arfiaps.id
3Platform yang didukung
4Peran akses
5Pilar bisnis

Angka ini menunjukkan cakupan produk dalam dokumentasi, bukan dampak pengguna atau bisnis yang telah diukur.

Beranda publik ArFi Aps yang memperkenalkan kasir lebih cepat, pengelolaan stok, dan pemantauan bisnis
Beranda publik memperkenalkan proses kasir yang lebih cepat, pengelolaan stok, dan laporan cabang melalui pratinjau dashboard.Buka gambar ukuran penuh

Ringkasan 30 detik

Kebutuhan

Bisnis multi-cabang membutuhkan catatan penjualan, stok, kas, dan keuangan yang konsisten saat staf bekerja dari perangkat berbeda.

Peran saya

Peran saya tercantum sebagai Fullstack Developer. Dokumen proyek menjelaskan sistem React/Laravel, tetapi tidak merinci kepemilikan pribadi atas setiap modul.

Hasil kerja terdokumentasi

Dokumen proyek menjelaskan satu klien React untuk tiga platform, empat peran akses, lima pilar bisnis, serta modul administrasi SaaS terpisah.

Konteks & Masalah

ArFi Aps melayani kasir, manajer cabang, pemilik usaha, dan operator platform. Alur kerja mereka memakai data penjualan, stok, kas, dan keuangan yang saling terhubung antar-cabang dan perangkat.

  • Menjaga transaksi kasir tetap cepat sekaligus mempertahankan konsistensi jurnal keuangan, pergerakan stok, dan rekonsiliasi shift.
  • Mendukung perangkat kasir fisik di lingkungan browser, Windows, dan Android melalui satu lapisan abstraksi hardware.
  • Mengisolasi akses tenant dan cabang sambil menjaga riwayat yang dapat diaudit serta identifier yang mendukung operasional offline-first.

Peran & Cakupan Saya

Peran saya adalah Fullstack Developer. Dokumen proyek menjelaskan area rekayasa berikut tanpa memisahkan kontribusi pribadi saya dari pekerjaan tim:

Klien dan perangkat kasir

Klien React dan TypeScript yang sama melayani Web PWA, Windows melalui Electron, dan Android melalui Capacitor. DeviceAdapter menangani koneksi printer dan laci kasir sesuai platform.

API bisnis dan akses

Laravel menyediakan REST API dengan autentikasi JWT, policy, serta pembatasan akses berdasarkan tenant dan cabang untuk operator platform, pemilik usaha, manajer, dan kasir.

Catatan keuangan dan stok

PostgreSQL menyimpan jurnal double-entry, pergerakan stok append-only, dan nilai Rupiah berbentuk integer; Redis dan Horizon menjalankan agregat penjualan di latar belakang.

Alur Utama Pengguna

Empat alur berikut menunjukkan hubungan antara operasional harian, catatan keuangan, dan administrasi SaaS.

Berjualan dan merekonsiliasi shift

Kasir memindai produk, menerapkan voucher atau poin loyalitas, menerima pembayaran tunai atau metode lain yang didukung, lalu mencetak struk. Penjualan masuk ke catatan stok dan jurnal; shift ditutup dengan rekonsiliasi kas.

Mengendalikan stok antar-cabang

Manajer cabang meninjau pergerakan stok, mencatat restock atau stok opname, dan menyetujui penyesuaian. Setiap cabang dapat memakai katalog produk bersama atau mengelola persediaannya sendiri.

Meninjau keuangan usaha

Pemilik usaha mengelola akun, pembelian, piutang, aset, dan penggajian. Aktivitas POS dan bisnis menghasilkan jurnal double-entry untuk laporan laba rugi, neraca, dan buku besar.

Mengoperasikan platform SaaS

Super admin mendaftarkan tenant, admin utama, dan cabang awal dalam satu transaksi. Kendali modul dan tampilan mitra read-only yang diaudit mendukung operasional platform.

Tampilan Produk

Tangkapan layar ini memperlihatkan administrasi usaha, operasional kasir, laporan cabang, akuntansi custom, dan pemantauan platform di ArFi Aps.

01 / 05

Admin Mitra Usaha

Halaman ringkasan admin mitra usaha menampilkan grafik penjualan tujuh hari, panel cara pembayaran, serta pintasan untuk mencetak laporan atau menambah produk. Menu samping mengelompokkan POS, akuntansi, CRM, HRM, dan pengaturan.

Ringkasan admin mitra usaha ArFi Aps dengan grafik penjualan, rincian pembayaran, dan menu modul
Buka gambar ukuran penuh

02 / 05

Kasir POS

Halaman kasir menempatkan pencarian produk, filter kategori, dan pemindaian di sebelah pesanan aktif. Keranjang menampilkan jumlah dan harga, sementara koneksi printer, penutupan shift, dan tombol pembayaran tetap terlihat.

Halaman kasir ArFi Aps dengan daftar produk, pencarian, keranjang pesanan, dan tombol pembayaran
Buka gambar ukuran penuh

03 / 05

Laporan Manajer Cabang

Laporan manajer cabang dapat difilter berdasarkan cabang dan tanggal. Tampilannya memuat pemasukan, pengeluaran, laba bersih, jumlah transaksi, layanan terlaris, dan ringkasan stok per cabang.

Laporan penjualan manajer cabang ArFi Aps dengan filter tanggal, ringkasan keuangan, produk terlaris, dan informasi stok
Buka gambar ukuran penuh

04 / 05

Akuntansi Custom: Buku Besar

Ruang kerja akuntansi custom membuka Buku Besar dengan filter akun, cabang, dan tanggal. Menu samping mengarah ke laporan keuangan dan alat pembukuan; tangkapan layar ini diambil sebelum akun dipilih, sehingga belum ada entri buku besar yang ditampilkan.

Halaman Buku Besar ArFi Aps Custom dengan filter akun, cabang, dan tanggal serta menu akuntansi
Buka gambar ukuran penuh

05 / 05

Ringkasan Super Admin

Ringkasan platform menyatukan jumlah mitra dan cabang, total penjualan, shift berjalan, grafik penjualan 14 hari, serta penjualan per mitra untuk pemantauan lintas usaha.

Ringkasan super admin ArFi Aps dengan jumlah mitra, jumlah cabang, total penjualan, dan grafik platform
Buka gambar ukuran penuh

Keputusan Teknis & Konsekuensinya

Dokumen proyek mengaitkan setiap pilihan desain dengan kebutuhan praktis: pembukuan akurat, akses perangkat, isolasi tenant, atau alur kasir yang responsif.

Menjaga riwayat keuangan tetap terlacak

Nilai uang menggunakan integer Rupiah, sedangkan penjualan, pergerakan stok, dan jurnal mempertahankan riwayat audit append-only. Nama serta harga produk disimpan saat penjualan terjadi.

Koreksi memerlukan entri pembatalan, transaksi pengganti, atau jurnal pembalik, bukan mengubah catatan lama secara langsung.

Menggunakan satu klien di berbagai perangkat

React melayani Web PWA, desktop Electron, dan aplikasi Android Capacitor. DeviceAdapter menyediakan antarmuka cetak yang sama bagi alur POS.

Pencetakan melalui LAN, Bluetooth, USB, Web Serial, dan browser tetap memerlukan adapter khusus per platform.

Membatasi akses sesuai unit bisnis

Autentikasi JWT, policy Laravel, serta pembatasan tenant dan cabang memisahkan empat peran. Tampilan untuk dukungan mitra bersifat read-only dan diaudit.

Setiap permintaan bisnis harus menerapkan batas tenant, cabang, dan peran yang tepat.

Memisahkan analitik dari proses kasir

Redis dan Laravel Horizon memperbarui agregat penjualan harian melalui pekerjaan latar belakang; dashboard membaca tabel agregat tanpa menghitung ulang setiap transaksi.

Tampilan agregat mengikuti jadwal pekerjaan latar belakang, bukan diperbarui di dalam permintaan kasir.

Implementasi & Model Akses

Klien bersama memanggil API Laravel yang memahami batas tenant; API menulis ke PostgreSQL dan mengirim pekerjaan latar belakang ke Redis serta Horizon. DeviceAdapter menyatukan akses pencetakan bagi alur POS.

Klien Multi-Platform Terpadu

Satu frontend React 19 dan TypeScript melayani Web PWA, desktop Windows melalui Electron 31, dan Android melalui Capacitor 6. RxJS dan custom reactive hooks mengelola stream barcode, event modal, serta sinkronisasi keranjang.

Lapisan Abstraksi Hardware

DeviceAdapter menghubungkan printer struk ESC/POS 58mm/80mm melalui LAN port 9100, Bluetooth SPP, USB/COM, Web Serial, atau pencetakan browser. Transaksi tunai dapat memicu pembukaan laci kasir fisik.

Lapisan Layanan Backend

Laravel 12/13 dan PHP 8.4+ menyediakan REST API dengan JWT, refresh token, policy, serta pembatasan tenant/cabang. Arsitektur Service-Repository memisahkan logika bisnis, sementara Redis dan Horizon memproses pekerjaan latar belakang.

Database & Persistensi

PostgreSQL 16+ menyediakan integritas relasional, indexing barcode, dan transaksi atomik. Redis 7+ mendukung cache serta antrean, ULID mengidentifikasi entitas, dan nilai integer Rupiah menjaga presisi keuangan.

Kontrol Akses Berbasis Peran

Super Admin

Mengoperasikan platform SaaS: mengelola mitra, ketersediaan modul, analitik pendapatan agregat, dan tampilan mitra read-only yang diaudit.

Admin / Pemilik Usaha

Mengelola cabang, bagan akun, produk, laporan keuangan, staf, dan pengaturan toko dalam satu tenant.

Manajer Cabang

Mengawasi kasir, menyetujui penyesuaian stok, serta mengelola pemasukan dan pengeluaran cabang, tata meja, dan laporan shift cabang.

Kasir

Memindai produk, membuka dan menutup shift, memproses penjualan, mencatat mutasi kas kecil, serta mencetak struk.

Teknologi yang Digunakan

Frontend & State Reaktif

React 19, TypeScript, Vite 8, RxJS

Desktop Windows

Electron 31, electron-vite, node-thermal-printer

Mobile Android

Capacitor 6, capacitor-tcp-socket

Backend & Autentikasi

Laravel 12/13, PHP 8.4+, JWT (tymon/jwt-auth)

Database & Pekerjaan Latar Belakang

PostgreSQL 16+, Redis 7+, Laravel Horizon

Desain Data

ULID, Integer Rupiah, Ledger Append-Only

Pengujian & Kualitas Kode

PHPUnit 12, Vitest 4, oxlint, tsc -b

CI/CD & Deployment

GitHub Actions, VPS

Validasi & Kualitas

Dokumen proyek mencantumkan pengujian otomatis backend dan frontend, linting, pemeriksaan tipe, serta alur CI/CD. Laporan pengujian publik, audit aksesibilitas, dan pengukuran waktu transaksi kasir belum tersedia.

Pemeriksaan backend

Dokumen proyek mencantumkan pengujian unit dan fitur PHPUnit untuk layanan Laravel.

Pemeriksaan frontend

Dokumen mencantumkan Vitest 4, oxlint, dan pemeriksaan TypeScript dengan tsc -b.

Alur pemeriksaan dan rilis

GitHub Actions tercantum untuk pemeriksaan otomatis dan deployment ke VPS.

Hasil Kerja Terdokumentasi

Dokumen yang diberikan menjelaskan hasil implementasi, belum menyajikan bukti adopsi, kecepatan transaksi, atau dampak bisnis. Hasil kerja berikut didukung oleh dokumentasi:

  • Klien bersama untuk Web, Windows, dan Android dengan alur POS multi-cabang serta pencetakan struk sesuai perangkat.
  • Modul akuntansi, inventori, CRM, dan penggajian yang terhubung dengan penjualan, pergerakan stok, dan catatan keuangan.
  • Administrasi SaaS berbasis tenant dengan empat peran terbatas, kendali modul, akses dukungan yang diaudit, dan perangkat penjaga kualitas.