Ini adalah project e-commerce berbasis Next.js dengan dark mode sebagai tema utama. Website ini memiliki beberapa fitur utama seperti katalog produk, wishlist, keranjang belanja, checkout, riwayat pesanan, dan halaman admin untuk pengelolaan produk.
- Beranda (
/) - Produk (
/product) - Detail Produk (
/product/[slug]) - Wishlist (
/wishlist) - Keranjang & Checkout (
/checkout) - Riwayat Pesanan (
/order-history) - Profil (
/profile) - Sign In (
/signin) - Register (
/register) - Admin Produk (
/admin/product) - Tentang (
/about) - FAQ (
/faq) - Kontak (
/kontak)
- Katalog produk dengan filter
- Wishlist produk
- Keranjang belanja & ringkasan pesanan
- Checkout dengan form validasi
- Riwayat pesanan
- Halaman admin untuk tambah/edit produk
- Dark mode sebagai default
- Responsive & modern UI
- Next.js App Router
- Tailwind CSS (dark mode enabled)
- Komponen UI: shadcn/ui (lihat di
src/components/ui/) - State management: Context API (cart, wishlist)
- Form: React Hook Form + Zod
- Data dummy:
src/data/products.ts
Sebelum menjalankan aplikasi, setup environment variables terlebih dahulu:
# Windows PowerShell
.\setup-env.ps1 local
# Linux/Mac
./setup-env.sh localAtau manual:
# Copy file environment
cp .env.local .envDokumentasi lengkap: ENV_GUIDE.md | Quick Reference
Cara paling modern untuk development dengan VS Code:
-
Prerequisites:
- Install Docker Desktop
- Install VS Code extension: "Dev Containers"
-
Quick Start:
- Buka project di VS Code
- Tekan
F1β pilih "Dev Containers: Reopen in Container" - Tunggu setup selesai (pertama kali ~5-10 menit)
- Jalankan
npm run dev:dockerdi terminal
-
Fitur:
- β Environment konsisten untuk semua developer
- β Extensions & settings auto-install
- β Hot reload berfungsi sempurna
- β Database & migrations auto-setup
- β Integrated terminal & debugging
Dokumentasi lengkap: DEV_CONTAINERS_GUIDE.md
Cara termudah untuk menjalankan aplikasi lengkap dengan database:
-
Pastikan Docker Desktop sudah terinstall dan berjalan
-
Copy environment variables:
Copy-Item .env.example .env -
Edit file
.envsesuai kebutuhan -
Jalankan dengan npm scripts:
# Development mode dengan watch (hot reload) npm run docker:dev:watch # Atau development biasa (background) npm run docker:dev:up # Atau development (foreground dengan logs) npm run docker:dev
-
Akses aplikasi di http://localhost:3000
Docker Commands:
npm run docker:dev # Start development (foreground)
npm run docker:dev:up # Start development (background)
npm run docker:dev:watch # Start dengan hot reload
npm run docker:stop # Stop containers
npm run docker:logs # Show all logs
npm run docker:logs:app # Show app logs only
npm run docker:migrate # Run migrations
npm run docker:seed # Seed database
npm run docker:studio # Open Prisma Studio
npm run docker:status # Show container status
npm run docker:restart # Restart containers
npm run docker:exec:app # Shell into app containerDokumentasi lengkap: NPM_SCRIPTS_DOCUMENTATION.md | DOCKER_SETUP.md
- Install dependencies:
npm install # atau yarn install - Setup database (lihat bagian "Database & Prisma" di bawah)
- Jalankan development server:
npm run dev # atau yarn dev - Buka http://localhost:3000 di browser.
Project ini menggunakan Prisma dengan provider MySQL. Pastikan MySQL berjalan dan environment variable DATABASE_URL tersedia.
Pilih salah satu:
-
Buat file
.envdi root project:DATABASE_URL="mysql://root:@localhost:3306/ecommerce_db_v1" NODE_ENV="development" BETTER_AUTH_SECRET="your-secret-min-32-chars-here" BETTER_AUTH_URL="http://localhost:3000"
-
Atau set sementara di Windows (cmd) sebelum menjalankan perintah:
set DATABASE_URL=mysql://root:@localhost:3306/ecommerce_db_v1
Catatan: Sesuaikan user/password/host/port/nama database dengan environment Anda. Jika perlu, buat database di MySQL: CREATE DATABASE ecommerce_db_v1;.
Berikut skrip npm untuk membantu proses Prisma:
npm run prisma:migrate:statusβ melihat status migrasi di DB targetnpm run prisma:migrate:devβ (development) membuat migrasi baru dari perubahan schema dan menerapkannyanpm run prisma:migrate:deployβ (deploy/production) menerapkan migrasi yang sudah ada tanpa membuat yang barunpm run prisma:generateβ generate Prisma Clientnpm run prisma:studioβ membuka Prisma Studio (GUI untuk data)npm run prisma:resetβ reset database (drop + apply semua migrasi) lalu menjalankan seed
Development (membuat & menerapkan migrasi baru jika ada perubahan pada prisma/schema.prisma):
npm run prisma:migrate:devDeploy/Production (hanya menerapkan migrasi yang sudah ada):
npm run prisma:migrate:deployLihat status migrasi:
npm run prisma:migrate:statusProject ini menyertakan prisma/seed.js:
npm run seedAtau reset DB bersih lalu seed ulang:
npm run prisma:resetnpm run prisma:studio- Missing
DATABASE_URL: pastikan.envatau sudahset DATABASE_URL=...di terminal yang sama. - Error koneksi (ECONNREFUSED/ER_ACCESS_DENIED_ERROR): cek host/port/user/password MySQL, dan pastikan database ada.
- Hak akses membuat skema/tabel: gunakan user MySQL dengan hak CREATE/ALTER/TABLE.
Error: Permission Denied (P1010, P3018)
Jika Anda mendapat error database permission:
Error: P1010 - User was denied access
Error: P3018 - ALTER command denied
Quick Fix:
# Grant permissions
npm run docker:grant
# Reset database
npx prisma migrate reset --force
# Restart containers
docker compose restartπ Panduan Lengkap: Lihat QUICK_FIX_DOCKER.md untuk troubleshooting lengkap.
Other Docker Issues:
- Container restart loop β Cek logs:
docker compose logs app - Database connection error β Verifikasi
.envconfiguration - Migration fails β Lihat PRISMA_SHADOW_DB_FIX.md
- Gunakan
npm run prisma:migrate:deploydi lingkungan production/CI. - Simpan environment variables melalui platform hosting (bukan file
.env). - Ganti
BETTER_AUTH_SECRETdengan nilai kuat dan rahasiakan.
src/app/- Routing & halaman utamasrc/components/- Komponen utama & UIsrc/data/- Data dummy produksrc/hooks/- Custom hookssrc/lib/- Utility functionsdocumentations/- Semua dokumentasi project
Semua dokumentasi project tersedia di folder documentations/
- Documentation Index - Katalog lengkap semua dokumentasi
- Docker Quick Start - Panduan cepat Docker setup
- Docker Setup Guide - Panduan lengkap Docker
- Feature Documentation - Dokumentasi fitur-fitur
- π³ Docker - Complete Docker documentation (10 files)
- π E-commerce Features - Product, cart, checkout docs
- π¬ Chat System - Chat and messaging documentation
- π Admin & Security - Admin panel and security docs
- π Analytics - Analytics and monitoring
- π§ Integration - OAuth, PayPal, SEO guides
- π§ͺ Testing - Test documentation and reports
- Semua tampilan default dark mode.
- Dokumentasi lengkap tersedia di folder
documentations/ - Untuk Docker setup, lihat DOCKER_QUICK_START.md
Project ini dibuat untuk kebutuhan demo dan pengembangan fitur e-commerce modern berbasis Next.js.