Underground 2 Revived
Play Need for Speed: Underground 2 (2004) in Chrome and Firefox with WebGPU graphics, Web Audio, up to 120 fps widescreen, controller support, free roam and Online races with friends. Fan project, not
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證This repo is used for storing in work projects.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
A web app where people play short NBA trivia minigames, earn points, climb a leaderboard, and
optionally play head-to-head against another person online. 18 games are live today — playoff
series, logos, MVPs, starting fives, Wordle, Connections, a hex-grid heatmap, a 3×3 criteria grid,
a party bluffing game, and more. See docs/games/MASTER_PLAN.md for
the full roster and what's still planned.
Data comes from nba_api. Frontend is TypeScript/React,
backend is Django, multiplayer is a Node/Socket.IO server.檢視完整 README ↗Live at https://swishquest.com.
A web app where people play short NBA trivia minigames, earn points, climb a leaderboard, and optionally play head-to-head against another person online. 18 games are live today — playoff series, logos, MVPs, starting fives, Wordle, Connections, a hex-grid heatmap, a 3×3 criteria grid, a party bluffing game, and more. See docs/games/MASTER_PLAN.md for the full roster and what's still planned.
Data comes from nba_api. Frontend is TypeScript/React,
backend is Django, multiplayer is a Node/Socket.IO server.
The app has three parts, each in its own terminal — paste each block into a separate shell. Requires Node.js and Python 3.10+. Make sure ports 8000, 4000 and 5173 are free first. Single-player games only need the backend running; multiplayer needs all three.
cd backend
python -m venv venv
venv\Scripts\activate # Windows (macOS/Linux: source venv/bin/activate)
pip install -r requirements.txt
pip install -r requirements-pipeline.txt # only for the NBA data commands and the test suite
python manage.py migrate
python manage.py runserver 8000
cd multiplayer_server
npm install
npm start
npm install
npm run dev
Then open http://localhost:5173.
The frontend reads the backend URL from .env (VITE_BACKEND_URL=http://localhost:8000/api) and
the socket URL from VITE_SOCKET_URL (defaults to http://localhost:4000). Local dev needs no
other env vars — the backend falls back to sqlite when DATABASE_URL is unset.
npm run dev first runs a probe (scripts/dev-env.mjs) that checks whether the local backend
and socket server are actually up, and writes a gitignored .env.local that falls back to the
deployed production ones if not — see docs/DEPLOYMENT.md → Environments.
Everyday commands (from the repo root unless noted):
| Frontend lint | npm run lint |
| Frontend typecheck + build | npm run build |
| Backend tests | cd backend && python manage.py test |
| Backend sanity check | cd backend && python manage.py check |
Deploying / scaling to production? See docs/DEPLOYMENT.md for the full activation runbook (CDN content, Postgres, Redis, env vars) and docs/DATA_PIPELINE.md for how game data is refreshed.
.github/workflows/security.yml runs one security agent (gitleaks + osv-scanner + a Claude security review with
.security/scan-instructions.md) in two modes:
main (promotions and pipeline hotfixes included): diff-only scan behind the required status
security/pr-scan. High/critical blocks it, and for a trusted same-repo PR the team pipeline fixes the branch and the
scan re-runs (2 rounds at most, then a human). Medium/low → a PR comment and the next weekly card.State lives on the branch security-state (findings.json, one entry per finding fingerprint, details encrypted with
the SECURITY_STATE_KEY secret). False positives: add the fingerprint and a reason to .security/ignore.json; tune the
review in .security/scan-instructions.md, gitleaks rules in .gitleaks.toml. Details: docs/security/README.md.
| Doc | What's in it |
|---|---|
| docs/ARCHITECTURE.md | How the three services + database + data pipeline fit together, in plain language |
| docs/DEPLOYMENT.md | Runbook for taking this from "works locally" to hosted at scale |
| docs/DATA_PIPELINE.md | How NBA data is gathered, stored, refreshed, and served |
| docs/GAME_DESIGN_CONSTRAINTS.md | The UI/UX rules every game (current and new) must follow |
| docs/games/MASTER_PLAN.md | Every game the app has, is building, or should build — status tracker |
| docs/games/DATA_REQUIREMENTS.md, PLAYERS_DATA.md, TEAMS_DATA.md | Data-field wishlists the games above draw on |
| docs/game-research/ | Reference screenshots from other trivia games (mechanics only — never copy visual style) |
| docs/security/README.md |
| Path | What's in it |
|---|---|
src/ | React + TypeScript frontend — components/, views/ (page-level components — Next.js owns the pages name), Game Renderers/, styles/, store/ (Redux Toolkit), hooks/, context/, constants/ |
backend/ | Django project. Apps: users/ (auth, custom user, rank), trivia/ (minigame data + pipeline) |
multiplayer_server/ | Node Socket.IO server for "Play Online" and friend rooms |
docs/ | All project documentation (see the map above) |
.claude/ | Coding-agent configuration (subagent definitions, engine profiles, scheduled routines) |
backend/| File/Folder | Description |
|---|---|
backend/settings.py | Django configuration (apps, database, middleware) |
backend/urls.py | Root URL routing |
users/ | Accounts: models, login/signup/update-profile views, migrations |
trivia/ | Minigame data: models, views, data pipeline, migrations |
media/ | Uploaded files (e.g. profile photos) |
Frontend — React 19 + TypeScript, Next.js (App Router, server-rendered), Tailwind CSS 4, Redux Toolkit, framer-motion, socket.io-client.
Backend — Django 5 + Django REST Framework, djangorestframework-simplejwt for auth,
Supabase Postgres in production (sqlite locally).
Multiplayer — Node.js + Socket.IO.
Full rationale and how the pieces talk to each other: docs/ARCHITECTURE.md.
If you have questions or want to collaborate, feel free to open an issue or reach out via GitHub.
| The security agent: weekly scan, PR gate, state, tuning false positives |
| CLAUDE.md | Instructions for AI coding agents working in this repo |
| .claude/README.md | How the coding-agent model/effort profile is configured and switched |