尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Discover hackathons across Europe
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
FindHackEU is an independent, open-source directory of hackathons across Europe, maintained by Gabriele Viganò. A scheduled pipeline pulls event listings from Luma, Devfolio, MLH, ETHGlobal, Eventbrite, and Devpost; normalizes and deduplicates them across sources; enriches location data with geocoding; and publishes the result as a searchable, mappable website and a public JSON API — all built and run in the open. • What you can use • Run locally • Project map • Useful commands • Origin and stewardship檢視完整 README ↗
FindHackEU is an independent, open-source directory of hackathons across Europe, maintained by Gabriele Viganò. A scheduled pipeline pulls event listings from Luma, Devfolio, MLH, ETHGlobal, Eventbrite, and Devpost; normalizes and deduplicates them across sources; enriches location data with geocoding; and publishes the result as a searchable, mappable website and a public JSON API — all built and run in the open.
GET /api/hackathons returns approved, non-archived events as JSON, with optional status, cursor, and limit parameters.Discord/Telegram/Twitter notification bots exist in the codebase but are currently unconfigured and inactive in production.
Prerequisites: a current Node.js installation and Docker (for local Supabase).
git clone https://github.com/viganogabriele/FindHackEU.git
cd FindHackEU
npm install
cp .env.example .env.local
npx supabase start
supabase start boots a local Postgres/Studio stack, applies the repository's migrations, and loads supabase/seed.sql — a small set of realistic, clearly-fake sample hackathons and moderation-queue candidates, so the site and /admin have something to look at immediately with zero API keys configured. Copy the API URL, anon key, and service-role key it prints into .env.local as NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY, and SUPABASE_SERVICE_ROLE_KEY, set CRON_SECRET to any value you choose, then start the app:
npm run dev
The local /admin moderation dashboard needs no Google OAuth setup by default: leave GOOGLE_CLIENT_ID and ADMIN_ALLOWED_EMAIL unset and it falls back to an open local-dev bypass. That bypass only ever activates outside production — see lib/services/require-admin-auth.ts and docs/admin-auth-setup.md if you want real sign-in locally too.
To actually populate data, trigger the discovery pipeline against your local Supabase instance with npm run trigger-update (see .env.example for the optional geocoding/search API keys that unlock location enrichment and web-search discovery).
app/ — App Router pages and API routes, including the public listing UI and /admin moderation dashboard.lib/parsers/ — one module per event source (Luma, Devfolio, MLH, ETHGlobal, Eventbrite, Devpost), each implementing a shared Provider contract.lib/dedup/ — URL normalization and fuzzy title/date matching used to merge duplicate listings across sources.lib/discovery/ and lib/search/ — the moderated web-search discovery pipeline, kept structurally separate from the provider parsers above.lib/services/ — ingestion orchestration, geocoding, persistence, and moderation logic.supabase/migrations/ — the full database schema, checked in so a local instance matches production exactly.Every stage of the ingestion pipeline reports its own status independently, so one source failing (a site redesign, a rate limit) never blocks the others from completing. Web-search-derived candidates stay entirely separate from the published dataset until a maintainer explicitly approves them — there is no path from a raw search result to a live listing that skips human review.
| Command | Purpose |
|---|---|
npm run dev | Start the development server. |
npm run lint | Run ESLint. |
npm run test | Run the Vitest test suite. |
npx tsc --noEmit | Type-check the project. |
npm run build | Build for production. |
npm run trigger-update | Run the discovery pipeline against your local Supabase instance. |
For architecture and environment details, see CLAUDE.md, AGENTS.md, and .env.example. Product and API documentation lives at /docs on the running site. To deploy your own instance to Vercel + Supabase, see docs/production-deployment.md.
FindHackEU acknowledges HackTrack EU, created by Lorenzo Palaia, as its original inspiration and starting point. It is now independently developed and operated, with its own architecture, infrastructure, issue tracker, and roadmap. Since that split, the project's focus has been on making European hackathon discovery substantially broader and more reliable: more sources, honest per-source status reporting, cross-source deduplication, and a moderation queue that keeps low-confidence results out of the public dataset.
Released under the MIT License. File bugs and proposals on the GitHub issue tracker. For anything else, reach Gabriele directly at [email protected].