diff --git a/issue.md b/issue.md deleted file mode 100644 index a30ec58..0000000 --- a/issue.md +++ /dev/null @@ -1,335 +0,0 @@ -# Issue: Peningkatan Bagian Proyek (Project Section Enhancement) - -## Deskripsi -Setiap kartu proyek perlu diperkaya dengan informasi tambahan: **tech stack**, **keterangan lengkap**, **interaksi klik untuk detail**, **tahun pengerjaan**, dan **target/pencapaian** yang berhasil tercapai. - ---- - -## Langkah-langkah Implementasi - -### Langkah 1 — Update Skema Prisma (Database) - -**File:** `prisma/schema.prisma` - -Tambahkan kolom baru pada model `Project`: - -```prisma -model Project { - // ... field yang sudah ada ... - - techStack String[] // array nama teknologi, e.g. ["Java", "Spring Boot", "PostgreSQL"] - year Int? // tahun pengerjaan, e.g. 2024 - highlights String[] // target/pencapaian, e.g. ["Reduce latency 40%", "10K daily users"] -} -``` - -Setelah edit schema, jalankan migrasi: -```bash -npx prisma migrate dev --name add_project_details -npx prisma generate -``` - ---- - -### Langkah 2 — Update Zod Schema Validasi - -**File:** `src/features/projects/project-schema.ts` - -Tambahkan field baru ke `projectSchema`: - -```ts -techStack: z.string().optional(), // dikirim sebagai string CSV dari form, e.g. "Java,Spring Boot,Docker" -year: z.coerce.number().optional(), -highlights: z.string().optional(), // dikirim sebagai string CSV, e.g. "Reduce latency 40%,10K users" -``` - -> Catatan: Field diproses sebagai CSV string di form, lalu di-parse menjadi `String[]` sebelum disimpan ke DB. - ---- - -### Langkah 3 — Update Server Action (Create & Update) - -**File:** `src/features/projects/actions.ts` - -Di fungsi `createProjectAction` dan `updateProjectAction`, tambahkan parsing: - -```ts -const rawTechStack = formData.get("techStack") as string; -const rawHighlights = formData.get("highlights") as string; - -// Di blok prisma.project.create / prisma.project.update: -techStack: rawTechStack ? rawTechStack.split(",").map(s => s.trim()) : [], -year: formData.get("year") ? Number(formData.get("year")) : null, -highlights: rawHighlights ? rawHighlights.split(",").map(s => s.trim()) : [], -``` - ---- - -### Langkah 4 — Update Form Admin (Tambah Field Baru) - -**File:** `src/features/projects/project-form.tsx` - -Tambahkan tiga input baru di dalam `
`: - -#### 4a. Tech Stack (input teks, pisahkan dengan koma) -```tsx -
- - -

Pisahkan setiap teknologi dengan koma

-
-``` - -#### 4b. Tahun Pengerjaan (input number) -```tsx -
- - -
-``` - -#### 4c. Pencapaian / Highlights (input teks, pisahkan dengan koma) -```tsx -
- -