Appearance
Getting Started
Selamat datang! Dokumentasi ini akan bantu kamu setup project Soul Map Atlas di local machine.
Prerequisites
- Node.js 20+ (rekomendasi: pakai latest LTS)
- pnpm 9+ (package manager wajib, tidak support npm atau yarn)
- Git
- Cloudflare account — untuk D1 database dan deployment
Quick Start
1. Clone Repository
bash
git clone https://github.com/alphaenano/soul-map-atlas-journey.git
cd soul-map-atlas-journey2. Install Dependencies
bash
pnpm installCommand ini akan install semua dependencies termasuk global tools (Biome, lefthook, turbo, wrangler).
3. Setup Environment Variables
Copy file .dev.vars.example ke .dev.vars dan isi dengan credentials kamu:
bash
cp apps/api/.dev.vars.example apps/api/.dev.varsMinimal variable yang harus diisi:
BETTER_AUTH_URL=http://localhost:8787
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secretUntuk Google OAuth, daftarkan app di Google Cloud Console dan tambahkan redirect URL: http://localhost:8787/api/auth/callback/google.
4. Setup D1 Database (Local)
bash
cd packages/db
npx wrangler d1 create soul-map-atlas-db --localKemudian apply migrations:
bash
npx wrangler d1 migrations apply soul-map-atlas-db --local5. Generate Worker Types
bash
pnpm run prepareCommand ini akan generate worker-configuration.d.ts via wrangler types.
6. Jalankan Development Server
bash
# Terminal 1: API server
cd apps/api
pnpm run dev
# Terminal 2: Web frontend
cd apps/web
pnpm run dev
# Terminal 3: Docs site
cd apps/docs
pnpm run devAtau pakai turbo untuk run semua sekaligus:
bash
pnpm run devDevelopment Workflow
Code Formatting
Project pakai Biome sebagai formatter dan linter. Pre-commit hook akan otomatis format staged files:
bash
# Format manual
pnpm biome format --write apps/api/src/index.ts
# Check semua file
pnpm biome check --write .Git Workflow
Kita pakai branch development untuk development. Task branches dibuat dari development:
bash
git checkout development
git pull origin development
git checkout -b feature/SOUL-XX-short-descriptionSetelah selesai, push ke remote dan buat MR ke development.
Shortcut: kamu juga bisa kerja langsung di development untuk task kecil (post Plane comment dengan commit hash).
Running Tests
bash
# Type check semua packages
pnpm run typecheck
# Build semua packages
pnpm run build
# Lint semua
pnpm run lintProject Structure
apps/
web/ # React + Vite frontend
api/ # oRPC API backend
docs/ # VitePress documentation
packages/
db/ # Drizzle ORM + D1 schema
auth/ # better-auth config
email/ # Resend email sender
payment/ # Doku payment gateway
shared/ # Types, utilitiesUseful Commands
| Command | Description |
|---|---|
pnpm install | Install semua dependencies |
pnpm run build | Build semua packages |
pnpm run dev | Jalankan dev server untuk semua apps |
pnpm run lint | Lint semua file |
pnpm run typecheck | Type check semua packages |
pnpm run prepare | Generate worker types dan setup hooks |
Troubleshooting
worker-configuration.d.ts tidak ada
Jalankan pnpm run prepare atau cd apps/api && npx wrangler types.
D1 database tidak terhubung
Pastikan:
- Database sudah dibuat:
npx wrangler d1 create soul-map-atlas-db --local - Database ID sudah diisi di
wrangler.jsonc - Migrations sudah di-apply
Build error: "Cannot find module '@packages/db'"
Jalankan pnpm run build di root untuk build internal packages terlebih dahulu.
OAuth callback error
Pastikan redirect URL di Google Console match dengan BETTER_AUTH_URL (termasuk port).
Next Steps
- Baca Architecture untuk paham monorepo structure.
- Baca Tech Stack untuk detail teknologi.
- Baca Data Governance untuk paham business logic.
- Lihat API Docs untuk reference endpoint.
Butuh bantuan? Cek GitHub Issues atau tanya di tim.