mirror of
https://github.com/nethunterzist/trendyol-analiz
synced 2026-07-01 09:27:03 +00:00
Ne yaptık: - "Tümünü Seç" artık arama filtresi aktifken bile tüm alt kategorileri seçiyor - Tüm alt kategoriler seçiliyse subcategory_ids gönderilmiyor (backend zaten tümünü tarıyor) - URL uzunluk limitine takılma riski ortadan kalktı - Label'a seçili/toplam sayacı eklendi (ör: 45/105) Neden yaptık: - Kozmetik gibi 105 alt kategorili ana kategoride "Tümünü Seç" sadece filtrelenmiş kategorileri seçiyordu, bu yüzden raporda 1 kategori (~100 ürün) taranıyordu. Şimdi 105 kategori (~10.500 ürün) taranacak. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Trendyol Analytics Dashboard - Admin Panel
React-based admin panel for Trendyol product analytics and reporting.
Features
- 📁 Category Management: Browse main categories and subcategories
- 📈 Report Generation: Create reports from selected categories with progress tracking
- 📊 Report Dashboard: Comprehensive analytics with 15 tabs in 4 groups
- 💰 Price Analysis: Multi-range price distribution and trends
- ⭐ Rating & Quality: Review scores and quality metrics
- 🏪 Merchant Analysis: Seller statistics and market insights
- 📣 Social Proof: Views, orders, and engagement metrics
Tech Stack
- React 19.2.0 - UI library
- Vite 7.2.2 - Build tool and dev server
- React Router 7.9.5 - Client-side routing
- Recharts 3.4.1 - Data visualization
- Tailwind CSS 4.1.17 - Utility-first styling
Project Structure
admin-panel/
├── src/
│ ├── components/
│ │ ├── CategoryManagement.jsx # Browse categories
│ │ ├── ReportGeneration.jsx # Create reports
│ │ ├── ReportList.jsx # List all reports
│ │ └── ReportDashboard.jsx # Analytics dashboard
│ ├── config/
│ │ └── api.js # API configuration & utilities
│ ├── constants/
│ │ ├── tabGroups.js # Dashboard tab configuration
│ │ └── categories.js # Category icons & colors
│ ├── App.jsx # Main routing component
│ ├── main.jsx # Entry point
│ └── index.css # Global Tailwind styles
├── public/
├── index.html
├── package.json
├── vite.config.js
└── .env # Environment variables
Getting Started
Prerequisites
- Node.js 18+ and npm
- Backend API running on port 8001
Installation
npm install
Environment Setup
Create .env file:
VITE_API_URL=http://127.0.0.1:8001
Development
npm run dev
Opens at http://localhost:5173
Build for Production
npm run build
Output in dist/ directory.
Lint
npm run lint
API Integration
The admin panel communicates with FastAPI backend on port 8001.
Key Endpoints:
GET /categories/main- Fetch main categoriesPOST /api/reports/create- Create new reportGET /api/reports/{id}/dashboard-data- Dashboard KPIs & chartsGET /api/reports/{id}/reviews-summary- Review analysisGET /api/reports/{id}/social-proof- Social metrics
Timeout Configuration:
- Standard requests: 30 seconds
- Dashboard initial load: 3 minutes
- Enrichment data: 2 minutes
See src/config/api.js for full configuration.
Features Detail
Category Management
Browse Trendyol's category hierarchy:
- Main categories with icons and colors
- Subcategory exploration
- Direct links to Trendyol website
Report Generation
Create comprehensive product reports:
- Select category
- Background scraping with progress tracking
- Exponential backoff polling (75% request reduction)
- Custom report naming
Report Dashboard
15-tab analytics dashboard:
📊 Overview Group:
- General Overview
- Price Analysis
- Rating & Quality
🏪 Market Group:
- Merchant Analysis
- Barcode/Origin
- Country of Origin
👥 Engagement Group:
- Reviews Analysis
- Social Proof Metrics
🔬 Advanced Group:
- Advanced Analytics
Performance Optimizations
- ✅ 65% bundle size reduction (500KB → 175KB) via lazy loading
- ✅ 75% fewer API requests via exponential backoff
- ✅ Memory leak prevention via proper cleanup
- ✅ Race condition prevention via request deduplication
- ✅ Timeout protection on all API calls
Browser Support
- Chrome/Edge (latest)
- Firefox (latest)
- Safari (latest)
Contributing
This is a private analytics tool for Trendyol product research.
License
Proprietary - Internal Use Only