Modern ve hızlı bir web paneli ile ürünlerinizi, stoklarınızı, satışlarınızı ve iadelerinizi yönetin. Dashboard üzerinden kritik stok seviyelerini, en çok satan ürünleri ve satış performansını anlık olarak takip edin.
Note
- 📦 Kapsamlı Ürün Yönetimi: Ürünleri fotoğraf, kategori, tedarikçi, alış fiyatı, satış fiyatı, sağlam/defolu stok adedi gibi zengin detaylarla yönetin.
- 🎨 Sınırsız Varyasyon: Projenize özel sınırsız sayıda Kategori, Renk ve Beden tanımlayın ve bunları ürünlerle ilişkilendirin.
- 📈 Akıllı Satış ve İade Takibi: Yapılan satışları ve iadeleri kaydederek stok durumunu anlık ve otomatik olarak güncelleyin.
- 📊 Gelişmiş Dashboard:
- Kritik Stok Uyarıları: Stoğu azalan ürünleri anında tespit edin.
- En Çok Satanlar: Performanslarına göre en popüler ürünleri ve kategorileri listeleyin.
- Finansal Analiz: Toplam satış geliri, iade maliyetleri ve potansiyel kâr gibi metrikleri izleyin.
- Görsel Raporlar: Satış trendleri, stok dağılımı gibi verileri interaktif grafiklerle analiz edin.
- 🔐 Güvenli Kimlik Doğrulama: Supabase Auth ile modern ve güvenli kullanıcı girişi. Rol tabanlı yetkilendirme ile yönetim paneline sadece adminler erişebilir.
- 🌙 Modern ve Duyarlı Arayüz: Kullanıcı tercihine göre Açık ve Koyu Tema desteği sunan, tüm cihazlarla uyumlu (responsive) minimalist tasarım.
Bu proje, modern web geliştirme standartlarına uygun, ölçeklenebilir ve bakımı kolay bir mimari üzerine inşa edilmiştir.
┌───────────────────┐ ┌─────────────────────────┐ ┌────────────────────────┐
│ İstemci (Browser) │ ────▶ │ Next.js (Web Sunucusu) │ ────▶│ Supabase (Backend) │
│ (React Components)│ │ (API Routes) │ │ (PostgreSQL DB) │
└───────────────────┘ └─────────────────────────┘ └────────────────────────┘
│ │ ▲
│ │ │
└──────────────────────────▼──────────────────────────┘
(SWR ile Veri Çekme ve Önbellekleme)
| Katman | Teknoloji | Açıklama |
|---|---|---|
| Framework | Next.js 13 | React tabanlı, sunucu taraflı render ve statik site oluşturma. |
| Dil | TypeScript | Büyük projelerde tip güvenliği ve daha kolay bakım sağlar. |
| Veritabanı & Backend | Supabase | PostgreSQL, Auth, Storage ve anlık API'ler sunan açık kaynaklı Firebase alternatifi. |
| Veri Çekme | SWR | Vercel tarafından geliştirilen, yeniden doğrulama stratejisine sahip data-fetching kütüphanesi. |
| Grafik & Raporlama | Recharts, ApexCharts | İnteraktif ve özelleştirilebilir grafik bileşenleri. |
| Form Yönetimi | React Hook Form | Performanslı ve esnek form doğrulama ve yönetimi. |
| UI & İkonlar | CSS Modules, Lucide | Bileşen bazlı stil yönetimi ve hafif, özelleştirilebilir ikonlar. |
git clone https://github.com/galile0ff/galileoff-StockControlPanel.git
cd galileoff-StockControlPanelImportant
Güvenlik nedeniyle veritabanı şema dosyaları (.sql) artık bu repoda bulunmamaktadır. Projeyi kurmak için gerekli olan en güncel .sql dosyalarını almak için lütfen Telegram üzerinden (@galileoff) benimle iletişime geçin.
Supabase projenizi kurduktan sonra Settings > API bölümünden ilgili anahtarları alın.
.env.local adında bir dosya oluşturun ve içeriğini kopyalayın.# Genel istemci tarafı erişim için
NEXT_PUBLIC_SUPABASE_URL=[SUPABASE_PROJE_URL'İNİZ]
NEXT_PUBLIC_SUPABASE_ANON_KEY=[SUPABASE_ANON_KEY'İNİZ]
# API rotalarında yönetici işlemleri (ürün ekleme, silme vb.) için
# Bu anahtarın dışarı sızdırılmamasına özellikle dikkat edin!
SUPABASE_SERVICE_ROLE_KEY=[SUPABASE_SERVICE_ROLE_KEY'İNİZ]Proje npm paket yöneticisini kullanmaktadır.
npm install
npm run devUygulama artık http://localhost:3000 adresinde çalışmaya hazır!
/
├── .gitignore
├── middleware.ts # Next.js middleware (örn: kimlik doğrulama yönlendirmeleri)
├── next-env.d.ts # Next.js için TypeScript tip tanımlamaları
├── package.json # Proje bağımlılıkları ve script'leri
├── README.md # Bu dosya
├── CONTRIBUTING.md # Projeye katkıda bulunma yönergeleri
├── supabase_schema.sql # Supabase veritabanı şeması, tablolar ve RLS politikaları
├── supabase_storage_policies.sql # Supabase depolama güvenlik kuralları
├── tsconfig.json # TypeScript derleyici ayarları
├── public/
│ └── assets/
│ └── logo.svg # Site logosu
└── src/
├── components/ # Tekrar kullanılabilir React bileşenleri (Formlar, Listeler vb.)
│ ├── CategoryForm.tsx
│ ├── Layout.tsx
│ ├── ProductForm.tsx
│ └── ...
├── context/ # React Context API sağlayıcıları (örn: Tema Yönetimi)
│ └── ThemeContext.tsx
├── lib/ # Yardımcı fonksiyonlar ve kütüphane ayarları
│ └── supabaseClient.ts # Supabase istemci bağlantı konfigürasyonu
├── pages/ # Uygulama sayfaları ve API rotaları
│ ├── _app.tsx # Global App bileşeni
│ ├── index.tsx # Ana Dashboard sayfası
│ ├── login.tsx # Giriş sayfası
│ ├── api/ # Backend API uç noktaları
│ │ ├── categories.ts
│ │ ├── products.ts
│ │ └── ...
│ └── manage/ # Ürün, kategori vb. yönetim sayfaları
│ ├── products.tsx
│ └── ...
└── styles/ # Global ve modüler CSS dosyaları
├── globals.css
└── Dashboard.module.css
| Metot | Endpoint | Açıklama |
|---|---|---|
GET, POST, PUT, DELETE |
/api/products |
Ürünleri ve ürün varyantlarını yönetir. |
GET, POST, PUT, DELETE |
/api/categories |
Kategorileri yönetir. |
GET, POST, PUT, DELETE |
/api/colors |
Renkleri yönetir. |
GET, POST, PUT, DELETE |
/api/sizes |
Bedenleri yönetir. |
GET, POST |
/api/sales |
Satış kayıtlarını listeler ve oluşturur. |
GET, POST |
/api/returns |
İade kayıtlarını listeler ve oluşturur. |
GET |
/api/dashboard-stats |
Dashboard için tüm istatistiksel verileri toplar. |
Yeni bir ürün ve varyantları oluşturur.
{
"name": "Yeni Sezon T-Shirt",
"code": "TSH-001",
"categoryId": "c5a6b7d8-e9f0-1234-5678-9abcdef01234",
"variants": [
{ "sizeId": "s1...", "colorId": "c1...", "stock": 10, "isDefective": 0 },
{ "sizeId": "s2...", "colorId": "c1...", "stock": 5, "isDefective": 1 }
]
}Mevcut bir ürünün bilgilerini veya varyantlarını günceller.
{
"productId": "p1...",
"name": "Güncellenmiş T-Shirt Adı",
"variantsToAdd": [
{ "sizeId": "s3...", "colorId": "c2...", "stock": 20, "isDefective": 0 }
],
"variantsToUpdate": [
{ "id": "pv1...", "stock": 8, "isDefective": 1 }
],
"variantsToDelete": [
"pv2..."
]
}Yeni bir satış kaydeder. Stoklar otomatik olarak düşülür.
{
"items": [
{ "variantId": "pv1...", "quantity": 2 },
{ "variantId": "pv2...", "quantity": 1 }
]
}Bir iade kaydeder. Stoklar otomatik olarak güncellenir.
{
"items": [
{ "variantId": "pv1...", "quantity": 1, "isDefective": true },
{ "variantId": "pv2...", "quantity": 1, "isDefective": false }
]
}Katkılarınız projeyi daha iyi hale getirecektir! Lütfen CONTRIBUTING.md dosyasını inceleyin.
- Bu repoyu fork'layın.
- Yeni bir özellik dalı oluşturun (
git checkout -b feature/yeni-ozellik). - Değişikliklerinizi commit'leyin (
git commit -m 'feat: Yeni bir özellik eklendi'). - Dalınızı push'layın (
git push origin feature/yeni-ozellik). - Bir Pull Request açın.
Bu proje işinize yaradıysa ve geliştirmemi desteklemek istiyorsanız, bana bir kahve ısmarlayabilirsiniz!

Bu proje MIT lisansı ile lisanslanmıştır.







