E-Commerce Platform
Mini E-Ticaret Projesi YZL321 Web Programlama
Mini E-Ticaret Projesi YZL321 Web Programlama
Next.js ve modern web teknolojilerini öğrenmek ve uygulamak amacıyla geliştirdiğim aynı zamanda YZL321 dersi kapsamındaki proje ödevim yerine geçmesi amacıyla geliştirdiğim, hem müşteriler hem de yöneticiler için pratik özellikleri barındıran işlevsel bir e-ticaret projesi.
Bu proje, modern bir e-ticaret sitesinin nasıl çalıştığını baştan sona uygulamalı olarak öğrenmek için geliştirdiğim bir çalışmadır. Ön yüzde sade, anlaşılır ve temiz bir tasarım elde etmeye çalıştım.
Arka planda ise; ürünleri, sepeti, sipariş takibini ve stok durumlarını (örneğin bir sipariş iptal edildiğinde stoğun otomatik geri gelmesi gibi) yönetebilen çalışan bir sistem kurdum. Bunu yaparken Next.js, Prisma ve PostgreSQL gibi güncel teknolojileri kullandım.
Kodu incelerken başka öğrenci arkadaşların veya projeyi inceleyenlerin karmaşıklık yaşamaması için kodların kritik noktalarına tamamen Türkçe olan, neyi neden yaptığımı açıklayan yorum satırları ekledim.
Proje, günümüzün en iyi pratikleri (Best Practices) kabul edilen modern teknolojiler üzerinde çalışmaktadır:
| Kategori | Teknoloji | Açıklama |
|---|---|---|
| Framework | Next.js 15 (App Router) | React tabanlı full-stack framework. Server Components ile yüksek performans. |
| Veritabanı | PostgreSQL | Güçlü ve ilişkisel veritabanı altyapısı (Supabase / Neon vb. ile uyumlu). |
| ORM / Veri Erişimi | Prisma | Tip-güvenli (Type-safe) veritabanı sorguları ve şema yönetimi. |
| Tasarım / Stil | Tailwind CSS | Utility-first yaklaşım, özelleştirilmiş tasarım token'ları ve responsive yapı. |
| E-Posta Servisi | Resend | Sipariş onay, kargo, iade ve şifre sıfırlama mailleri için entegre API. |
| Kimlik Doğrulama | Custom Auth | bcryptjs + jose tabanlı JWT sistemi & Google OAuth entegrasyonu. |
Kendinize ait bir kopyasını çalıştırmak oldukça basittir.
git clone https://github.com/aliakpoyraz/mini-e-ticaret.git
cd mini-e-ticaret
npm install
Kök dizinde .env isimli bir dosya oluşturun ve aşağıdaki değişkenleri kendi bilgilerinizle doldurun:
# Veritabanı Bağlantısı
DATABASE_URL="postgresql://kullanici:sifre@localhost:5432/eticaretdb"
# Güvenlik & Oturum
JWT_SECRET="cok_gizli_bir_anahtar_belirleyin"
# Bildirimler (Resend)
RESEND_API_KEY="re_..."
# Google OAuth (Opsiyonel)
GOOGLE_CLIENT_ID="izin.apps.googleusercontent.com"
GOOGLE_CLIENT_SECRET="gizli_anahtar"
# Uygulama URL'i
NEXT_PUBLIC_APP_URL="http://localhost:3000"
Veritabanı şemasını oluşturmak ve Prisma Client'ı oluşturmak için aşağıdaki komutları sırasıyla çalıştırın:
npx prisma generate
npx prisma db push
npm run dev
Uygulamanız başarıyla başlatıldığında tarayıcınızdan http://localhost:3000 adresine giderek siteyi görüntüleyebilirsiniz.
Admin Girişi (Varsayılan):
Hazırlanan ilk başlatma mekanizması ile giriş ekranından admin@store.com / admin123 bilgileriyle oturum açarak tüm yönetim paneline erişebilirsiniz.
CREATED (Oluşturuldu), Kredi Kartlı siparişler PAID (Ödendi) statüsü ile başlar.CANCELLED (İptal) veya ürün geri geldiğinde RETURNED (İade Edildi) statüsüne geçildiğinde; o siparişteki tüm stoklar milisaniyeler içinde sisteme otomatik olarak geri işlenir.Bu proje geliştirilmeye açık ve portfolyo amaçlı sunulmuştur.
Sevgi ve tasarım odaklı geliştirildi ❤️