Dokumentasi GoLaundry
Kembali ke Aplikasi

GoLaundry

Sistem Manajemen Laundry Modern dengan WhatsApp Gateway — solusi lengkap untuk bisnis laundry Anda.

PHP 8.0+ MySQL 5.7+ Node.js 18+ Bootstrap 5.3 WhatsApp Gateway Mobile Friendly
Tentang Aplikasi

GoLaundry adalah aplikasi manajemen laundry berbasis web yang dibangun dengan PHP Native (tanpa framework), MySQL, dan Node.js WhatsApp Gateway menggunakan library Baileys. Dirancang untuk usaha laundry skala kecil hingga menengah.

Mobile Friendly
Responsif di semua perangkat dengan bottom nav khusus smartphone
WA Otomatis
Notifikasi WhatsApp terkirim otomatis di setiap perubahan status
Laporan Real-time
Laporan harian & bulanan dengan grafik pendapatan
Aman & Terenkripsi
Bcrypt password, prepared statements, session protection
Demo Akun
RoleEmailPasswordAkses
Admin admin@golaundry.com admin123 Full akses operasional
Owner owner@golaundry.com owner123 Dashboard & laporan
Fitur Lengkap
Fitur Admin
FiturDeskripsi
DashboardStatistik real-time: total pelanggan, order aktif, pendapatan hari ini & total
Manajemen PelangganCRUD pelanggan dengan pencarian by nama / nomor HP (Tom Select)
Manajemen LayananCRUD layanan dengan harga dan satuan (kg, pcs, pasang, dll)
Order LaundryBuat order multi-layanan, kalkulasi otomatis, catatan order
Update StatusMenunggu → Diproses → Selesai → Dikirim
PembayaranUpdate status: Belum Bayar → Lunas
Filter & PencarianFilter order by status, tanggal, nama pelanggan
WhatsApp GatewayKelola koneksi WA, scan QR Code, lihat status & nomor terhubung
Fitur Owner
FiturDeskripsi
DashboardRingkasan bisnis: pelanggan, order aktif, pendapatan
Laporan HarianDetail order per hari dengan total pendapatan
Laporan BulananGrafik pendapatan bulanan + tabel detail per hari
Notifikasi WhatsApp Otomatis
TriggerPesan Terkirim
Order dibuatKonfirmasi order + nomor order + total harga
Status → DiprosesNotifikasi laundry sedang diproses
Status → SelesaiNotifikasi laundry selesai, siap diambil
Status → DikirimNotifikasi laundry sudah dikirim
Pembayaran LunasKonfirmasi pembayaran berhasil
Teknologi
KomponenTeknologiVersi
BackendPHP Native (MVC)8.0+
DatabaseMySQL5.7+
FrontendBootstrap5.3
IconsBootstrap Icons1.11
ChartChart.js4.4
Select SearchTom Select2.3
WA GatewayNode.js + Express18+
WA LibraryBaileys (@whiskeysockets)6.7+
Web ServerApache (XAMPP)
Persyaratan Sistem
Minimum
  • OS: Windows 10 / Ubuntu 20.04 / macOS 11
  • RAM: 2 GB
  • Storage: 500 MB
  • PHP: 8.0+
  • MySQL: 5.7+
  • Node.js: 18.0+
  • Browser: Chrome 90+, Firefox 88+
Rekomendasi
  • RAM: 4 GB
  • PHP: 8.2
  • Node.js: 20 LTS
  • MySQL: 8.0
Ekstensi PHP yang dibutuhkan:
mysqlicurljsonsessionmbstring
Struktur Project
golaundry/ — Aplikasi PHP
golaundry/
├── assets/
│   ├── css/style.css          # Stylesheet utama
│   └── js/app.js              # JavaScript utama
├── config/
│   ├── database.php           # Konfigurasi DB & konstanta
│   └── session.php            # Manajemen session
├── controllers/
│   ├── AuthController.php     # Login & logout
│   ├── DashboardController.php
│   ├── CustomerController.php
│   ├── ServiceController.php
│   ├── OrderController.php
│   ├── WhatsAppController.php
│   └── ReportController.php
├── models/
│   ├── UserModel.php
│   ├── CustomerModel.php
│   ├── ServiceModel.php
│   ├── OrderModel.php
│   └── WaSettingModel.php
├── views/
│   ├── layouts/               # header, footer, sidebar, topbar
│   ├── auth/login.php
│   ├── admin/                 # dashboard, customers, services, orders, whatsapp
│   └── owner/                 # dashboard, report_daily, report_monthly
├── helpers/functions.php
├── routes/web.php
├── index.php                  # Entry point
├── database.sql
└── .htaccess
whatsapp-gateway/ — Node.js
whatsapp-gateway/
├── sessions/
│   ├── auth/                  # Sesi WA (auto-generated)
│   └── message_log.json       # Log pengiriman pesan
├── server.js                  # Server Express + Baileys
├── package.json
└── .env
Panduan Instalasi
  • 1
    Persiapan XAMPP

    Download dan install XAMPP, lalu jalankan Apache dan MySQL dari Control Panel.

    Pastikan port 80 (Apache) dan 3306 (MySQL) tidak konflik dengan aplikasi lain.
  • 2
    Copy File Aplikasi
    Salin folder golaundry/ ke:
    C:\xampp\htdocs\golaundry\
  • 3
    Import Database

    Buka http://localhost/phpmyadmin → buat database golaundry → Import file database.sql.

    Atau via CLI:

    mysql -u root -p < golaundry/database.sql
  • 4
    Setup Password

    Akses http://localhost/golaundry/seed_password.php sekali saja.

    PENTING: Hapus file seed_password.php setelah dijalankan!
  • 5
    Install Node.js Dependencies
    cd whatsapp-gateway
    npm install
  • 6
    Jalankan WhatsApp Gateway
    node server.js

    Output yang diharapkan:

    ╔══════════════════════════════════════════╗
    ║   GoLaundry WhatsApp Gateway v1.0.0     ║
    ║   Port: 3000                            ║
    ╚══════════════════════════════════════════╝
    [WA] QR Code ready to scan
  • 7
    Akses Aplikasi
    http://localhost/golaundry
    Login dengan admin@golaundry.com / admin123 atau owner@golaundry.com / owner123
Konfigurasi
config/database.php
define('DB_HOST', 'localhost');   // Host database
define('DB_USER', 'root');        // Username MySQL
define('DB_PASS', '');            // Password MySQL
define('DB_NAME', 'golaundry');   // Nama database

define('WA_GATEWAY_URL', 'http://localhost:3000');
define('APP_URL', 'http://localhost/golaundry');
whatsapp-gateway/.env
PORT=3000
Jika ganti port di .env, ubah juga WA_GATEWAY_URL di config/database.php.
Panduan Penggunaan
Alur Kerja Standar
1. Tambah Pelanggan 2. Tambah Layanan 3. Buat Order 4. Update Status 5. Tandai Lunas
Notifikasi WhatsApp otomatis terkirim di setiap langkah perubahan status.
Membuat Order Baru
  1. Buka menu Order Laundry → klik "Buat Order"
  2. Ketik nama atau nomor HP di kolom pencarian pelanggan
  3. Klik "Tambah" untuk menambahkan layanan
  4. Pilih layanan, masukkan jumlah (kg/pcs/dll) — total dihitung otomatis
  5. Klik "Buat Order" — notifikasi WA langsung terkirim
Update Status & Pembayaran
  1. Buka Detail Order (klik ikon mata di tabel)
  2. Di panel kanan, pilih status baru dari dropdown
  3. Klik "Update Status" — notifikasi WA otomatis terkirim
  4. Untuk pembayaran, pilih "Lunas" → klik "Update Pembayaran"
WhatsApp Gateway
Cara Menghubungkan WhatsApp
  • 1
    Jalankan Node.js server
    cd whatsapp-gateway && node server.js
  • 2
    Buka halaman WhatsApp Gateway

    Login sebagai Admin → menu WhatsApp Gateway → QR Code muncul otomatis.

  • 3
    Scan QR Code

    Buka WhatsApp di HP → Perangkat TertautTautkan Perangkat → Scan QR.

  • 4
    Terhubung!
    Status berubah menjadi Connected dan nomor HP tampil di halaman.
Tips Anti-Ban WhatsApp
Menggunakan unofficial API (Baileys) memiliki risiko pembatasan akun. Ikuti panduan berikut.
TipsPenjelasan
Nomor dedicatedJangan pakai nomor pribadi. Siapkan nomor khusus untuk gateway
Nomor "matang"Gunakan nomor yang sudah aktif minimal 1-2 minggu sebelum dipakai bot
Jangan kirim massalAplikasi sudah dilengkapi message queue dengan delay natural (1.5–5 detik)
Pesan relevanKirim hanya ke pelanggan yang menggunakan jasa laundry
Batasi volumeIdealnya tidak lebih dari 50–100 pesan per hari
Jangan restart berulangRestart server terlalu sering bisa memicu deteksi bot
Jika Akun Dibatasi
  1. Tunggu pembatasan dicabut (biasanya 24–72 jam)
  2. Hapus session lama: hapus folder whatsapp-gateway/sessions/auth/
  3. Restart server: node server.js
  4. Scan QR Code ulang
API Reference
Base URL: http://localhost:3000
GET/statusCek status koneksi
{ "connected": true, "phone": "628123456789", "queue_size": 0, "timestamp": "..." }
GET/qrAmbil QR Code base64
{ "connected": false, "qr": "data:image/png;base64,iVBORw0KGgo..." }
POST/send-messageKirim pesan WA

Request Body:

{ "number": "08123456789", "message": "Halo, order Anda sudah selesai!" }

Response:

{ "success": true, "to": "08123456789" }
POST/disconnectLogout WhatsApp
{ "success": true }
GET/infoInfo akun terhubung
{ "connected": true, "phone": "628123456789", "user": { "id": "...", "name": "Nama WA" } }
GET/logs100 log pesan terakhir
{ "logs": [{ "to": "...", "message": "...", "status": "sent", "timestamp": "..." }] }
Struktur Database
Tabel users
KolomTipeKeterangan
idINT AIPrimary key
nameVARCHAR(100)Nama lengkap
emailVARCHAR(100)Email login (unique)
passwordVARCHAR(255)Bcrypt hash
roleENUMadmin / owner
Tabel customers
KolomTipeKeterangan
idINT AIPrimary key
nameVARCHAR(100)Nama pelanggan
phoneVARCHAR(20)Nomor HP/WA
addressTEXTAlamat
Tabel orders
KolomTipeKeterangan
idINT AIPrimary key
order_numberVARCHAR(20)GL+tanggal+random
customer_idINT FKRelasi customers
total_priceDECIMAL(10,2)Total harga
statusENUMpending/processing/done/delivered
payment_statusENUMunpaid / paid
Tabel order_details
KolomTipeKeterangan
idINT AIPrimary key
order_idINT FKRelasi orders
service_idINT FKRelasi services
qtyDECIMAL(8,2)Jumlah
priceDECIMAL(10,2)Harga saat order
subtotalDECIMAL(10,2)qty × price
Keamanan
FiturDetail
Password HashingBcrypt dengan cost factor 10
Session ProtectionHttpOnly cookie, SameSite=Lax
Output Escapinghtmlspecialchars() di semua output
SQL Injection PreventionPrepared statements di semua query
Role-based AccessAdmin dan Owner memiliki akses berbeda
File Protection.htaccess melindungi file .sql, .env, .json
Rekomendasi untuk Production
// config/database.php
define('APP_URL', 'https://yourdomain.com/golaundry');

// .htaccess — aktifkan HTTPS
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Selalu hapus seed_password.php setelah instalasi dan ganti password default sebelum go-live.
Troubleshooting
Error: "Failed to open stream: No such file or directory"
Error: "Database connection failed"
QR Code tidak muncul di halaman admin
Error: "Cannot find module '@whiskeysockets/baileys'"
"Saat ini akun Anda dibatasi" oleh WhatsApp
Halaman login redirect loop
FAQ
Apakah bisa dijalankan di hosting shared?
Untuk PHP bisa, tapi Node.js gateway membutuhkan VPS atau server yang mendukung Node.js. Alternatifnya, jalankan gateway di komputer lokal dan PHP di hosting.
Berapa banyak pelanggan yang bisa ditangani?
Tidak ada batasan teknis. Performa bergantung pada spesifikasi server dan database.
Apakah bisa multi-cabang?
Versi ini single-outlet. Untuk multi-cabang diperlukan pengembangan tambahan.
Apakah nomor WhatsApp bisa kena banned permanen?
Risiko ada, terutama jika mengirim pesan massal atau ke nomor yang tidak mengenal pengirim. Gunakan nomor dedicated dan ikuti panduan anti-ban.
Apakah bisa diakses dari internet (bukan localhost)?
Ya, deploy ke VPS dengan domain dan HTTPS. Update APP_URL dan WA_GATEWAY_URL di config/database.php.
Bagaimana cara backup data?
Export database via phpMyAdmin (Export → SQL format) secara berkala, atau gunakan mysqldump via CLI.
Apakah bisa custom logo/nama aplikasi?
Ya, ubah APP_NAME di config/database.php dan ganti teks "GoLaundry" di file view yang relevan.
Changelog
v1.0.0 — Initial Release
Dashboard Admin & Owner dengan statistik real-time
CRUD Pelanggan, Layanan, Order
Update status & pembayaran order
WhatsApp Gateway dengan QR Code di halaman admin
Notifikasi WA otomatis (5 trigger)
Laporan harian & bulanan dengan grafik Chart.js
Message queue dengan delay natural (anti-ban)
UI responsif dengan mobile bottom navigation
Pencarian pelanggan real-time (Tom Select)
Role-based access (Admin & Owner)
Lisensi
Diizinkan
  • Menggunakan untuk keperluan bisnis
  • Memodifikasi kode sesuai kebutuhan
  • Menginstall di satu domain/server
Dilarang
  • Menjual ulang source code
  • Mendistribusikan ulang tanpa izin
  • Menghapus credit/copyright
GoLaundry v1.0.0
Dibuat dengan ❤️ untuk kemudahan bisnis laundry Anda
© 2024 GoLaundry. All rights reserved.