# Panduan Memulai (Getting Started) Panduan ini ditujukan bagi developer untuk menyiapkan workstation lokal dan menjalankan seluruh komponen KeluargaMart Monorepo. --- ## 1. Prasyarat Sistem Sebelum memulai, pastikan perangkat Anda telah terpasang: - **Git** `2.40+` - **Node.js** `20.x` atau `22.x` (direkomendasikan versi LTS) - **pnpm** `10.x` atau `12.x` (`corepack enable && corepack prepare pnpm@latest --activate`) - **Go** `1.23+` (untuk backend development) - **Python** `3.10+` (untuk drift guard dan nextreport) - **Docker** atau **Podman** beserta compose plugin --- ## 2. Langkah Instalasi ### 1. Clone Repositori ```bash git clone keluargamart-monorepo cd keluargamart-monorepo ``` ### 2. Konfigurasi Environment File Salin file `.env.example` ke `.env` di root repositori: ```bash cp .env.example .env ``` Sesuaikan konfigurasi database, Redis, port, dan JWT secret sesuai kebutuhan lokal Anda. ### 3. Install Seluruh Dependensi Gunakan `pnpm` untuk menginstal seluruh dependency di root dan seluruh workspace aplikasi/package: ```bash pnpm install ``` ### 4. Jalankan Database & Services Pendukung (Opsional) Jika Anda ingin menjalankan database lokal via Docker Compose: ```bash docker compose -f apps/backend/docker-compose.dev.yml up -d db redis minio mailpit ``` --- ## 3. Menjalankan Aplikasi (Development Mode) ### A. Menjalankan Backend Go Buka terminal dan jalankan server Go: ```bash pnpm dev:backend ``` Backend akan berjalan di `http://localhost:8080`. ### B. Menjalankan Seluruh Frontend Sekaligus Buka terminal lain dan gunakan Turborepo untuk menjalankan semua frontend: ```bash pnpm dev ``` Perintah ini akan menyalakan: - **ERP Portal**: `http://localhost:5173` - **POS Kasir**: `http://localhost:5174` - **B2B Storefront**: `http://localhost:3000` ### C. Menjalankan Frontend Secara Terpisah Jika Anda hanya ingin fokus pada satu aplikasi tertentu: ```bash # Hanya ERP pnpm --filter @keluargamart/erp dev # Hanya POS pnpm --filter @keluargamart/pos dev # Hanya B2B pnpm --filter @keluargamart/b2b dev ``` --- ## 4. Menjalankan Test Suite ### Seluruh Test Frontend & Packages ```bash pnpm test ``` Menjalankan 80 file pengujian dan 625+ unit test secara paralel via Turborepo. ### Backend Go Tests ```bash pnpm test:backend ``` Menjalankan pengujian seluruh modul Go (`go test ./...` di dalam `apps/backend`). ### Verifikasi Drift Guard ```bash pnpm drift:check ``` --- ## 5. Menjalankan Build Untuk menguji kompilasi seluruh artefak produksi: ```bash # Build seluruh packages dan frontends pnpm build # Build Go backend binary pnpm build:backend ``` Hasil binary backend akan tersimpan di `apps/backend/bin/server`.