尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Find the people you should meet at DevFest Ilorin. Sign in with Google, get matched, swap contacts when you both say yes.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Networking for DevFest & GDG events.
Organisers create a space for their DevFest or GDG event. Attendees join it with a link or code, check in at the venue, and swipe through the people who are there (mentors, learners, people hiring, future co-founders). When two people both tap Meet, they can chat, find each other, and both tap We met.
Ayo, the buddy, guides people through a 7-step, Duolingo-style onboarding, suggests matches, and reacts as you go.
Everything is built from five primitives. A new feature should be one of these, or read them back; it shouldn't add a second way to do the same thing.
| Primitive | Stored as | Rule |
|---|---|---|
| Person | profiles | One badge, reused at every event. |
| Here | event_members.checked_in_at | For now, joining an event is enough (CHECKIN_REQUIRED is off). With CHECKIN_REQUIRED=1: set by scanning the event's check-in code (/e/<slug>/checkin?k=…), shown only at the venue; lasts for that day (Lagos time), and only on the event's date when it has one. |
| Want to meet | a pending row in connection_requests | One-way and private: never shown or sent to the person it's about. |
| Connection | the same row, accepted | Both want to meet. The only moment anyone is told. Unlocks chat and contact details. |
| Met | a meetings row from each person for the same event | Each taps We met; it counts once both have, at an event both are here at that day. |
The deck's Pass (passes) only hides someone from your deck at that event. "Your people here" is Here plus Connection: nothing extra is stored.
The one number: of the matches made at an event, how many became meetings.
/events/new, anyone else sees an application form (chapter name, their chapter's page on gdg.community.dev, city). A platform admin reviews it at /admin./discover.CHECKIN_REQUIRED=1): a second QR, for the venue only (posters, the welcome screen: "Show on screen" opens /e/<slug>/screen?show=checkin). Scanning it is what makes someone here, and only people who are here show up in the deck. "Make a new code" stops the old one working./e/<slug>/manage: the funnel (joined, here, swiped, matched, met), reports, members with when they checked in and how many people they've met, filterable to who's here./c/<slug> with their upcoming events, listed in the sitemap./admin, paste one community per line: name, type, city, country, link (commas or tabs, straight from a spreadsheet). Re-importing updates instead of duplicating. Template: docs/communities-template.csv.robots.txt disallows /api/ for crawlers.ADMIN_EMAILS (comma-separated Google emails) in the environment. Nobody can make themselves an admin from inside the app./admin: approve or decline organiser applications, add an organiser by email, or revoke someone's right to create new events (their existing events stay)./discover, add every city you go to events in. "Find events" lists upcoming listed events in all of them. Anyone can search /discover?city=Lagos without signing in.cp .env.example .env.local # set DATABASE_URL to a Postgres database
npm install
npm run migrate
npm run seed:demo # optional: a demo event (/e/demo-devfest, code DEMO26) with 8 made-up attendees, all checked in
npm run dev
Without Google keys you can still test locally: set ALLOW_DEV_LOGIN=1 in .env.local and a "sign in as test attendee" form appears for @example.test emails. It only works under next dev; production builds return 404 for it. See docs/TESTING.md.
openid, email and profile, and publish the app so anyone can sign in.https://your-domainhttps://your-domain/api/auth/google/callbackhttp://localhost:3000 and http://localhost:3000/api/auth/google/callback (use your port).GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET and APP_URL in Vercel → Settings → Environment Variables (and in .env.local for local).DATABASE_URL / DATABASE_URL_UNPOOLED.ADMIN_EMAILS with the Google email(s) of whoever approves organisers.prebuild runs the migration on every deploy./privacy, /terms and /guidelines are public and linked from the landing page, sign-in and My badge. The facts they quote (operator, contact email, last-updated date) live in src/lib/legal.ts. When a feature changes what is stored or who can see it, update the privacy page in the same change. Add the privacy and terms URLs to the Google OAuth consent screen.
Next.js 16 (App Router, Server Actions, proxy.ts), Postgres via pg, zod, Motion, qrcode. Google Sans / Google Sans Code fonts. Auth is Google OpenID Connect (authorization code + PKCE, state check, no extra library); sessions are httpOnly cookies and only token hashes are stored.
Not an official Google product. Google and DevFest are trademarks of Google LLC.