GAS
PT Guna Andalan Sejati Portfolio ยท Panduan
Hub · Panduan

Panduan Portfolio GAS

Dokumentasi resmi untuk semua project tracking yang dikerjakan PT Guna Andalan Sejati. Setiap perubahan fitur โ€” tambah project, tambah tabel, evaluasi metrik โ€” akan didokumentasikan di sini supaya tim selalu sinkron.

1Selamat Datang

Portfolio ini adalah tempat tunggal untuk monitoring semua project renovasi dan konstruksi yang dikerjakan PT GAS (Guna Andalan Sejati). Setiap project punya dashboard sendiri yang menampilkan progress, material, dan keuangan secara real-time, dengan data hidup dari Google Sheets.

Akses

Halaman portfolio (hub) terbuka untuk publik agar mudah dibagikan. Dashboard per project juga bisa dibuka siapa saja yang punya link, tapi hanya pihak yang diberi izin (Editor email Gmail) yang bisa mengubah data di Google Sheet.

Rencana ke depan: akan ada login per email & password untuk role-based access (Owner, Supervisor, Staff) โ€” supaya halaman, action, dan data tertentu hanya bisa diakses sesuai peran. Akan dirilis bertahap.

2Arsitektur Sistem

4 layer kerja, masing-masing dengan peran jelas:

LayerFungsiYang Mengelola
WhatsAppInput channel untuk supervisor (Phase 2). Pengiriman update via hashtag command.OpenClaw bot (Nevacloud)
Google SheetDatabase โ€” sumber kebenaran. Semua data project hidup di sini.Owner + Supervisor (Editor)
DashboardVisualisasi read-only โ€” chart, table, KPI. Auto-refresh 60s.System (Vercel static)
Portfolio HubLanding page dengan daftar semua project + akses ke panduan ini.System (Vercel static)

Domain

gunaandalan.gspproject.com โ€” single domain untuk semua. Setiap project punya path sendiri, misalnya /renovresman/ untuk Renovasi Kantor WRG. Tidak ada subdomain per project (supaya mudah managed).

3Untuk Owner / Admin

OWNER Pemilik & pemegang keputusan akhir

Akses penuh untuk semua project + halaman admin (kalau sudah aktif). Pegang seluruh kontrol Google Sheet, Vercel, DNS, dan Apps Script.

Tugas utama

  • Review progress di hub / โ€” KPI strip kasih overview semua project
  • Drill-down ke project tertentu via card โ†’ buka dashboard detail
  • Setup project baru (lihat Tambah Project Baru)
  • Brief supervisor lapangan via WhatsApp dengan link dashboard
  • Review weekly sync (Jumat 16:00 WIB default) untuk konfirmasi progress

Tools yang dipakai

  • Google Sheet โ€” full Editor access per project
  • Vercel CLI โ€” deploy update dashboard
  • Hostinger DNS โ€” kalau perlu add domain baru (jarang)
  • OpenClaw โ€” bot management (Phase 2)

4Untuk Supervisor Lapangan

SUPERVISOR Eksekutor lapangan, update data harian

Dapat akses Editor di Sheet untuk project yang ditangani. Bertanggung jawab mengupdate progress, material, dan termin pembayaran sesuai pembagian role.

Cara mulai

  1. Cek hub: buka gunaandalan.gspproject.com, lihat project lo ada di mana
  2. Klik card project โ†’ masuk ke dashboard
  3. Tab Panduan di dashboard project โ†’ baca pembagian tugas spesifik
  4. Klik link Sheet di Panduan tab โ†’ login Gmail Editor โ†’ mulai input data

Pembagian tugas (general pattern)

Tab SheetDiisi olehFrekuensi
PROGRESSSupervisor lapangan (arsitek)Mingguan (Senin pagi)
MATERIAL_PLANSupervisor lapangan (arsitek)Saat ada perubahan BoQ
MATERIAL_POSupervisor financeSetiap PO baru
TERMINSupervisor financeSetiap pembayaran
LOG_HARIANSiapa saja yang punya updateHarian, ad-hoc
CONFIGOwner + SupervisorSekali di awal project
Detail tugas spesifik untuk project tertentu (e.g., siapa Fahmi, siapa Faizal di Renov WRG) ada di tab ๐Ÿ“– Panduan di dalam dashboard project masing-masing.

5Untuk Staff / Observer

STAFF Akses read-only untuk konteks

Buka dashboard untuk lihat status project, tanpa edit. Cocok untuk tim management yang butuh awareness tanpa terlibat eksekusi harian.

  • Buka hub gunaandalan.gspproject.com
  • Klik project yang relevan โ†’ lihat KPI, chart, progress
  • Tidak perlu login (Phase 1) โ€” semua dashboard read-only by default
  • Pertanyaan? Tag Gilang di WA atau lihat Kontak

6Baca Dashboard

Setiap dashboard project (e.g., /renovresman/) punya 6 tab. Apa isinya:

Tab "Live Status"

Snapshot real-time minggu ini. 5 KPI:

  • Rencana Minggu Ini โ€” % bobot kerja yang seharusnya selesai
  • Realisasi Minggu Ini โ€” % yang aktual selesai (delta dari rencana = slip/ahead)
  • Cost Burn โ€” total pengeluaran material vs budget
  • Termin Paid โ€” total pembayaran kontraktor
  • Hari ke PHO โ€” countdown ke serah-terima provisional

Chart deviasi kumulatif: area merah = slip, area hijau = ahead of schedule.

Tab "Overview"

Kurva-S rencana vs realisasi + komposisi biaya material per divisi (pie chart).

Tab "Schedule"

Bobot pekerjaan per divisi (bar chart) + beban bobot mingguan + Gantt 24 minggu. Warna bar:

  • โ— Hijau = realisasi โ‰ฅ80% (on-track/done)
  • โ— Oranye = minggu berjalan saat ini
  • โ— Merah = slip (realisasi <80% di minggu lewat)
  • โ— Biru = future / belum mulai

Tab "Material BoM"

Top 10 material termahal (chart) + top 10 volume + daftar plan vs actual PO dengan variance.

Tab "Termin"

5 termin pembayaran (M1-4, M5-8, M9-12, M13-18, M19-24) + retensi 5% pasca-PHO. Status badge: pending / submitted / approved / paid.

Tab "๐Ÿ“– Panduan"

Project-specific FAQ untuk supervisor โ€” tugas detail, sync schedule, troubleshooting operasional.

7Evaluasi Tabel

Setiap tabel di dashboard punya semantic-nya. Cara baca:

Tabel "Termin Status" (Live Status tab)

KolomArtinya
TERMINNomor termin (I, II, dst) + label periode
STATUSPending / Submitted / Approved / Paid / Overdue
NILAI PLANNilai planned termin sesuai kontrak
NILAI ACTUALNilai realisasi (bisa beda kalau ada perubahan scope)
BAYARTanggal pembayaran aktual

Tabel "Daftar Material" (Material BoM tab)

Plan vs Actual PO. Variance kolom:

  • Variance positif (oranye) = aktual lebih mahal/banyak dari plan โ†’ review apakah masih sehat
  • Variance negatif (hijau) = aktual lebih hemat โ†’ bagus
  • Variance =0 = sesuai plan

Tabel "Gantt 24 Minggu" (Schedule tab)

Row = divisi pekerjaan (e.g., Persiapan, Bongkar, Struktur, MEP, Finishing, dst). Kolom = minggu (M1...M24). Warna cell = status minggu itu.

Hover atau tap cell untuk lihat detail bobot vs realisasi. (Coming soon โ€” Phase 2)

8Tambah Project Baru

Project baru dideploy ke gunaandalan.gspproject.com/<nickname>/ sebagai subfolder dari hub. Total clone-to-live ~30-45 menit kalau lo udah familiar.

Single domain pattern. Tidak ada DNS baru, tidak ada Vercel project baru per project. Semua project hidup di bawah gunaandalan.gspproject.com dengan path sendiri.

Step 1 โ€” Decide naming (~3 min)

  • Nickname: single-word lowercase (e.g., renovjkt, salestrk, eventops)
  • URL final: gunaandalan.gspproject.com/<nickname>/
  • Local folder: /Users/gsp/Documents/Claude/Projects/Business/WRG/<Project Folder>/

Step 2 โ€” Clone source files (~5 min)

cd "/Users/gsp/Documents/Claude/Projects/Business/WRG"
cp -r "Renovasi Kantor WRG" "<New Project Folder>"
cd "<New Project Folder>"
mv "Dashboard Renovasi WRG.html" "Dashboard <Project>.html"

Step 3 โ€” Customize template (~10 min)

Dashboard HTML:

  • Line ~5 (title) + line ~107 (h1) โ†’ "Dashboard <Project Name>"
  • Line 297 โ†’ kosongkan SHEET_ID (isi di Step 5)
  • Line 298 (CONFIG.TABS) โ†’ rename keys kalau Sheet tabs beda
  • Tab bar "๐Ÿ“Š Update Progress" button โ†’ update href ke Sheet URL baru
  • FAQ section โ†’ update kontraktor, supervisor names, dll

setup.gs: update SHEET_NAMES object (line ~21) kalau tab names beda.

xlsx template: rename + edit di Excel/Numbers sesuai domain project.

Step 4 โ€” Upload Sheet ke Drive (~3 min)

  1. Drag-drop xlsx ke drive.google.com
  2. Klik kanan โ†’ Open with โ†’ Google Sheets
  3. File โ†’ Save as Google Sheets (lepas dari xlsx format)
  4. Catat SHEET_ID dari URL

Step 5 โ€” Apps Script setup (~5 min)

  1. Extensions โ†’ Apps Script
  2. Paste isi setup.gs, Save
  3. Run function setupAfterImport
  4. Authorize permissions (Advanced โ†’ Go to project unsafe)
  5. Cek Execution log โ†’ expect success messages

Step 6 โ€” Sharing (~2 min)

  1. Sheet โ†’ Share โ†’ "Anyone with the link" โ†’ Viewer
  2. Add Editor emails (supervisor lapangan project ini)

Step 7 โ€” Paste SHEET_ID ke HTML (~1 min)

Edit Dashboard HTML line 297, paste SHEET_ID di antara quote kosong:

SHEET_ID: '13ss5de-wt7XSv2hMznf7HGBPHV2yQWZY2o79sCy2-Dw',  // PASTE SHEET ID

Step 8 โ€” Copy ke hub folder (~1 min)

cd "/Users/gsp/Documents/Claude/Projects/Business/WRG/PT Guna Andalan Sejati/gunaandalan-hub"
mkdir -p <nickname>
cp "../../<New Project Folder>/Dashboard <Project>.html" <nickname>/index.html

Step 9 โ€” Tambah card di hub + deploy (~3 min)

Edit gunaandalan-hub/index.html, tambah block card di section "Active Projects" sebelum </div>:

<a class="project" href="/<nickname>/">
  <div class="top">
    <h3><Project Name></h3>
    <span class="status live">Live</span>
  </div>
  <div class="meta">
    <span>๐Ÿ“ <Lokasi></span>
    <span class="dot"></span>
    <span>โฑ๏ธ <Durasi></span>
  </div>
  <div class="desc"><Description 1-2 kalimat></div>
  <div class="footer">
    <span>Owner: <X> ยท Mulai <tanggal></span>
    <span class="open">Buka Dashboard โ†’</span>
  </div>
</a>

Deploy:

cd "/Users/gsp/Documents/Claude/Projects/Business/WRG/PT Guna Andalan Sejati/gunaandalan-hub"
vercel --prod --yes
vercel alias set https://gunaandalan-portfolio.vercel.app gunaandalan.gspproject.com

Verify: curl -I https://gunaandalan.gspproject.com/<nickname>/ โ†’ expect HTTP 200.

Detail lengkap + variations untuk domain selain renovasi (sales, HR, event ops, dll) di file REPLICATE_PROJECT.md (folder Renovasi Kantor WRG).

9Kelola Data โ€” Add / Edit / Delete

Semua data project hidup di Google Sheet. Dashboard read-only โ€” refresh otomatis tiap 60 detik dari Sheet. Edit data = edit Sheet. Tab bar "๐Ÿ“Š Update Progress" button = shortcut ke Sheet edit mode.

A. Tambah Row (Data Baru)

Pattern paling sering: tambah row baru di tab Sheet untuk update progress, log harian, PO baru, dll.

  1. Klik ๐Ÿ“Š Update Progress di tab bar dashboard (atau buka Sheet langsung)
  2. Klik tab yang dituju di bawah Sheet (PROGRESS / MATERIAL_PO / TERMIN / dll)
  3. Scroll ke baris kosong pertama setelah data terakhir
  4. Klik cell pertama row baru, ketik value
  5. Tab atau Enter untuk pindah cell, isi semua kolom yang relevan
  6. Auto-save (cek "Saved to Drive" di toolbar atas)

Dashboard akan auto-fetch dalam โ‰ค60 detik. Refresh browser kalau buru-buru.

B. Edit Cell Existing

Update nilai yang sudah ada (mis. % realisasi mingguan, status termin, harga PO).

  1. Buka Sheet, navigate ke tab + cell yang dituju
  2. Double-click cell (atau klik + F2) untuk edit mode
  3. Ketik value baru, Enter
  4. Auto-save

Untuk edit BANYAK cell sekaligus:

  • Select range cell pertama โ†’ drag sampai range akhir
  • Ketik value untuk cell pertama โ†’ Tab atau Enter ke cell selanjutnya
  • Atau paste dari clipboard (lebih cepat kalau lo punya data di Excel/file lain)

C. Delete Row

โš ๏ธ Hati-hati. Delete row = permanen kecuali Restore via Version History. Pertimbangkan mark sebagai "cancelled/inactive" daripada delete kalau row punya history yang penting (audit trail).
  1. Klik nomor row di kiri (row akan highlighted)
  2. Klik kanan โ†’ Delete row
  3. Atau menu: Edit โ†’ Delete โ†’ Row

Kalau salah delete: File โ†’ Version history โ†’ See version history โ†’ pilih timestamp sebelum delete โ†’ Restore.

D. Soft Delete (Recommended)

Untuk data yang punya history penting (e.g., PO yang dibatalkan, divisi yang scope-nya diubah), tambah kolom status dan mark sebagai cancelled / void daripada hapus permanen.

Sebelum: row keramik | qty=200 | DELETE
Sesudah: row keramik | qty=200 | status=cancelled (kept for audit)

Dashboard JS bisa di-tweak untuk filter out status=cancelled dari render (tag Gilang kalau butuh).

E. Undo / Version History

Google Sheet otomatis simpan revision history. Akses via:

  • Quick undo: Cmd+Z (Mac) / Ctrl+Z (Windows) โ€” works for last few actions
  • Full history: File โ†’ Version history โ†’ See version history โ†’ pilih timestamp โ†’ Restore

Version history kekal forever (selama Sheet exists). Backup mingguan .xlsx adalah safety net kedua.

F. Bulk Operations

  • Paste from Excel/CSV: Copy multi-row data dari file lain โ†’ klik cell start di Sheet โ†’ Cmd+V. Format auto-detect.
  • Fill down: Select cell dengan value โ†’ drag fill handle (kotak kecil kanan-bawah) ke bawah โ†’ values copy/increment.
  • Formula: Bisa pakai formula Google Sheets (=SUM, =VLOOKUP, dll). Dashboard fetch evaluated value, bukan formula text.

10Struktur & Schema Changes

Lebih advanced โ€” bukan tambah/edit data tapi ubah STRUCTURE Sheet (tambah kolom, tambah tab, dll). Sebagian besar butuh code change di dashboard HTML.

A. Tambah Column ke tab existing

  • Append di akhir (paling kanan) โœ… aman. Data masuk Sheet, tidak ditampilkan di dashboard sampai code update. Tidak break apa pun.
  • Insert di tengah ๐Ÿšจ HINDARI. Index kolom geser โ†’ dashboard JS yang baca by-index akan render salah. Pakai append + reorder di dashboard render layer kalau perlu.
  • Untuk display column baru di dashboard: tag Gilang via WA dengan info (kolom apa, di tab mana, mau visualisasi seperti apa). Effort biasanya 30-60 min implementation.

B. Rename Column Header

Ubah nama header (row 1) tab. Aman kalau dashboard fetch by-position bukan by-name. Untuk sure, tag Gilang setelah rename.

C. Hapus Column

โš ๏ธ Berisiko. Hapus column = data permanen hilang + index geser โ†’ dashboard kemungkinan break.

Alternatif yang lebih aman:

  • Hide column (klik kanan header โ†’ Hide column) โ€” column tetap di Sheet, dashboard tidak terganggu
  • Rename ke _unused_X + kosongkan content

D. Tambah Tab Baru (Sheet baru)

Tab baru di Sheet butuh code change di dashboard supaya bisa di-fetch + display.

  1. Di Sheet: bottom toolbar โ†’ klik + untuk add sheet โ†’ rename โ†’ isi header + data
  2. Dashboard HTML line 298 (CONFIG.TABS): tambah key baru
  3. JS: tambah fetch handler untuk tab baru di function renderAll(data)
  4. HTML: tambah <div class="tab"> di tab bar + panel content
  5. Re-deploy (vercel --prod --yes dari hub folder)

Tag Gilang via WA โ€” biasanya 30-60 min implementation.

E. Hapus Tab

  1. Dashboard HTML: hapus reference dari CONFIG.TABS + tab bar + panel + JS
  2. Re-deploy dulu (supaya dashboard nggak crash karena fetch tab yang sudah dihapus)
  3. Di Sheet: klik kanan tab name โ†’ Delete (atau Move to trash kalau mau soft-delete)

F. Backup Schema Sebelum Major Change

Sebelum struktur changes major (rename tab, big reorganization), download .xlsx dulu ke /Renovasi Kantor WRG/backup/. Pakai sebagai rollback kalau ada yang break.

11WhatsApp Bot Integration (Phase 2)

STATUS: DEFERRED

Plan: supervisor input data via WA hashtag command, bot parse, langsung tulis ke Google Sheet.

Contoh command (planned)

#progress div=keramik lt=1 pct=45
#material po=cat qty=20 unit=kaleng supplier=indaco
#log update plafon lt2 sudah selesai

Kenapa ditunda?

Bot OpenClaw existing heavily dikustomisasi untuk domain elpiji (sister business). Hashtag library (#help, #status, #bbm, dll) conflict dengan hashtag renovasi yang baru. Untuk migrasi clean, butuh:

  • Path 1: OpenClaw instance ke-2 dengan WA number baru (clean isolation)
  • Path 2: Pakai prefix ! bukan # (bypass sidecar elpiji)
  • Path 3: Modify Tier 1 sidecar code (riskiest, touch production)

Decide path setelah Fahmi/Faizal familiar dengan Sheet manual workflow minimal 1 minggu.

12Troubleshooting

Q: Dashboard tidak update setelah edit Sheet

Tunggu maksimal 60 detik (interval refresh). Kalau masih, hard reload browser (Cmd+Shift+R / Ctrl+F5). Kalau masih, screenshot dashboard + screenshot Sheet, tag Gilang via WA.

Q: "Demo mode" banner muncul di dashboard

SHEET_ID kosong di HTML (line 297). Owner perlu edit + redeploy. Tag Gilang.

Q: Saya bukan Editor Sheet, gimana minta akses?

Kirim email Gmail ke Gilang via WA. Dia invite dalam <5 menit.

Q: TLS / certificate error di domain

Owner level: vercel certs issue gunaandalan.gspproject.com untuk force re-issue. Atau cek Hostinger DNS โ€” CNAME gunaandalan harus return cname.vercel-dns.com.

Q: Data tiba-tiba hilang / salah edit accidentally

Sheet ada version history. Buka Sheet โ†’ File โ†’ Version history โ†’ See version history โ†’ pilih version sebelum incident โ†’ Restore this version.

Q: Bisa edit Sheet dari HP?

Bisa. Install app Google Sheets di HP, login Gmail Editor, buka file dari Drive.

Q: Login dashboard butuh password?

Phase 1: tidak butuh, semua dashboard read-only public. Phase 2 (planned): akan ada login per email & role-based access.

Q: Custom domain nggak nyambung

Cek DNS: dig gunaandalan.gspproject.com CNAME +short harus return cname.vercel-dns.com. Kalau belum, tunggu propagation atau cek Hostinger DNS record.

13Changelog

Catatan setiap perubahan major di system. Update di sini setiap deploy.

2026-05-13 (sore)
Panduan expanded + dashboard tab bar Update Progress button
  • Section 8 "Tambah Project Baru" diperbanyak step-by-step dengan bash commands + code snippet copy-paste-ready
  • Section 9 baru: "Kelola Data โ€” Add / Edit / Delete" (6 sub-section: tambah row, edit cell, delete row, soft-delete, undo, bulk ops)
  • Section 10 baru: "Struktur & Schema Changes" (tambah column, rename, delete, tab baru, backup schema)
  • Dashboard project: "๐Ÿ“Š Update Progress" button di tab bar (push right), quick edit Sheet access
  • GAS Portfolio card LIVE di app.gspproject.com (super_admin lihat default; gas_admin/supervisor/viewer roles ready)
2026-05-13 (pagi)
Portfolio hub launched + renovresman migrated
  • Single-domain pattern: semua project di bawah gunaandalan.gspproject.com
  • Renov Resman dashboard pindah ke /renovresman/, old subdomain dihapus
  • Branding: PT Guna Andalan Sejati (sebelumnya keliru "Sentosa")
  • Logo GAS terintegrasi di hub
  • Panduan terpusat (this page) dibuat sebagai single source of truth
  • SSO Protection disabled untuk public access
2026-05-12
Renov Resman dashboard initial deploy
  • Dashboard HTML 5 tab + 6 chart + auto-refresh 60s
  • Apps Script setup dengan conditional formatting, daily health check, protected ranges
  • Google Sheet 6 tab: PROGRESS, MATERIAL_PLAN, MATERIAL_PO, TERMIN, LOG_HARIAN, CONFIG
  • Mobile responsive (tab horizontal-scroll, table horizontal-scroll, KPI stack)
  • Tab ๐Ÿ“– Panduan di dashboard project untuk operational FAQ

14Kontak

PeranNamaKontak
OwnerGilanggilangmmuc@gmail.com ยท WA TBD
Supervisor Arsitek (Renov Resman)FahmiWA TBD
Supervisor Finance (Renov Resman)FaizalWA +62 857-3015-6026
KontraktorPT Guna Andalan Sejatiโ€”

Issue terkait dashboard / system: tag Gilang via WA. Sertakan screenshot kalau ada error visual.