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