Computer Depot, ikinci el teknoloji ekipmanları için geliştirilmiş modern bir e-ticaret platformudur. Kullanıcılar ürün satabilir, satın alabilir, yorum yapabilir ve favori ürünlerini kaydedebilir.
- Kullanıcı Yönetimi: Email/şifre ve Google OAuth ile giriş
- Ürün Yönetimi: Ürün ekleme, düzenleme, silme ve listeleme
- Kategori Sistemi: Ürünleri kategorilere göre organize etme
- Alışveriş Sepeti: Ürünleri sepete ekleme ve satın alma
- Favoriler: Beğenilen ürünleri kaydetme
- Yorum Sistemi: Ürünlere yorum yapma, yanıt verme ve beğenme
- Filtreleme ve Arama: Kategori, fiyat, tarih ve metin bazlı arama
- Satış Geçmişi: Alış ve satış işlemlerini takip etme
- Admin Paneli: Kullanıcı, ürün ve kategori yönetimi
- Profil Yönetimi: Kullanıcı profil bilgilerini düzenleme
- Framework: Next.js 14 (Pages Router)
- Dil: TypeScript
- Veritabanı: MySQL (Prisma ORM)
- Kimlik Doğrulama: NextAuth.js
- Stil: Tailwind CSS
- Görsel Yükleme: Cloudinary
- UI Kütüphaneleri:
- Headless UI
- Heroicons
- Framer Motion
- Lucide React
- Node.js 18+
- MySQL 8.0+
- npm, yarn, pnpm veya bun
-
Projeyi klonlayın
git clone https://github.com/yourusername/computer-depot.git cd computer-depot -
Bağımlılıkları yükleyin
npm install # veya yarn install # veya pnpm install
-
Ortam değişkenlerini ayarlayın
.env.exampledosyasını.envolarak kopyalayın ve gerekli değerleri doldurun:cp .env.example .env
.envdosyasında şu değişkenleri ayarlayın:DATABASE_URL: MySQL veritabanı bağlantı string'iNEXTAUTH_SECRET: NextAuth için gizli anahtar (oluşturmak için:openssl rand -base64 32)NEXTAUTH_URL: Uygulamanın URL'i (geliştirme için:http://localhost:3000)GOOGLE_CLIENT_IDveGOOGLE_CLIENT_SECRET: Google OAuth için (opsiyonel)- Cloudinary bilgileri: Görsel yükleme için
-
Veritabanını hazırlayın
npx prisma migrate dev npx prisma generate
-
Geliştirme sunucusunu başlatın
npm run dev # veya yarn dev # veya pnpm dev
-
Tarayıcınızda http://localhost:3000 adresini açın
myapp/
├── prisma/ # Prisma şema ve migration dosyaları
├── public/ # Statik dosyalar (görseller, ikonlar)
├── src/
│ ├── components/ # React bileşenleri
│ ├── functions/ # Yardımcı fonksiyonlar
│ ├── lib/ # Kütüphane konfigürasyonları (auth, db, cloudinary)
│ ├── pages/ # Next.js sayfaları ve API route'ları
│ │ ├── api/ # API endpoint'leri
│ │ ├── admin/ # Admin panel sayfaları
│ │ ├── Authentication/ # Giriş/kayıt sayfaları
│ │ ├── buying/ # Alışveriş sayfaları
│ │ └── selling/ # Satış sayfaları
│ ├── styles/ # Global CSS dosyaları
│ ├── types/ # TypeScript tip tanımlamaları
│ └── utils/ # Yardımcı fonksiyonlar
├── .env.example # Ortam değişkenleri şablonu
└── package.json # Proje bağımlılıkları
Gerekli ortam değişkenleri için .env.example dosyasına bakın. Aşağıdaki değişkenler zorunludur:
DATABASE_URL: MySQL veritabanı bağlantı string'iNEXTAUTH_SECRET: NextAuth için gizli anahtarNEXTAUTH_URL: Uygulama URL'i
Opsiyonel değişkenler:
GOOGLE_CLIENT_ID/GOOGLE_CLIENT_SECRET: Google OAuth için- Cloudinary değişkenleri: Görsel yükleme için
Proje aşağıdaki ana modelleri içerir:
- User: Kullanıcı bilgileri ve rolleri
- Product: Ürün bilgileri
- Category: Ürün kategorileri
- Cart: Alışveriş sepeti
- TradeHistory: Satış geçmişi
- Comment: Ürün yorumları
- Reply: Yorum yanıtları
- Like: Yorum beğenileri
- Favorite: Favori ürünler
Detaylı şema için prisma/schema.prisma dosyasına bakın.
Production için build almak:
npm run build
npm startKatkılarınızı bekliyoruz! Lütfen şu adımları izleyin:
- Bu repository'yi fork edin
- Feature branch oluşturun (
git checkout -b feature/amazing-feature) - Değişikliklerinizi commit edin (
git commit -m 'Add some amazing feature') - Branch'inizi push edin (
git push origin feature/amazing-feature) - Bir Pull Request oluşturun
Bu proje MIT License altında lisanslanmıştır.
- Next.js ekibine
- Prisma ekibine
- NextAuth.js ekibine
- Tüm açık kaynak topluluğuna
Sorularınız veya önerileriniz için issue açabilirsiniz.
⭐ Bu projeyi beğendiyseniz yıldız vermeyi unutmayın!