| Bagian | Teknologi |
|---|---|
| Struktur Utama | pnpm Workspaces, TypeScript |
| Frontend | React, Vite, Tailwind CSS |
| Backend | Express.js, Prisma (ORM) |
Project ini menggunakan pnpm workspaces untuk mengelola beberapa project dalam satu repo.
/project-catalog
├── /apps
│ ├── /frontend // Semua kode React & Tailwind
│ └── /backend // Semua kode Express & Prisma
├── package.json // Script utama untuk menjalankan semua project
└── pnpm-workspace.yaml
Berikut adalah langkah-langkah untuk menjalankan project ini di komputermu.
Pastikan kamu sudah menginstall:
- Node.js (disarankan versi LTS v20 atau lebih baru)
- pnpm (jalankan
npm install -g pnpmjika belum punya)
-
Clone repository ini:
git clone https://github.com/syaifmaxl/project-catalog.git cd project-catalog -
Install semua dependencies: Jalankan perintah ini di folder root. pnpm akan secara otomatis menginstall dependensi untuk
frontenddanbackend.pnpm install
-
Setup Backend & Database:
- Pindah ke direktori backend:
cd apps/backend - Buat file
.envdari contoh yang ada. File ini berisi koneksi ke database.# Copy dari .env.example (buat file .env.example dulu jika belum ada) cp .env.example .env - Buka file
.envdan sesuaikanDATABASE_URLdengan koneksi database-mu.# Contoh untuk PostgreSQL DATABASE_URL="postgresql://USER:PASSWORD@HOST:PORT/DATABASE?schema=public"
- Jalankan migrasi database menggunakan Prisma untuk membuat tabel-tabel yang dibutuhkan.
pnpm prisma migrate dev
- Kembali ke folder root:
cd ../..
- Pindah ke direktori backend:
Untuk menjalankan server backend dan frontend secara bersamaan, cukup jalankan satu perintah dari folder root:
pnpm dev- Backend akan berjalan di
http://localhost:3000(atau port lain yang disetup). - Frontend akan berjalan di
http://localhost:5173dan otomatis terhubung ke backend melalui proxy.
Semua perintah ini dijalankan dari folder root.
pnpm dev: Menjalankan frontend dan backend secara bersamaan untuk development.pnpm dev:frontend: Hanya menjalankan aplikasi frontend (React).pnpm dev:backend: Hanya menjalankan server backend (Express).