尚未检测到更新。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).