Underground 2 Revived
Chrome과 Firefox에서 Need for Speed Underground 2를 WebGPU로 두고 팬 프로젝트입니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기AI fakes now fool most people, yet few have ever practised spotting them. Real or Rendered? is a 5-minute daily game where players judge if images, voices and videos are real or AI-made, then learn the clues they missed.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A 5-minute daily game that trains people to spot AI-generated images, voices and videos. Built for the Sopra Steria International Student Challenge 2026–2027 (cognitive stream: understanding and detecting digital risks).
Players see a media item, decide Real or Rendered (AI-made) and say how sure they are. The game then reveals the clues they missed (highlighted on the image), where the item comes from, and — at the end of the round — how well their confidence matched their accuracy.
| Part | Where | What it does |
|---|---|---|
| Player app | /, /play, /spot, /practice, /progress, /join, /check/* | Anonymous play, daily rounds, Spot the fake (find the odd one out in a grid of four), practice, clue reveal, calibration feedback, streaks, class join, starting/final checks |
| Teacher dashboard | /teacher | Classes with join codes, class accuracy over time, hardest clue types, pre/post assessment, students table |
| Admin content studio | /admin | Upload media, label it, draw clue regions, record source and licence, review and publish |
| API | src/app/api/** | Typed, validated JSON API (docs/API.md) |
| Learning engine | src/lib/server/engine.ts | Elo ratings per clue kind, adaptive item selection, spaced review, scoring, Brier/calibration, streaks |
Stack: Next.js 15 (App Router) · React 19 · TypeScript (strict) · Tailwind CSS 4 · Drizzle ORM · PostgreSQL (embedded PGlite locally) · zod · jose (JWT sessions) · bcrypt · sharp · Vitest · Playwright.
Requirements: Node.js 20.9+ (22 recommended). Nothing else — the database is embedded.
npm install
cp .env.example .env.local # optional locally; set ADMIN_EMAIL / ADMIN_PASSWORD
npm run db:seed # creates the admin account and loads the content library
npm run dev # http://localhost:3000
.env.local, or register as a teacher)
npm run db:seedreadsADMIN_EMAILandADMIN_PASSWORDfrom the environment. With.env.localrun it asnpx dotenv -e .env.local -- npm run db:seed, or simply:[email protected] ADMIN_PASSWORD='a-long-password' npm run db:seed
Local data lives in .data/ (database and uploads). Delete the folder to start fresh.
npm run check # typecheck + lint + unit & integration tests
npm test -- --coverage # coverage report (server code)
npm run content:validate # content library: schema, files, balance, assessment sets
npm run build # production build
npm run test:e2e # end-to-end tests in a real browser (after `npm run build`; starts the app on a fresh database)
CI runs all of these on every push and pull request (.github/workflows/ci.yml).
provenanceNote). The starter library comes from Wikimedia Commons; see
content/CONTENT_SOURCES.md. Clues were drafted with AI and are
marked needs review until your team checks them in the studio.Signed httpOnly SameSite cookies (HS256 JWT) · bcrypt (cost 12) with timing-safe login · role checks on every staff endpoint (re-read from the database) · zod validation on every input · same-origin checks on all writes · per-IP/per-user rate limits · strict Content-Security-Policy and security headers · upload type detection by file bytes, size limits, metadata stripping · database CHECK and unique constraints as a second line of defence.
src/
app/ pages (player, staff) and API routes
components/ ui.tsx (shared), player/, staff/
db/ schema.ts, client.ts (PostgreSQL or embedded PGlite)
lib/contracts.ts shared API types and zod schemas
lib/server/ engine, rounds, players, classrooms, items, storage, auth, http, rate-limit
drizzle/ SQL migrations
content/seed/ starter content library (items.json) — media in public/media/items/
scripts/ migrate, seed, validate-content
tests/ unit, integration (API against a real Postgres engine), e2e (Playwright)
docs/ API.md, DEPLOY.md
See docs/DEPLOY.md — Vercel + Neon, or Docker on any server.