Lalabase
티켓·문서·근무시간·고객대화를 한 곳에 모아 KI로 검색, 소프트웨어 기업 고객 프로젝트용, 오픈소스로 자체 서버·독일 클라우드에 배포
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Aplikasi monitoring electrical (frontend HTML/JS + API PHP). Database: SQLite lokal saat dijalankan di XAMPP, Turso saat di-deploy ke Vercel — kodenya sama, driver dipilih otomatis dari environment variable. Script di assets/js sengaja berupa classic script (bukan ES module) supaya semua handler onclick="..." di HTML tetap berfungsi. Urutan pemuatan diatur di index.html. 1. Pastikan extension=pdo_sqlite aktif di php.ini (default XAMPP sudah aktif). 2. Salin .env.example → .env (biarkan DB_DRIVER=sqlite). 3. Buat tabel:README 전문 보기 ↗
Aplikasi monitoring electrical (frontend HTML/JS + API PHP). Database: SQLite lokal saat dijalankan di XAMPP, Turso saat di-deploy ke Vercel — kodenya sama, driver dipilih otomatis dari environment variable.
index.html Markup halaman (tanpa JS/CSS inline)
assets/css/ Stylesheet
assets/js/core/ Utilitas, state global, UI (overlay/toast), klien API
assets/js/data/ Master equipment & store.js (cache lokal + sinkronisasi database)
assets/js/pages/ Dashboard, Monitor, Riwayat, Hierarki, Config, Finding, User Management
assets/js/features/ Checklist, sesi, Work Order, laporan PDF/PPTX, crew portal, dll.
assets/js/tools/ Tool admin (Data Recovery, Scan Big Error)
api/index.php Satu-satunya endpoint API (?r=route)
api/_lib/ Driver SQLite/Turso, skema, auth, repository
scripts/ CLI: migrate.php, import-sheets.php, import-xlsx.php, copy-to-turso.php
database/schema.sql Skema SQL lengkap (SQLite & Turso) — generate ulang: php scripts/dump-schema.php
database/*.db File SQLite lokal (tidak ikut git)
legacy/ Backup index.html monolith lama (boleh dihapus)
Script di assets/js sengaja berupa classic script (bukan ES module) supaya semua
handler onclick="..." di HTML tetap berfungsi. Urutan pemuatan diatur di index.html.
extension=pdo_sqlite aktif di php.ini (default XAMPP sudah aktif)..env.example → .env (biarkan DB_DRIVER=sqlite).D:\Xampp\php\php.exe scripts\migrate.php
Database baru otomatis berisi akun default admin / admin123. Setelah login,
buat admin sendiri di User Management, login dengan akun itu, lalu hapus akun admin
(tidak akan dibuat ulang selama masih ada user lain).D:\Xampp\php\php.exe scripts\import-sheets.php
User lama ikut terimport dan password-nya otomatis di-hash.
Atau dari ekspor .xlsx Google Sheets (menggabung tanpa menimpa data yang ada, backup otomatis):
D:\Xampp\php\php.exe scripts\import-xlsx.php --file=dbm.xlsx --dry-run # lihat laporan dulu
D:\Xampp\php\php.exe scripts\import-xlsx.php --file=dbm.xlsx
http://localhost/dailymonitoring/File database ada di database/dailymonitoring.db — bisa dibuka langsung dengan
DB Browser for SQLite. Folder ini diblokir dari akses
browser oleh .htaccess.
turso db create dailymonitoring
turso db show dailymonitoring --url → TURSO_DATABASE_URL
turso db tokens create dailymonitoring → TURSO_AUTH_TOKEN
Buat file .env.turso (tidak ikut git):
DB_DRIVER=turso
TURSO_DATABASE_URL=libsql://dailymonitoring-xxx.turso.io
TURSO_AUTH_TOKEN=eyJ...
Pindahkan data lokal (XAMPP) ke Turso — semua tabel (user, bagan organisasi, hierarki, sesi, RCA, perbaikan, WO, pengaturan) disalin; password user tetap sama:
php scriptscopy-to-turso.php --env=.env.turso
Jika Turso sudah berisi data, script menolak kecuali ditambah --force (isi Turso ditimpa).
File .db sendiri tidak di-push ke GitHub (repo publik & berisi hash password / nomor HP).
Atau mulai dari kosong: buat tabel, admin, dan (opsional) import data — dari komputer lokal:
php scripts\migrate.php --env=.env.turso --admin=admin --password=PasswordKamu
php scripts\import-sheets.php --env=.env.turso
Data Turso bisa dilihat lewat turso db shell dailymonitoring atau dashboard Turso.
Tanpa langkah migrate pun tabel akan dibuat otomatis saat request pertama, dan admin pertama bisa dibuat otomatis dengan mengisi
ADMIN_USERNAME/ADMIN_PASSWORD.
TURSO_DATABASE_URL, TURSO_AUTH_TOKEN.
Nama dengan prefix kustom dari integrasi (mis. STORAGE_TURSO_DATABASE_URL) juga dikenali.vercel.json sudah mengatur api/index.php memakai runtime [email protected].Cek koneksi: https://<project>.vercel.app/api/index.php?r=health
| Role | Wilayah | Menerima notifikasi (default) |
|---|---|---|
| Crew | per unit (Crew Portal hanya menampilkan unitnya) | — |
| Leader | per unit | WARNING & ALERT di unitnya |
| Supervisor | semua unit | WARNING & ALERT semua unit |
| Plant Manager | per unit | ALERT di unitnya |
POST {baseUrl}/message/sendText/{instance}, header apikey).Alur di Crew Portal: cek → ada temuan → 🔧 Perbaiki → atasan diberi tahu → ↻ Cek Lagi (verifikasi) → Leader menutup via RCA.
Crew boleh melanjutkan monitoring walau hasil monitoring sebelumnya belum diperbaiki:
monitoring_wos + monitoring_wo_findings (skema v7), ikut sinkronisasi delta.Untuk saat ini temuan daily monitoring ditutup langsung di aplikasi (ke depan semua temuan PM & daily monitoring diarahkan ke WO).
Hanya Leader ke atas yang bisa membuat/menutup RCA (crew ditolak di server).
| Tabel | Isi |
|---|---|
users, auth_tokens | Akun (password di-hash), wilayah, nomor WA & token login |
user_reports | Bagan organisasi: pasangan bawahan → atasan (satu user bisa punya beberapa atasan) |
notifications, settings, wa_logs | Notifikasi in-app per user, pengaturan Evolution API & aturan penerima, log WhatsApp |
units, areas, equipments, equipment_params | Hierarki Unit → Area → Equipment → Parameter (batas normal/alert) |
sessions, session_items | Sesi monitoring & nilai tiap parameter + status OK/WARNING/ALERT |
deleted_sessions | Catatan sesi yang dihapus (dipakai sinkronisasi antar perangkat) |
pics | Daftar PIC / teknisi |
rca_reports, rca_findings | Root Cause Analysis & daftar finding yang ditutup tiap RCA |
repairs, repair_findings | Laporan perbaikan crew & finding yang diperbaiki |
monitoring_wos, monitoring_wo_findings | WO Monitoring: temuan yang di-skip crew saat "Monitoring Lagi" + statusnya |
work_orders, work_order_items, work_order_logs | Work order, item checklist temuan, riwayat catatan |
counters, app_meta | Nomor revisi, nomor urut WO, versi skema |
v_findings (view) | Semua temuan WARNING/ALERT siap dibaca, beserta No. & status RCA-nya |
Database yang dibuat dengan skema lama otomatis di-upgrade saat API pertama kali dipakai
(atau jalankan php scripts/migrate.php).
saveAll() setelah mengubah data. store.js menyimpan
cache lokal lalu mengirim hanya entitas yang berubah ke POST ?r=push (atomik).GET ?r=sync&since=<rev> — hanya data dengan revisi lebih baru yang dikirim.crew tidak bisa mengubah hierarki/PIC atau menghapus sesi (ditolak di server).| Method | Route (api/index.php?r=) | Keterangan |
|---|---|---|
| GET | health | Status & driver database |
| POST | auth/login, auth/logout · GET auth/me | Login berbasis token (header X-Auth-Token) |
| GET | sync&since=&cursorId= | Tarik perubahan (paginasi 200 sesi) |
| POST | push | Simpan hierarki / PIC / sesi / hapus sesi / work order |
| POST | workorders/next-seq | Nomor urut WO global |
| GET/POST/PUT/DELETE | users | User management (admin) |
| PUT | users/org | Simpan bagan organisasi {links:[{username, reportsTo:[...]}]} (admin) |
| POST | notifications/read | Tandai notifikasi dibaca {ids:[...]} atau {all:true} |
| GET/PUT | settings/notifications | Pengaturan WhatsApp & aturan penerima (admin) |
| POST | settings/wa-test | Kirim pesan tes WhatsApp {phone} (admin) |