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 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗منصة عربية للمسابقات والألعاب والأسئلة المباشرة. يضم المستودع البنية التقنية ونظام تصميم عربي RTL، مع مصادقة، بنك أسئلة، منشئ مسابقات، وخدمة زمن حقيقي (Socket.IO) تشغّل عدة ألعاب مباشرة محفوظة في PostgreSQL.
التسمية: اسم المنتج هو تحدّي (Tahaddi). النطاق العام
qurabia.comوحزمة المهاراتqurabia-*في.agents/skillsتشير إلى نفس المنتج.
.nvmrc هو 24).pnpm setup:env أو انسخ .env.example إلى .env يدويًا.pnpm install.pnpm infra:up.pnpm db:validate ثم pnpm db:generate.pnpm dev.الواجهة تعمل افتراضيًا على http://localhost:3000، وفحص خدمة الزمن الحقيقي على http://localhost:3001/health مع بقاء المسار المسبق http://localhost:3001/realtime/health متاحًا.
صفحة مرجع الواجهة متاحة في /design-system. يبدأ مسار الجلسة المباشرة من /host بعد تسجيل دخول المضيف، ويفضّل Google OAuth عند توفره. ينضم اللاعب كزائر دون حساب من /join أو رابط دعوة مثل /join/[code]، ثم ينتقل إلى /live/[sessionId]/play.
| الأمر | الوظيفة |
|---|---|
pnpm dev | تشغيل الواجهة وخدمة الزمن الحقيقي |
pnpm build | بناء جميع الحزم والتطبيقات |
pnpm lint | فحص ESLint دون تعديل الملفات |
pnpm typecheck | فحص TypeScript الصارم |
pnpm test | تشغيل الاختبارات الحالية |
pnpm --filter @tahaddi/web test:e2e | تشغيل اختبارات الواجهة الشاملة |
pnpm format:check | فحص تنسيق Prettier |
pnpm db:validate | التحقق من مخطط Prisma |
pnpm db:generate | توليد عميل Prisma |
pnpm infra:up | تشغيل PostgreSQL وRedis |
pnpm infra:down | إيقاف الخدمات المحلية |
apps/
web/ Next.js App Router وواجهة RTL (BFF وREST غير اللحظي)
realtime/ NestJS + Socket.IO: الجلسات المباشرة، الوقت، النقاط
desktop/ تطبيق سطح المكتب (Tauri) لشاشة المضيف والعرض
mobile/ تطبيق الجوال
packages/
config/ اسم المنتج والإعدادات المشتركة
contracts/ عقود zod والأنواع وأسماء الأحداث بين الواجهة والخادم
domain/ قواعد النطاق ومعادلات النقاط وانتقالات الحالة
database/ Prisma Client ومحول PostgreSQL
prisma/ المخطط والمهاجرات وملف seed
scripts/ أدوات الصيانة (بنك الأسئلة، Blender، النشر)
tests/load/ اختبارات الحمل k6
docs/ الوثائق والتقارير والملاحظات
.agents/ مهارات وإعدادات أدوات الذكاء الاصطناعي للمطوّرين (ليست جزءًا من المنتج)
اعتماديات تشغيل خدمة الزمن الحقيقي (NestJS، Socket.IO، ioredis، Sentry) معلنة في package.json الجذري عن قصد حتى يراها مُحزّم دوال Vercel، ويحمي ذلك الاختبار apps/realtime/src/deployment-config.spec.ts. لا تنقلها إلى apps/realtime دون تعديل الاختبار وإعداد النشر.
.gitlab-ci.yml يشغّل على كل Merge Request وعلى الفرع الافتراضي مهام متوازية: التحقق من Prisma، ESLint، TypeScript، Prettier، الاختبارات، Playwright E2E، والبناء، إضافةً إلى قوالب GitLab للفحص الأمني (SAST، Secret Detection، Dependency Scanning).db:migrate:production (على main فقط) تطبّق prisma migrate deploy على قاعدة الإنتاج باستخدام متغير CI المحمي PRODUCTION_DATABASE_URL. بناء Vercel للمعاينات (preview) لم يعد ينفّذ الهجرات إلا بضبط RUN_DB_MIGRATE=1..github/workflows/nextjs.yml يشغّل نفس السلسلة عند استخدام المرآة على GitHub.apps/web/src/config/site.ts.apps/web/src/config/navigation.ts.apps/web/src/app/globals.css.apps/web/src/components/ui.apps/web/src/components/quiz.design.md. الدليل الكامل وقواعد RTL والوصولية: docs/design-system.md.لتغيير الهوية حدّث site.ts. لتغيير لون عدّل متغير CSS الدلالي في الوضعين الداكن والفاتح، ولا تستخدم لونًا ثابتًا داخل المكوّن. عند إضافة مكوّن جديد عرّف Props واضحة، أضف حالات الوصولية والاختبار، ثم اعرضه في /design-system.
.env محلي ومهمل من Git.راجع docs/product-requirements.md للنطاق ومعايير القبول وdocs/architecture.md للقرارات التقنية.
نتائج التنفيذ والتحقق موثقة في docs/phase-2-report.md، ومرجع المرحلة الثالثة في docs/design-system.md.
تقارير المراجعة في docs/reviews/ وملاحظات العمل المؤقتة في docs/notes/.