CoOp:Anything
Search any game and see how much of it you can play with friends: every co-op mod, its stage, quality and community rating.
Квиз по видеоиграм: угадай игру по скриншоту, блиц на минуту, выживание и челлендж дня.
Translation pending
GamesTypeScript · JavaScriptGitHub @romanzolloOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
A fully customizable video game trivia platform with leaderboards, profiles, and daily challenges.
Taken from the repository README
Loading the full README.
Read the full 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.