Aplikasi kasir & manajemen warung berbasis Expo / React Native — offline-first, data tersimpan lokal di perangkat.
Kasir Pintar adalah aplikasi point-of-sale (POS) ringan yang dibangun khusus untuk pemilik warung / toko kecil. Semua data (produk, transaksi, utang) disimpan lokal di HP via SQLite — tanpa perlu koneksi internet untuk operasional sehari-hari.
- 🧾 Kasir (Checkout) — keranjang belanja, konfirmasi modal, stok berkurang otomatis
- 📦 Manajemen Produk — tambah/edit/hapus produk, harga modal & jual, stok, kategori, satuan (pcs/renteng/lusin), harga grosir
- 📊 Dashboard — omset & profit hari ini/bulan ini, grafik 7 hari terakhir, perbandingan bulan ini vs bulan lalu
- 📈 Laporan — laporan harian & bulanan, produk terlaris (top 5), detail item per transaksi
- 💸 Manajemen Utang (Debt Manager) — catat utang pelanggan, pembayaran parsial, status lunas/belum
- 🤖 AI Assistant — asisten kasir berbasis AI (OpenRouter, default
deepseek-chat-v4-flash:free), riwayat chat tersimpan lokal - 🗄️ Backup & Restore — export/import seluruh data ke file JSON (bisa dibagikan via WhatsApp)
- 📤 Export CSV — export laporan/data ke format CSV
- 🔁 CI/CD Otomatis — tag
v*→ GitHub Actions build APK (EAS local) → rilis otomatis ke GitHub Releases
| Layer | Teknologi |
|---|---|
| Framework | Expo SDK 54 |
| UI | React Native 0.81.5, React 19, React Navigation 7 (native-stack) |
| Database | expo-sqlite (SQLite + WAL), AsyncStorage |
| AI | OpenRouter API (chat completions) |
| CI/CD | GitHub Actions + EAS Build (local runner) |
- Node.js ≥ 20
- Expo CLI / akun Expo (untuk build EAS)
# 1. Clone repo
git clone https://github.com/alertxsto/warung-app.git
cd warung-app
# 2. Install dependencies
npm install
# 3. Siapkan environment variables (opsional, untuk fitur AI)
cp .env.example .env
# Isi EXPO_PUBLIC_OPENROUTER_API_KEY dengan key dari https://openrouter.ai/keys
# 4. Jalankan
npm start # Expo dev server
npm run android # Buka di Android
npm run ios # Buka di iOS (Mac)
npm run web # Buka di browserFitur AI Assistant butuh API key OpenRouter. Tanpa key, semua fitur kasir tetap berfungsi normal.
| Variable | Deskripsi | Default |
|---|---|---|
EXPO_PUBLIC_OPENROUTER_API_KEY |
API key OpenRouter untuk AI Assistant | — |
EXPO_PUBLIC_AI_MODEL |
Model AI yang dipakai | deepseek/deepseek-chat-v4-flash:free |
npx eas-cli build --platform android --profile preview --local --non-interactive --output=warung-app.apk- Push tag versi baru:
git tag v1.0.4 git push origin v1.0.4
- Workflow
.github/workflows/build-apk.ymlotomatis build APK dan upload ke GitHub Releases.
Secrets yang dibutuhkan di repository:
EXPO_TOKEN— token akun Expo (EAS)EXPO_PUBLIC_OPENROUTER_API_KEY— API key OpenRouterEXPO_PUBLIC_AI_MODEL— model AI (opsional)
warung-app/
├── App.js # Entry point & navigasi
├── app.json # Konfigurasi Expo
├── eas.json # Profil build EAS
├── src/
│ ├── components/ # Komponen UI reusable (ProductCard, CustomInput, BigButton)
│ ├── screens/ # 8 layar (Dashboard, Cashier, ProductList, Report, dll)
│ ├── database/db.js # Inisialisasi SQLite, query, backup/restore
│ ├── theme/colors.js # Tema warna
│ ├── utils/ # Helper (kalkulasi, CSV export, AI helper, chat storage)
│ └── config.js # Konfigurasi AI (OpenRouter)
└── .github/workflows/ # CI/CD build APK otomatis
- Data tersimpan 100% lokal di perangkat — tidak ada server. Gunakan fitur Backup di menu Settings secara rutin agar data aman.
- Versi aplikasi:
1.0.3-1— paket Android:com.mamah.warungapp
Pull request & issue sangat diterima! Untuk perubahan besar, buka issue dulu untuk diskusi.
Apache License 2.0 © 2026 Dwiky Candra
Dikeluarkan di bawah Apache License 2.0 — lisensi permisif dengan patent protection serta kewajiban mencantumkan atribusi dan mencatat perubahan.