"Bugün ne yesem?" sorusuna akıllı ve bilinçli cevap.
NeYesem, Getir Yemek ve Yemeksepeti'ndeki yemekleri tek ekranda karşılaştıran, sahte indirim tespiti yapan ve kullanıcıyı doğrudan partner uygulamaya yönlendiren bir karar destek platformudur. Uygulama sipariş alma, sepet veya ödeme yapmaz — tüm ticari işlemler partner uygulamalar üzerinden gerçekleşir.
Tam kurulum rehberi için → KURULUM.md
# 1) Veritabanı (PostgreSQL gerekli)
createdb -U postgres ne_yesem
psql -U postgres -d ne_yesem -f database/schema.sql
# 2) Örnek veri yükle
cd database; pip install -r requirements.txt
$env:DB_PASSWORD="<SIFRE>"; $env:PYTHONIOENCODING="utf-8"
python json_to_db.py --yemeksepeti ../backend/data/restaurants.json --sehir bursa
python json_to_db.py --folder ../backend/data/getir_output/output/bursa/getir_yemek --sehir bursa
cd ..
# 3) Backend (.env oluştur: USE_DB=true + DB_PASSWORD)
cd backend; npm install; npm start
# 4) Mobil uygulama (yeni terminal)
cd mobile; flutter pub get; flutter runDB olmadan da çalışır:
backend/.envdosyasındaUSE_DB=falseyapın — veribackend/data/klasöründeki JSON'lardan okunur.
| Özellik | Açıklama |
|---|---|
| 🔍 Ürün Arama | Türkçe karakter desteğiyle tüm platformlarda eş zamanlı arama |
| 💰 Fiyat Karşılaştırma | Aynı ürün için Getir & Yemeksepeti fiyatlarını yan yana listele |
| 🚨 Sahte İndirim Tespiti | Piyasa ortalamasıyla karşılaştırarak şüpheli indirimleri işaretle |
| 📍 Otomatik Konum | Sunucu taraflı IP tespiti → GPS ile ilçe refinement |
| 👤 Kullanıcı Profili | Alerjen takibi, diyet tercihi, kalori hedefi |
| 🔗 Deep Link | Partner uygulamayı tek dokunuşla aç |
project/
├── backend/ # Node.js + Express REST API
│ ├── src/app.js # Tek dosya API (endpoints, analiz, cache)
│ └── data/ # JSON veri dosyaları (DB olmadan kullanılır)
├── mobile/ # Flutter uygulaması (iOS & Android)
│ └── lib/main.dart # Tek dosya uygulama
├── database/ # PostgreSQL şema + veri yükleme scripti
├── data-pipeline/ # Yemeksepeti web scraper (Playwright)
├── ai-service/ # Öneri motoru (Python)
└── docs/ # SRS, tasarım ve kullanım kılavuzu
Backend http://localhost:3000 adresinde çalışır.
| Endpoint | Açıklama |
|---|---|
GET /api/health |
Sistem durumu ve yüklü veri özeti |
GET /api/cities |
Desteklenen şehirleri listele |
GET /api/districts?city=bursa |
Şehrin ilçelerini listele |
GET /api/geo-city |
Sunucu taraflı IP'den otomatik şehir/ilçe tespiti |
GET /api/deals?city=bursa |
En iyi fırsatları getir (sayfalı) |
GET /api/search?q=burger&city=bursa |
Ürün ara (sayfalı, skorlu) |
GET /api/compare?query=tavuk&city=bursa |
Platformlar arası fiyat karşılaştır |
GET /api/suspicious-discounts?city=bursa |
Şüpheli indirimler |
POST /api/auth/register |
Kayıt |
POST /api/auth/login |
Giriş |
GET /api/profile/:userId |
Profil getir |
PUT /api/profile/:userId |
Profil güncelle |
Ortak query parametreleri: city, district, page, limit, sort (price_asc / price_desc / discount), minPrice, maxPrice
| Katman | Teknoloji |
|---|---|
| Mobil | Flutter 3.22+ (iOS & Android) |
| Backend | Node.js 18+ + Express 5 |
| Veritabanı | PostgreSQL 14+ (opsiyonel — JSON fallback var) |
| Veri toplama | Python + Playwright (Yemeksepeti scraper) |
| Konum | ipapi.co + ipinfo.io + Geolocator + Geocoding |
| Alan | Üyeler |
|---|---|
| Frontend (Flutter) | Fatma Nur Yazıcı, Mualla Gülsüm Çapar |
| Backend (Node.js) | Efekan Aksoy, Okan Aydınhan, Edem Makhsudov |
| AI / Öneri | Abdullah Çelik, Ahmet Yılmaz |
| Veritabanı | Fuat Üzülmez, Abdullah Çelik, Edem Makhsudov |
- Metodoloji: Agile / Scrum (2 haftalık sprintler)
- Gereksinim: IEEE 830 uyumlu SRS v1.0
- Versiyon kontrolü: Feature Branch + Pull Request
- Test: Unit, Integration, kullanım senaryoları
backend/.envdosyası gitignore'dadır —.env.example'ı kopyalayıp düzenleyinbackend/data/users.jsonruntime'da otomatik oluşturulur- Büyük veri dosyaları (
restaurants.original.json, scraper çıktıları) gitignore'dadır - Uygulama sipariş almaz — yalnızca karşılaştırma ve yönlendirme yapar
NeYesem ile daha bilinçli ve ekonomik yemek kararları verin.