尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
Mesai sonrası (18:00–23:00) etkinlik keşif uygulaması: İstanbul, Ankara ve İzmir'deki konser, tiyatro, stand-up ve daha fazlası; harita + liste, kişisel uyum puanı, "Bu Akşamı Planla" ve "Sürpriz Yap". Stack: Next.js 16 (App Router) · React 19 · Tailwind 3 · Supabase (Postgres + Auth) · Leaflet · Puppeteer/Cheerio scraper'lar (GitHub Actions) Şema + RLS tek dosyada ve idempotent: supabase/migrations/20260928000000_schema_and_rls.sql. Supabase Dashboard > SQL Editor'da çalıştırın (mevcut veritabanında güvenle tekrar çalıştırılabilir).檢視完整 README ↗
Mesai sonrası (18:00–23:00) etkinlik keşif uygulaması: İstanbul, Ankara ve İzmir'deki konser, tiyatro, stand-up ve daha fazlası; harita + liste, kişisel uyum puanı, "Bu Akşamı Planla" ve "Sürpriz Yap".
Stack: Next.js 16 (App Router) · React 19 · Tailwind 3 · Supabase (Postgres + Auth) · Leaflet · Puppeteer/Cheerio scraper'lar (GitHub Actions)
npm install
cp env.example .env.local # değerleri doldurun
npm run dev
| Değişken | Nerede | Açıklama |
|---|---|---|
NEXT_PUBLIC_SUPABASE_URL / NEXT_PUBLIC_SUPABASE_ANON_KEY | public | Supabase > Project Settings > API |
NEXT_PUBLIC_SITE_URL | public | Canonical adres (paylaşım linkleri, sitemap, OG). Domain değişince sadece bunu güncelleyin |
NEXT_PUBLIC_DEMO_MODE | public | true ise prod'da DB boşken demo etkinlikler gösterilir |
SUPABASE_SERVICE_ROLE_KEY | sunucu | Admin proxy'si, form gönderimleri, hesap silme ve scraper'lar için. Asla NEXT_PUBLIC_ yapmayın |
ADMIN_PASSWORD | sunucu | /admin şifresi (≥12 karakter) |
ADMIN_SESSION_SECRET | sunucu | Admin cookie imzası (≥32 karakter) |
GEMINI_API_KEY | script | Opsiyonel, scripts/enrich_events.ts |
Şema + RLS tek dosyada ve idempotent: supabase/migrations/20260928000000_schema_and_rls.sql. Supabase Dashboard > SQL Editor'da çalıştırın (mevcut veritabanında güvenle tekrar çalıştırılabilir).
Güvenlik modeli:
lib/admin-db.ts istekleri /api/admin/sb/* proxy'sine yollar; proxy httpOnly admin cookie'sini doğrular ve service_role ile PostgREST'e iletir.venue_applications, event_suggestions) /api/submit üzerinden: doğrulama + honeypot + IP başına rate limit.npx tsx scripts/run_scrapers.ts # hepsi
npx tsx scripts/run_scrapers.ts bubilet # tek kaynak
.github/workflows/scrape_events.yml 6 saatte bir çalışır. Repo secrets: NEXT_PUBLIC_SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY. Çekilen etkinlikler is_approved=false ile admin onayına düşer.
| Yol | Açıklama |
|---|---|
/ | Harita + akış, keşif modları, filtreler (?event=ID ile etkinlik açılır) |
/etkinlik/[id] | SSR/ISR etkinlik sayfası, OG + JSON-LD (paylaşım ve SEO) |
/login, /reset-password | Giriş, kayıt (KVKK onaylı), şifre sıfırlama |
/profile, /onboarding, /calendar | Kullanıcı alanı (hesap silme dahil) |
/venue | Mekân sahibinin etkinlik önermesi |
/admin | Yönetim paneli (env şifresi) |
/kvkk | Aydınlatma metni — köşeli parantezli alanları doldurun |
NEXT_PUBLIC_SITE_URL, Redirect URLs'e <site>/reset-password ve <site>/onboarding ekleyin.NEXT_PUBLIC_SUPABASE_URL ve SUPABASE_SERVICE_ROLE_KEY ekleyin (scraper workflow).