dazoapp adalah core project dari ekosistem Dazo — sebuah platform e-commerce dan otomasi WhatsApp untuk merchant Indonesia.
Aplikasi ini bukan berdiri sendiri. Ia berperan sebagai:
- Web app — UI merchant, admin, dan customer-facing pages
- Orkestrator — mengoordinasi service WhatsApp, AI agent, payment, dan shipping
- Penerbit JWT — token yang diterbitkan di sini dipakai frontend untuk mengakses backend Go dan microservice lain
- Sumber data utama — MongoDB menyimpan produk, order, kontak, wallet, dan seluruh data merchant
Ekosistem service
| Service | Stack | Peran |
|---|---|---|
| dazoapp (repo ini) | Laravel 10 + MongoDB + Inertia/Vue | Web app, orkestrasi, penerbit JWT, sumber data utama |
| Backend | Go | API service — dipanggil sebagai url_api (/v1/) |
| Engine WhatsApp | Node.js | Pairing QR, sesi device, kirim/terima pesan |
| Engine Bot | Node.js | AI agent — prompt, QnA, follow-up otomatis |
| Cron | — | Penjadwalan berkala |
| Worker | — | Pemrosesan background |
Service lainnya berada di repositori terpisah. Dokumentasi di sini berfokus pada dazoapp; project lain akan diisi pada fase berikutnya.
Stack teknologi
| Lapisan | Teknologi |
|---|---|
| Backend | Laravel 10.50, PHP ^8.1 |
| Database | MongoDB (77 dari 79 model) + MySQL (2 model) |
| Frontend | Inertia.js + Vue 3 + Vite 4 |
| Auth | Session (web), JWT (tymon/jwt-auth), Sanctum |
| Storage | AWS S3 + CDN |
| Payment | DOKU, Duitku, Aspire, Midtrans |
| Shipping | Rajaongkir |
| Realtime | Socket.IO client |
Modul bisnis
| Modul | Cakupan |
|---|---|
| Produk & Order | Katalog, varian, stok, checkout, invoice PDF |
| Digital Store | Storefront produk digital, pengiriman link otomatis |
| WhatsApp Automation | Device, live chat, AI agent, broadcast, scheduler |
| Kontak | Kontak, segmen, tag, follow-up |
| Wallet & Payment | Saldo, PIN, withdraw, sub-account DOKU |
| Shipping | Ongkir, warehouse, resi |
| Marketing | Biolink, shortlink, custom domain, tracking pixel |
| Team & Report | Role/permission, analitik |
Dokumentasi per modul akan ditulis pada fase berikutnya, di bawah dazoapp/modules/.
Cara kerja ekosistem
┌─────────────────────────────────────────────────────┐
│ Frontend (Vue) │
│ localStorage['access_token'] = JWT dari dazoapp │
└────────┬────────────────────────────────────────────┘
│ Bearer <jwt>
├──────────► dazoapp (Laravel) — web & own API
├──────────► Backend Go (url_api /v1/)
├──────────► Engine WhatsApp (url_engine)
└──────────► Engine Bot (url_ai_agent)JWT yang diterbitkan dazoapp adalah kredensial lintas-service, bukan sekadar auth internal. Frontend menyimpan token di localStorage, lalu memakainya untuk memanggil backend Go dan microservice lain. Saat 401, services/axiosInstance.js otomatis refresh via POST /api/refresh.
Detail alurnya ada di halaman Auth & JWT.
Langkah berikutnya
- Baru mulai? Baca Setup Environment — ada 2 blocker yang tidak terlihat dari
git clone. - Sudah punya env? Lanjut ke Local Development.
- Akan deploy? Wajib baca Deployment — branch produksi adalah
v3, bukanmain. - Engineer baru direkomendasikan baca Multi-tenant sebelum menulis query pertama.