尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證A fully customizable video game trivia platform with leaderboards, profiles, and daily challenges.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Bilingual (ru / en) video-game quiz: Classic, Blitz, and Daily Challenge, with image-guess questions, a leaderboard, achievements, and an admin content pipeline.
Status: public beta — live portfolio product, not a private prototype.
Live: https://www.game-mind.ru
USER | ADMIN; JWT session is identity only, current role / isActive come from the databaseMEDIUM × 10 set per Moscow calendar day; one attempt per userTEXT and IMAGE_GUESS (WebP; seed files in public/quiz-images/, uploads via object storage)optionId); weights EASY=1 / MEDIUM=2 / HARD=3; client never sends a scoreQuizResult.score per user; optional difficulty and rolling 7/30-day filters/ru/... and /en/... for UI and question/option text| Layer | Choice |
|---|---|
| App | Next.js 16 (App Router) · React 19 · TypeScript |
| Database | PostgreSQL on Neon — separate local and production projects |
| Access | Prisma ORM + raw pg on Neon-critical paths |
| Auth | Auth.js (next-auth v5) — credentials + JWT |
| Validation | Zod on Server Actions |
| UI | Tailwind CSS v4 · light/dark via CSS variables · Scoreboard Editorial |
| Media | Vercel Blob + same-origin /media rewrite (local: public/media/) |
| Tests | Vitest unit tests · GitHub Actions on master |
| Deploy | Vercel Hobby · custom domain (REG.RU DNS) |
Architecture (layers, Neon queues, quiz invariants): docs/ARCHITECTURE.md.
src/
app/ # [locale] routes, layouts, Route Handlers
proxy.ts # Next.js 16 edge guard (locale + JWT UX only)
features/ # auth, quiz, timed-mode, daily-challenge, leaderboard,
# profile, admin, achievements, content
entities/ # data access (Prisma and/or parameterized pg)
lib/ # prisma, auth guards, direct-pg, rate-limit, storage
shared/ # UI, i18n dictionaries, utils
prisma/ # schema + migrations
scripts/ # seed, Windows migrate helpers, content CLI, smokes
content/drafts/ # bilingual draft JSON batches (import as DRAFT only)
docs/ # architecture, deploy, hot path, content, i18n
Copy env and fill local Neon credentials (see .env.example):
cp .env.example .env
Install and generate the Prisma client:
npm install
npm run db:generate
Apply migrations. On Windows, prisma migrate dev may fail with P1017 — prefer:
node scripts/apply-named-migration.cjs <migration_folder_name>
Optional seed (bootstrap bank only — not the full production catalog):
npm run db:seed
npm run images:update-db
Dev server:
npm run dev
Open http://localhost:3000/ru.
Keep local and production Neon URLs separate. Do not comment out DATABASE_* lines in .env — some scripts regex-match commented values. Use distinct PROD_* names or a temporary swap with restore.
Use two different Postgres URLs:
| Variable | Neon tab | Hostname |
|---|---|---|
DATABASE_URL | Pooled | contains -pooler; add &pgbouncer=true |
DATABASE_URL_UNPOOLED | Direct | without -pooler |
Do not paste the same string into both. Production also needs AUTH_SECRET, AUTH_URL, and Blob vars (BLOB_READ_WRITE_TOKEN, BLOB_PUBLIC_BASE_URL). Full list: .env.example and docs/DEPLOY.md.
| Script | Description |
|---|---|
npm run dev | Dev server (stops a leftover Next process first) |
npm run build | prisma generate + production build |
npm run lint | ESLint |
npm run test | Vitest unit suite (no Neon) |
npm run db:generate | Generate Prisma client |
npm run db:migrate | Prisma migrate dev |
npm run db:seed | Seed bilingual bootstrap questions |
npm run db:studio | Prisma Studio |
npm run content:validate-drafts | Validate draft JSON without DB writes |
npm run content:import-drafts | Import TEXT drafts as DRAFT |
npm run images:optimize | Raw screenshots → WebP |
npm run images:update-db | Point QuestionAsset URLs at WebP |
| Doc | What it is |
|---|---|
docs/ARCHITECTURE.md | Layers, Neon access, quiz hot path, auth, media |
docs/QUIZ_NEON_HOT_PATH.md | Binding rules for start / submit / result on Neon |
docs/DECISIONS.md | ADR-style log (why each choice landed) |
docs/DEPLOY.md | Production Neon + Vercel + domain |
docs/CONTENT_PIPELINE.md | Draft JSON → import → publish |
docs/QUESTION_I18N.md | RU/EN question and option rules |
docs/QUIZ_IMAGES.md | IMAGE_GUESS assets and optimize pipeline |
docs/ROADMAP.md | Roadmap from Oct 2026: phases, steps, status (MVP history in docs/archive/) |
AGENTS.md | How AI assistants work in this repo (CLAUDE.md imports it) |
Quiz setup URL: /:locale/quiz (not /quiz/setup).
Unit tests cover pure domain rules (scoring, publish quality, cycle draw, filter parse, …). They do not talk to Neon.
npm run test
CI: .github/workflows/test.yml runs unit tests plus lint and tsc on push/PR to master. Fragile Windows + Neon paths stay as manual/scripts/smoke-*.cjs checks.