Sunoa, lüks ama ulaşılabilir güneş kremi ürünlerini tanıtmak ve satmak amacıyla geliştirilmiş modern bir e-ticaret platformudur. Next.js App Router altyapısı ve statik site üretimi (SSG) ile yüksek performanslı, SEO dostu ve CDN uyumlu bir deneyim sunar.
| Teknoloji | Sürüm |
|---|---|
| Next.js | 15.2.1 |
| React | 19.0.0 |
| TypeScript | 5.x |
| Tailwind CSS | 3.3.0 |
| PostCSS | 8.4.31 |
Proje JAMstack yaklaşımıyla geliştirilmiş olup, bileşen bazlı yapı şu şekilde düzenlenmiştir:
- Veri Katmanı →
src/lib/products.ts - Sayfalar →
src/app/klasörü içinde yer alır - Alışveriş Sepeti →
src/lib/cartContext.tsx(React Context ile) - Arayüz Bileşenleri →
src/components/
getFeaturedProducts()– Öne çıkan ürünlergetNewArrivals()– Yeni eklenen ürünlergetProductsByCategory()– Kategoriye göre filtrelemegetProductById()– Ürün detayı
- Global state
- Local storage entegrasyonu
addToCart(),removeFromCart(),useCart()
- Node.js (v18+)
- npm (v9+)
git clone https://github.com/kullaniciadi/sunoa.git
cd sunoa
npm install --legacy-peer-depsnpm run devTarayıcıda: http://localhost:3000
npm run buildnpx serve outsunoa/
├── public/ # Statik varlıklar
├── src/
│ ├── app/ # Sayfalar (App Router)
│ ├── components/ # UI bileşenleri
│ ├── lib/ # Veri ve state yönetimi
│ └── types/ # TS tipleri
├── package.json
├── next.config.js
└── README.md
| Sorun | Çözüm |
|---|---|
| Bağımlılık hatası | npm install --legacy-peer-deps |
| Build hatası | next.config.js → typescript.ignoreBuildErrors = true, eslint.ignoreDuringBuilds = true |
| Görsel yüklenmiyor | images.unoptimized = true |
Bu proje öğrenim amaçlı geliştirilmiştir. PR ve önerilere açıktır. 🧑💻
MIT License © 2025 Musa Emir Doğan