Website e-commerce untuk toko perlengkapan outdoor yang dibangun dengan Next.js 16, TypeScript, Prisma, dan Tailwind CSS.
- 🏠 Homepage - Hero section, kategori produk, dan produk unggulan
- 📦 Halaman Produk - Daftar produk dengan filter dan pencarian
- 🔍 Detail Produk - Informasi lengkap produk dengan gambar dan spesifikasi
- 🛒 Keranjang Belanja - Manajemen keranjang dengan update quantity
- 👤 Autentikasi - Login dan registrasi dengan NextAuth
- 📱 Responsive Design - Tampilan optimal di semua perangkat
- 🌙 Dark Mode - Dukungan tema gelap
- Node.js 18+
- PostgreSQL database
- npm atau yarn
- Clone repository atau buka folder project:
cd toko_outdoor- Install dependencies:
npm install- Setup environment variables:
Buat file
.envdi root project dengan isi:
DATABASE_URL="postgresql://user:password@localhost:5432/toko_outdoor?schema=public"
NEXTAUTH_URL="http://localhost:3000"
NEXTAUTH_SECRET="your-secret-key-here-change-this-in-production"- Setup database:
# Generate Prisma Client
npx prisma generate
# Jalankan migration
npx prisma migrate dev --name init
# (Opsional) Seed database dengan data contoh
# Install tsx jika belum: npm install -D tsx
# Kemudian jalankan: npm run db:seed
# atau: npx prisma db seed- Jalankan development server:
npm run dev- Buka http://localhost:3000 di browser
- Letakkan gambar produk di folder
public/products/ - Nama file harus sesuai dengan path yang ada di
src/lib/products.ts - Format gambar yang disarankan: JPG atau PNG
- Ukuran gambar yang disarankan: minimal 600x600px untuk kualitas yang baik
Contoh:
public/products/tenda-dome-4.jpgpublic/products/ransel-hiking-50l.jpgpublic/products/sleeping-bag-10c.jpg
Jika gambar belum tersedia, website akan menampilkan placeholder icon.
toko_outdoor/
├── prisma/
│ └── schema.prisma # Database schema
├── src/
│ ├── app/ # Next.js App Router
│ │ ├── api/ # API routes
│ │ ├── products/ # Halaman produk
│ │ ├── cart/ # Halaman keranjang
│ │ ├── categories/ # Halaman kategori
│ │ ├── login/ # Halaman login
│ │ └── page.tsx # Homepage
│ ├── components/ # Komponen React
│ │ └── Navigation.tsx # Komponen navigasi
│ ├── lib/ # Utilities
│ │ └── prisma.ts # Prisma client
│ └── types/ # TypeScript types
└── public/ # Static files
Project menggunakan Prisma dengan PostgreSQL. Schema mencakup:
- User - Data pengguna dan autentikasi
- Product - Data produk
- Category - Kategori produk
- CartItem - Item di keranjang
- Order - Data pesanan
- OrderItem - Item dalam pesanan
Untuk mengelola data, Anda dapat menggunakan Prisma Studio:
npx prisma studio- Next.js 16 - React framework
- TypeScript - Type safety
- Prisma - ORM untuk database
- NextAuth - Autentikasi
- Tailwind CSS - Styling
- Lucide React - Icons
- PostgreSQL - Database
npm run dev- Jalankan development servernpm run build- Build untuk productionnpm run start- Jalankan production servernpm run lint- Jalankan ESLint
Project menggunakan NextAuth dengan Prisma untuk autentikasi. Fitur:
- Login dengan email/password
- Registrasi user baru (dapat ditambahkan)
- Session management
- Role-based access (USER, ADMIN)
Setelah menjalankan seed script, akun default:
- Email:
admin@tokooutdoor.com/ Password:admin123(Admin) - Email:
user@example.com/ Password:user123(User)
- Edit warna tema di
src/app/globals.css - Update metadata di
src/app/layout.tsx - Tambah produk/kategori melalui Prisma Studio:
npx prisma studio
- Build project:
npm run build-
Deploy ke Vercel, Netlify, atau platform lainnya
-
Setup environment variables di platform deployment
-
Setup database (PostgreSQL) di cloud provider
Silakan buat issue atau pull request untuk kontribusi!
MIT License