### 👑 چالش باز (Chalesh Baz) — بازی دانستنیها در تلگرام
بازی **چالش باز** یک پلتفرم جامع، تعاملی و جذاب برای مسابقات اطلاعات عمومی و دانستنیها در بستر **مینیاپ تلگرام (Telegram Mini App)** است. کاربران میتوانند بدون نیاز به دانلود یا نصب هیچ اپلیکیشن اضافهای، مستقیماً از داخل محیط تلگرام وارد دنیای هیجانانگیز مسابقات اطلاعات عمومی شوند.
---
### 🎮 سازوکار و نحوه بازی
* **دوئلهای نوبتی ۶ رانده (Turn-based):** هر مسابقه شامل ۶ راند و ۱۸ سوال چهارگزینهای است. بازیکنان به نوبت از بین ۳ دستهبندی موضوعی تصادفی (ورزش، سینما، تاریخ، تکنولوژی و...) موضوع راند را انتخاب میکنند.
* **بازی نوبتی غیرهمزمان (Asynchronous):** نیازی نیست هر دو بازیکن همزمان آنلاین باشند! شما راند خود را بازی میکنید و ربات تلگرام به صورت هوشمند برای رقیب پیام میفرستد: *«نوبت شماست! رقیبت راندش رو بازی کرد ⏳»*.
* **چالشهای گروهی و دورهمی همزمان:** امکان ساخت مسابقه همزمان در گروههای تلگرام تا دهها شرکتکننده بتوانند به سوالات زنده و مشترک در لحظه پاسخ دهند و رتبهبندی لحظهای را مشاهده کنند.
* **حریف تمرینی هوش مصنوعی:** امکان مسابقه فوری و تمرینی با ربات هوشمند بدون اتلاف وقت یا کسر کاپ.
---
### 💡 آیتمهای کمکی و گیمیفیکیشن
* **آیتمهای کمکی جذاب:** امکان حذف دو گزینه غلط (۵۰:۵۰)، شانس مجدد در صورت ثبت پاسخ اشتباه، و مشاهده نمودار درصدی انتخاب دیگر بازیکنان با سکههای داخل بازی.
* **کارخانه سوال (Question Factory):** بازیکنان خودشان میتوانند طراح سوال باشند! سوالات ثبتشده پس از بررسی و تایید در پنل داوری وارد چرخه بازی میشوند و طراح سوال پاداش سکه دریافت میکند.
* **سیستم انرژی، سکه و لیدربورد:** مدیریت منابع با شارژ خودکار انرژی به ازای زمان، سیستم پاداش ورود روزانه (Streak)، و جدول برترین بازیکنان کشور بر اساس کاپ.
The Problem
بازیهای موبایلی اطلاعات عمومی معمولاً با چالشهای زیر روبرو هستند:
۱. **نیاز به نصب اجباری اپلیکیشن:** کاربران تمایل کمتری به دانلود برنامههای سنگین از مارکتها دارند.
۲. **هماهنگی دشوار برای بازی آنلاین:** پیدا کردن زمان مشترک که هر دو طرف همزمان آنلاین باشند برای بسیاری از کاربران مقدور نیست.
۳. **تکراری شدن محتوای سوالات:** عدم مشارکت جامعه کاربران در تولید محتوا باعث افت تنوع سوالات در طول زمان میشود.
۴. **تأخیر و مدیریت مسابقات گروهی زنده:** ساخت مسابقات زنده گروهی بدون بستر Real-time پایدار، باعث ناهماهنگی در تایمرها و سوءاستفادههای سمت کلاینت میگردد.
The Solution
### 🌟 راهحل پیادهسازی شده در چالش باز:
* **اجرای مستقیم در بستر Telegram Mini App:** باز شدن فوقسریع بازی در محیط نیتیو تلگرام با احراز هویت امن کاربر از طریق امضای دیجیتال تلگرام (`initData`) بدون نیاز به نام کاربری یا رمز عبور.
* **سیستم دوئل غیرهمزمان با اطلاعرسانی ربات:** ذخیره وضعیت مسابقه و ارسال اعلان هوشمند به رقیب از طریق ربات تلگرام در هنگام فرارسیدن نوبت او با مهلت ۴۸ ساعته.
* **کارخانه طراحی و بازبینی سوالات:** بخش مستقل برای ارسال سوال توسط کاربران و پنل اختصاصی ناظران برای تایید، رد و تخصیص پاداش سکه به طراحان.
* **سوکتهای بلادرنگ برای چالشهای گروهی:** سنکرونسازی تایمرها و پاسخها کاملاً سمت سرور برای تضمین عدالت در رقابتهای زنده همزمان.
System Flow & Architecture
سیستم به صورت Monorepo مدرن با تفکیک دقیق لایهها طراحی شده است:
۱. **بسته اشتراکی (Shared Package):** تعاریف مشترک انواع داده (Types)، رویدادهای Socket.io و DTOهای اعتبارسنجی بین کلاینت و سرور.
۲. **سرور بکاند (NestJS + Prisma):** معماری مدولار شامل ماژولهای احراز هویت (HMAC Validation و JWT)، موتور مدیریت بازی و راندها (Game Engine)، کارخانه سوال، و بات تلگرام (Telegraf).
۳. **کلاینت مینیاپ (React + Vite + TailwindCSS):** تجربه کاربری بسیار روان و ریسپانسیو با انیمیشنهای تعاملی Framer Motion و کتابخانههای صوتی اختصاصی.
۴. **دیتابیس و کش (PostgreSQL 16 & Redis 7):** ذخیرهسازی دادههای ساختاریافته در پستگرس با Prisma ORM و مدیریت کش و صفها با ردیس.
Technical Challenges & Solutions
احراز هویت امن و بدون رمز عبور در بستر مینیاپ تلگرام
Challenge
اطمینان از اصالت اطلاعات ارسالشده کاربر توسط تلگرام و جلوگیری از جعل هویت کاربران در درخواستهای API بدون استفاده از لاگین و پسورد سنتی.
Solution
پیادهسازی اعتبارسنجی دقیق هش رمزنگاریشده بر اساس الگوریتم HMAC-SHA256 مطابق پروتکل رسمی تلگرام و سپس صدور JWT برای نشستهای امن کاربر.
Impact: ورود آنی و بدون اصطکاک کاربران با امنیت کامل در برابر هرگونه دستکاری کلاینت.
مدیریت دوئلهای نوبتی غیرهمزمان و پایش مهلت پاسخ
Challenge
مخفی نگه داشتن پاسخهای حریف تا زمان اتمام نوبت بازیکن و کنترل زمانسنج سوالات به صورت مستقل از کلاینت جهت جلوگیری از تقلب.
Solution
ذخیره وضعیت راندها و محاسبه تایمر در لایه سرور، همراه با ماسک کردن وضعیت پاسخهای رقیب در خروجی API تا لحظه ثبت پاسخ هر دو طرف، و ارسال نوتیفیکیشن اختصاصی ربات تلگرام با گذشت زمان مهلت.
Impact: تضمین ۱۰۰٪ عدالت در بازی و افزایش بازگشت بازیکنان با اعلانهای دقیق ربات.
هماهنگی مسابقات گروهی همزمان بدون ایجاد سربار روی پایگاه داده
Challenge
مدیریت لابی و پاسخ همزمان دهها شرکتکننده در چالشهای زنده با زمانسنجهای مشترک ثانیهای بدون ایجاد گلوگاه در دیتابیس اصلی.
Solution
استفاده از WebSockets (Socket.io) با تایملاین مستقل مبتنی بر زمان شروع، مدیریت موقت رویدادها در حافظه و ردیس، و محاسبه خودکار جدول ردهبندی بلافاصله پس از اتمام هر سوال.
Impact: تجربه رقابت زنده بدون لَگ و بدون ناهماهنگی در اعلام برندگان.
Results & Metrics
• پیادهسازی کامل مکانیکهای ۶ رانده دوئل و چالش گروهی بدون نیاز به نصب اپلیکیشن.
• ورود امن و فوقسریع کمتر از ۱ ثانیه با احراز هویت HMAC-SHA256 تلگرام.
• جلوگیری کامل از تقلب کلاینت با تایمرهای سمت سرور و مکانیزم پاسخهای پنهان.
• گیمیفیکیشن جامع شامل سیستم انرژی شارژشونده، رنکینگ کشوری، پاداش ورود روزانه و کارخانه سوال.
• یکپارچگی کامل با ربات تلگرام برای ارسال خودکار نوتیفیکیشن نوبت و دیپلینکهای دعوت دوستان.