mirror of
https://github.com/nethunterzist/trendyol-analiz
synced 2026-07-01 09:27:03 +00:00
- FastAPI backend with Python - React + Vite admin panel - PostgreSQL database - Trendyol marketplace analytics - GitHub Actions CI/CD workflow Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
186 lines
5.1 KiB
Markdown
186 lines
5.1 KiB
Markdown
# Trendyol Product Dashboard
|
||
|
||
Trendyol e-ticaret platformu için kategori bazlı ürün analiz sistemi. 7 tab'lı interaktif dashboard, otomatik rapor oluşturma ve detaylı metrikler sunar.
|
||
|
||
## Özellikler
|
||
|
||
| Tab | Açıklama |
|
||
|-----|----------|
|
||
| **Genel Bakış** | KPI kartları, özet grafikler, temel metrikler |
|
||
| **Marka** | Marka analizi, pazar payı dağılımı |
|
||
| **Kategori** | Kategori bazlı ürün dağılımı |
|
||
| **Menşei** | Ülke bazlı ürün analizi |
|
||
| **Barkod** | Barkod veri analizi ve dağılımı |
|
||
| **Keyword Aracı** | Anahtar kelime trend analizi |
|
||
| **Ürün Bulma** | Gelişmiş ürün arama ve filtreleme |
|
||
|
||
## Teknoloji Stack
|
||
|
||
| Katman | Teknoloji |
|
||
|--------|-----------|
|
||
| **Frontend** | React 19.2.0, Vite 7.2.2, Tailwind CSS 4.1.17, Recharts 3.4.1 |
|
||
| **Backend** | FastAPI 0.104.1, SQLAlchemy 2.0.45, Uvicorn 0.24.0 |
|
||
| **Database** | SQLite |
|
||
| **HTTP Client** | Axios 1.13.2 |
|
||
|
||
## Hızlı Başlangıç
|
||
|
||
### Otomatik Başlatma (Önerilen)
|
||
|
||
```bash
|
||
python3 start.py
|
||
```
|
||
|
||
Bu script otomatik olarak:
|
||
- Dependency'leri kontrol eder
|
||
- Port çakışmalarını çözer
|
||
- Backend ve frontend'i başlatır
|
||
|
||
### Manuel Başlatma
|
||
|
||
**Terminal 1 - Backend:**
|
||
```bash
|
||
cd backend
|
||
pip install -r requirements.txt
|
||
python3 main.py
|
||
```
|
||
|
||
**Terminal 2 - Frontend:**
|
||
```bash
|
||
cd admin-panel
|
||
npm install
|
||
npm run dev
|
||
```
|
||
|
||
### Erişim URL'leri
|
||
|
||
- **Frontend:** http://localhost:5173
|
||
- **Backend API:** http://127.0.0.1:8001
|
||
- **API Docs:** http://127.0.0.1:8001/docs
|
||
|
||
## Proje Yapısı
|
||
|
||
```
|
||
product_Dashboard/
|
||
├── backend/ # FastAPI Backend
|
||
│ ├── main.py # Ana API (~4400 satır, 30+ endpoint)
|
||
│ ├── database.py # SQLAlchemy modelleri
|
||
│ ├── scraper.py # Trendyol veri çekme
|
||
│ └── requirements.txt # Python dependencies
|
||
│
|
||
├── admin-panel/ # React Frontend
|
||
│ └── src/
|
||
│ ├── components/
|
||
│ │ ├── CategoryManagement.jsx # Kategori yönetimi
|
||
│ │ ├── ReportGeneration.jsx # Rapor oluşturma
|
||
│ │ ├── ReportList.jsx # Rapor listesi
|
||
│ │ ├── ReportDashboard.jsx # 7-tab dashboard
|
||
│ │ └── dashboard-tabs/ # Tab componentleri
|
||
│ ├── config/api.js # API konfigürasyonu
|
||
│ └── constants/tabGroups.js # Tab yapılandırması
|
||
│
|
||
├── categories/ # Kategori JSON dosyaları (1842 adet)
|
||
├── reports/ # Oluşturulan raporlar
|
||
├── docs/ # Dokümantasyon
|
||
│ ├── ARCHITECTURE.md # Sistem mimarisi (Türkçe)
|
||
│ ├── API_DOCUMENTATION.md # API referansı
|
||
│ ├── SETUP_GUIDE.md # Kurulum kılavuzu
|
||
│ └── DASHBOARD_ARCHITECTURE.md # Dashboard geliştirme rehberi
|
||
│
|
||
├── start.py # Otomatik başlatma scripti
|
||
├── CLAUDE.md # Claude Code rehberi
|
||
└── README.md # Bu dosya
|
||
```
|
||
|
||
## Docker ile Çalıştırma
|
||
|
||
```bash
|
||
# Build
|
||
docker-compose build
|
||
|
||
# Başlat
|
||
docker-compose up -d
|
||
|
||
# Durdur
|
||
docker-compose down
|
||
```
|
||
|
||
**Docker Erişim:**
|
||
- Frontend: http://localhost:8080
|
||
- Backend: http://localhost:8001
|
||
|
||
## API Özeti
|
||
|
||
| Endpoint | Metod | Açıklama |
|
||
|----------|-------|----------|
|
||
| `/categories/main` | GET | Ana kategoriler |
|
||
| `/categories/{id}/subcategories` | GET | Alt kategoriler |
|
||
| `/api/reports` | GET | Rapor listesi |
|
||
| `/api/reports/create` | POST | Rapor oluştur |
|
||
| `/api/reports/progress/{task_id}` | GET | İlerleme durumu |
|
||
| `/api/dashboard/{report_id}` | GET | Dashboard verisi |
|
||
|
||
## Konfigürasyon
|
||
|
||
### API Timeout Değerleri
|
||
|
||
| Tip | Süre | Kullanım |
|
||
|-----|------|----------|
|
||
| STANDARD | 30s | Genel istekler |
|
||
| DASHBOARD | 180s | Dashboard yükleme |
|
||
| ENRICHMENT | 120s | Sosyal kanıt verisi |
|
||
| KEYWORD_ANALYSIS | 300s | Keyword analizi |
|
||
|
||
### Kaynak Limitleri
|
||
|
||
| Kaynak | Limit |
|
||
|--------|-------|
|
||
| Cache | 100 item, 1 saat TTL |
|
||
| Frontend pagination | 150 item/sayfa |
|
||
| Backend pagination | 200 item/sayfa |
|
||
| Rate limit | 2 istek/saniye |
|
||
|
||
## Sorun Giderme
|
||
|
||
### Port Çakışması
|
||
```bash
|
||
# Otomatik çözüm
|
||
python3 start.py
|
||
|
||
# Manuel çözüm
|
||
lsof -ti:8001 | xargs kill -9
|
||
lsof -ti:5173 | xargs kill -9
|
||
```
|
||
|
||
### CORS Hatası
|
||
`backend/main.py` dosyasında frontend portunu CORS listesine ekleyin:
|
||
```python
|
||
allow_origins=["http://localhost:5173", "http://localhost:5174", ...]
|
||
```
|
||
|
||
### Database Sıfırlama
|
||
```bash
|
||
cd backend
|
||
python3 -c "from database import init_db; init_db()"
|
||
```
|
||
|
||
## Dokümantasyon
|
||
|
||
| Dosya | Açıklama |
|
||
|-------|----------|
|
||
| [docs/ARCHITECTURE.md](./docs/ARCHITECTURE.md) | Sistem mimarisi (Türkçe) |
|
||
| [docs/API_DOCUMENTATION.md](./docs/API_DOCUMENTATION.md) | API referansı |
|
||
| [docs/SETUP_GUIDE.md](./docs/SETUP_GUIDE.md) | Kurulum kılavuzu |
|
||
| [docs/DASHBOARD_ARCHITECTURE.md](./docs/DASHBOARD_ARCHITECTURE.md) | Dashboard geliştirme |
|
||
| [CLAUDE.md](./CLAUDE.md) | Claude Code rehberi |
|
||
|
||
## Gereksinimler
|
||
|
||
- Python 3.8+
|
||
- Node.js 18+
|
||
- npm 9+
|
||
|
||
---
|
||
|
||
**Versiyon:** 2.1.0 | **Son Güncelleme:** Ocak 2025
|