Bir ürün linki yapıştırın, CrowGuard fiyatını, yorumlarını, iade riskini ve "şimdi al / bekle" tavsiyesini saniyeler içinde sunsun.
- Hakkında
- Öne Çıkan Özellikler
- Ekran Görüntüleri
- Mimari
- Teknoloji Yığını
- Canlı Servisler
- Hızlı Başlangıç
- Ortam Değişkenleri
- API Uçları
- Proje Yapısı
- Ekip
- Teşekkürler
- Lisans
CrowGuard, tüketicilerin alışveriş kararlarını veriye dayalı verebilmesi için tasarlanmış bir akıllı alışveriş asistanıdır. Kullanıcı bir ürün linki yapıştırır; platform ürünün fiyat geçmişini, kullanıcı yorumlarını, iade riskini ve mağazalar arası fiyat farklarını analiz ederek net bir tavsiye üretir.
"Bu ürünü şimdi mi almalıyım, biraz beklemeli miyim, yoksa daha iyi bir alternatif var mı?"
CrowGuard bu tek soruya cevap vermek için kuruldu.
Proje BTK Akademi Hackathon 2026 kapsamında geliştirildi.
| Özellik | Açıklama |
|---|---|
| 🔗 URL ile Analiz | Ürün linkini yapıştırın, fiyat–yorum–iade riski raporunu anında alın. |
| 📊 Mağaza Karşılaştırma | Aynı ürünün farklı mağazalardaki fiyatını ve puanını yan yana görün. |
| 🧠 Akıllı Asistan | "1500₺ altı düğün hediyesi" gibi doğal dil sorgularıyla ürün önerisi alın. |
| 📈 Fiyat Tavsiyesi | AL / BEKLE / ALTERNATİF sinyali ve fiyat trend grafiği. |
| 🛡️ İade Riski Skoru | Ürün özelliklerinden ve yorumlardan hesaplanan iade olasılığı. |
| 📜 Analiz Geçmişi | Kullanıcı son 20 analizini kayıt altında görür, dilediğinde siler. |
| 🔐 Güvenli Hesap Yönetimi | JWT tabanlı kimlik doğrulama, şifre sıfırlama, e-posta ile bağlantı. |
| ⚡ Akıllı Cache | Tekrar eden sorgular hızlandırılır, AI maliyeti optimize edilir. |
| 🎨 Modern Tasarım | Koyu/açık tema, mobil-uyumlu arayüz, erişilebilirlik öncelikli. |
┌────────────────────────────┐ ┌──────────────────────────────┐
│ Next.js 16 (App Router) │ HTTPS │ FastAPI Backend │
│ React 19 · Tailwind v4 │ ──────▶ │ REST API · JWT Auth │
│ TypeScript 5 │ ◀────── │ Rate Limiting · CORS │
└────────────┬───────────────┘ JSON └──────────────┬───────────────┘
│ │
│ ┌─────────────┴───────────────┐
▼ ▼ ▼
Vercel (Edge CDN) ┌──────────────────┐ ┌──────────────────┐
│ Gemini AI │ │ PostgreSQL │
│ (Google Cloud) │ │ (Render) │
└──────────────────┘ └──────────────────┘
│
▼
┌──────────────────┐
│ Resend │
│ (E-posta) │
└──────────────────┘
İstek akışı (ürün analizi):
- Kullanıcı dashboard üzerinden ürün linki girer.
- Frontend,
POST /analyze-productisteğiyle backend'e gönderir. - Backend cache'i kontrol eder; varsa anında döner.
- Yoksa mağaza API'sinden ürünü çeker, Gemini ile yorumları analiz eder, fiyat algoritması ile tavsiye üretir.
- Sonuç JSON olarak döner, PostgreSQL'e kaydedilir.
- Giriş yapan kullanıcının analiz geçmişine eklenir.
- Next.js 16 (App Router, Server Components)
- React 19 + TypeScript 5
- Tailwind CSS v4
- next/font (Manrope · DM Sans · Crimson Text)
- JWT tabanlı kimlik doğrulama (localStorage + cookie)
- Koyu/açık tema (
next-themes)
- FastAPI 0.136 + Uvicorn
- SQLAlchemy 2 ORM
- PostgreSQL 16 (üretim) · SQLite (geliştirme)
- Pydantic v2 — istek/yanıt doğrulama
- python-jose + passlib (bcrypt) — JWT ve şifre yönetimi
- slowapi — rate limiting
- httpx — async HTTP istekleri
- Google Gemini 2.0 Flash (
google-genaiSDK) — yorum analizi ve akıllı tavsiye üretimi
| Servis | Görev |
|---|---|
| Vercel | Frontend deploy + Edge CDN |
| Render | Backend host + PostgreSQL veritabanı |
| Resend | Transactional e-posta gönderimi (şifre sıfırlama) |
| Google Cloud | Gemini API |
| GitHub | Versiyon kontrolü ve CI |
| Ortam | URL |
|---|---|
| 🌐 Web Uygulaması | https://pitoresk.tech |
| 🛍️ Demo Mağaza · Shopgrill | https://shopgrill.store |
| 🛍️ Demo Mağaza · Carsila | https://carsila.store |
| ⚙️ Backend API | https://pitoresk.onrender.com |
| 📘 API Dokümantasyonu | https://pitoresk.onrender.com/docs |
| 💾 Repo | https://github.com/catgiller/CrowGuard |
CrowGuard'ın veri kaynağı, proje kapsamında geliştirilen iki bağımsız e-ticaret sitesidir: Shopgrill ve Carsila. Büyük e-ticaret platformlarının kapalı API'leri ve gelişmiş bot koruma sistemleri sebebiyle bu platformlar üzerinden güvenilir veri akışı kurulamadığı için, gerçek bir e-ticaret ekosistemini simüle eden iki demo mağaza sıfırdan inşa edildi. Her iki mağaza da CrowGuard'a açık REST API uçları sunar:
- Ürün bilgisi: isim, açıklama, marka, kategori, fiyat, stok, görseller
- Kullanıcı yorumları ve puanlar
- Fiyat geçmişi (zaman serisi verisi)
- Mağaza-spesifik fiyatlandırma (aynı ürünün her mağazada farklı fiyatı)
Bu yapı sayesinde uygulama, fiyat karşılaştırma ve geçmiş analizi gibi tüm özellikleri uçtan uca çalışır şekilde sunabiliyor. Mimari, ileride bir partner platform API erişimi sağlandığında veri kaynağını değiştirmeye uygun biçimde tasarlandı.
- Python 3.11+
- Node.js 20+
- Google AI Studio üzerinden bir Gemini API anahtarı
- (Opsiyonel) Resend hesabı — e-posta için
- (Opsiyonel) PostgreSQL — üretim için (yoksa SQLite kullanılır)
git clone https://github.com/catgiller/CrowGuard.git
cd CrowGuardpython -m venv venv
source venv/bin/activate # Windows: .\venv\Scripts\activate
pip install -r requirements.txt
cd backend
cp .env.example .env # değişkenleri doldurun
uvicorn main:app --reloadBackend http://localhost:8000 adresinde çalışacaktır.
cd frontend
npm install
echo "NEXT_PUBLIC_API_URL=http://localhost:8000" > .env.local
npm run devFrontend http://localhost:3000 adresinde çalışacaktır.
./start.sh# AI
GEMINI_API_KEY=your_google_ai_studio_key
# Auth
JWT_SECRET=please-change-me
JWT_ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=60
# Veritabanı (geliştirme için SQLite)
DATABASE_URL=sqlite:///./crowguard.db
# Üretim örneği:
# DATABASE_URL=postgresql+psycopg2://user:pass@host:5432/crowguard
# E-posta (opsiyonel — şifre sıfırlama için)
RESEND_API_KEY=re_xxx
# Frontend URL (e-posta linkleri için)
FRONTEND_URL=https://pitoresk.techNEXT_PUBLIC_API_URL=http://localhost:8000🔓 Açık endpoint (auth gerekmez) · 🔒 Korumalı endpoint (giriş gerekir) · 🔑 Opsiyonel (giriş varsa kullanıcıya bağlanır)
| Yöntem | Yol | Açıklama | Erişim |
|---|---|---|---|
GET |
/ |
Sağlık + sürüm bilgisi | 🔓 |
GET |
/health |
Health check | 🔓 |
POST |
/auth/register |
Kullanıcı kaydı | 🔓 |
POST |
/auth/login |
Giriş (JWT döner) | 🔓 |
GET |
/auth/me |
Mevcut kullanıcı bilgisi | 🔒 |
POST |
/auth/forgot-password |
Şifre sıfırlama linki gönderir | 🔓 |
POST |
/auth/reset-password |
Yeni şifre belirler | 🔓 |
POST |
/auth/change-password |
Mevcut şifreyi değiştirir | 🔒 |
DELETE |
/auth/account |
Hesabı siler | 🔒 |
POST |
/analyze-product |
Ürün URL analizi | 🔑 |
POST |
/compare |
İki mağaza arası karşılaştırma | 🔑 |
POST |
/smart-advisor |
Niyet + bütçe ile öneri | 🔑 |
GET |
/history |
Son 20 analiz | 🔒 |
DELETE |
/history/{id} |
Analiz kaydını siler | 🔒 |
POST |
/likes/* |
Beğeni işlemleri | 🔒 |
İnteraktif Swagger UI: pitoresk.onrender.com/docs
Örnek istek:
curl -X POST https://pitoresk.onrender.com/analyze-product \
-H "Content-Type: application/json" \
-d '{"url":"https://shopgrill.store/products/example-product"}'CrowGuard/
├── backend/
│ ├── main.py # FastAPI app, CORS, router'lar
│ ├── database.py # SQLAlchemy engine + Base
│ ├── auth/ # JWT, şifre hash, dependencies
│ ├── routes/ # analysis · advisor · auth · likes · compare
│ ├── services/ # gemini · price · cache · compare · store_search
│ ├── agents/ # advisor_agent
│ ├── models/ # Pydantic + SQLAlchemy modelleri
│ └── test_main.py
│
├── frontend/
│ ├── app/ # Next.js App Router
│ │ ├── page.tsx # Ana sayfa
│ │ ├── login/ # Giriş + kayıt
│ │ ├── forgot-password/ # Şifre sıfırlama isteği
│ │ ├── reset-password/ # Yeni şifre belirleme
│ │ ├── about · faq · pricing · privacy · terms · contact
│ │ └── dashboard/
│ │ ├── product-analysis/
│ │ ├── smart-advisor/
│ │ ├── history/
│ │ └── profile/
│ ├── components/ # marketing-nav · brand-logo · advisor-recommendations…
│ ├── contexts/ # dashboard-context (auth state)
│ ├── lib/ # api · auth · analysis · advisor
│ └── public/ # logo.png
│
├── requirements.txt
├── start.sh
└── README.md
- Ervanur Şahin — Backend & DevOps
- Nazife Atlas — Frontend & Tasarım
- BTK Akademi — Hackathon ev sahipliği için
- Google Cloud — Gemini API ve sponsorluk için
- Vercel — Frontend hosting için
- Render — Backend ve veritabanı hosting için
- Resend — E-posta altyapısı için
Bu proje şu an için özel/proprietary olarak yayınlanmıştır. Açık kaynak lisansı belirleninceye kadar kod yalnızca proje sahiplerinin izniyle kullanılabilir.
CrowGuard · Made with 🦅 in Türkiye


