در این تسک، زیرساخت Backend مربوط به ایجاد، مدیریت و اجرای چالشهای پرسش و پاسخ توسط شهروندان توسعه داده خواهد شد.
در این قابلیت، شهروندانی که حداقل به سطح خبرنگار رسیدهاند، امکان ایجاد و مدیریت چالشهای پرسش و پاسخ را خواهند داشت. هر برگزارکننده میتواند با تعیین میزان جایزه، ثبت اطلاعات چالش، درج لینک تبلیغاتی، ایجاد سؤالات بهصورت دستی یا درونریزی از فایل Excel، چالش اختصاصی خود را برگزار نماید.
همچنین سیستم باید بهصورت هوشمند، چالشها را بر اساس بیشترین ارزش جایزه هر سؤال اولویتبندی کرده و مناسبترین چالش را به شرکتکنندگان پیشنهاد دهد.
اهداف
-
ایجاد زیرساخت برگزاری چالش توسط شهروندان
-
محدودسازی دسترسی بر اساس سطح شهروندی
-
مدیریت کامل سؤالات و جوایز
-
پشتیبانی از ثبت دستی و درونریزی Excel
-
اولویتبندی هوشمند چالشها
-
جلوگیری از سوءاستفاده و پاسخهای تکراری
-
بایگانی کامل چالشهای پایانیافته
-
مستندسازی کامل API
وظایف Backend
۱. سطح دسترسی
امکان ایجاد و شرکت در چالش تنها برای شهروندانی فراهم باشد که حداقل به سطح خبرنگار رسیدهاند.
کاربران با سطح پایینتر:
-
امکان ایجاد چالش نداشته باشند.
-
امکان شرکت در چالش را نیز نداشته باشند.
زیرساخت کنترل سطح دسترسی بهگونهای طراحی شود که در آینده سایر پنلهای اختصاصی سطوح شهروندی نیز بهراحتی قابل توسعه باشند.
۲. ایجاد چالش
ایجاد API ثبت چالش جدید.
اطلاعات اولیه شامل:
-
عنوان چالش
-
توضیحات
-
شناسه برگزارکننده
-
نوع جایزه
-
مقدار کل جایزه
-
میزان جایزه هر سؤال
-
تاریخ پایان
-
عنوان تبلیغ
-
لینک تبلیغ
-
وضعیت چالش
۳. انواع جایزه
برگزارکننده بتواند یکی از واحدهای زیر را انتخاب نماید:
-
رنگ قرمز
-
رنگ آبی
-
رنگ زرد
-
PSC
-
ریال
۴. محاسبه تعداد مجاز سؤالات
تعداد مجاز سؤالات باید بهصورت خودکار محاسبه گردد.
فرمول:
نمونه:
-
100 واحد جایزه
-
1 واحد برای هر سؤال
حداکثر 100 سؤال
نمونه دوم:
-
100 واحد
-
2 واحد برای هر سؤال
حداکثر 50 سؤال
سیستم اجازه ثبت سؤال بیشتر از ظرفیت جایزه را ندهد.
۵. ثبت سؤالات
دو روش ثبت سؤال پشتیبانی شود:
ثبت دستی
برای هر سؤال:
-
متن سؤال
-
تصویر سؤال
-
چهار گزینه
-
تصویر هر گزینه
-
پاسخ صحیح
درونریزی Excel
امکان بارگذاری فایل Excel مطابق قالب استاندارد پروژه فراهم گردد.
اطلاعات قابل درونریزی:
-
سؤال
-
گزینهها
-
پاسخ صحیح
-
نویسنده
-
تصویر سؤال
-
تصاویر گزینهها
۶. مدیریت تصاویر
اعتبارسنجی تصاویر انجام شود.
ابعاد مجاز:
تصویر سؤال
تصویر گزینهها
همچنین محدودیت حجم فایل نیز اعمال گردد.
۷. اولویتبندی چالشها
هنگام ورود شرکتکننده به بخش مسابقات، سیستم باید بهصورت خودکار چالشها را اولویتبندی نماید.
اولویت صرفاً بر اساس ارزش جایزه هر سؤال محاسبه گردد.
نمونه:
-
1 رنگ آبی
-
1 رنگ قرمز
-
1 رنگ زرد
اولویت:
-
رنگ آبی
-
رنگ قرمز
-
رنگ زرد
مقدار کل جایزه در این اولویتبندی تأثیری نخواهد داشت.
۸. انتخاب خودکار برگزارکننده
در صورتی که کاربر برگزارکنندهای انتخاب نکند، سیستم بهصورت خودکار چالشی با بیشترین ارزش جایزه هر سؤال را انتخاب نماید.
در صورت انتخاب دستی برگزارکننده توسط کاربر، همان انتخاب تا پایان چالش حفظ شود و در مراجعات بعدی به همان چالش ادامه داده شود.
تنها در صورتی که کاربر پنجره مسابقات را بسته و مجدداً وارد شود، فرآیند انتخاب از ابتدا انجام گردد.
۹. جلوگیری از پاسخ مجدد
در صورتی که شرکتکننده به سؤالی پاسخ اشتباه دهد:
-
همان سؤال دیگر برای آن کاربر نمایش داده نشود.
-
امکان پاسخ مجدد وجود نداشته باشد.
این محدودیت بهمنظور جلوگیری از سوءاستفاده رباتها و دریافت جایزه از طریق پاسخهای تکراری الزامی است.
۱۰. پایان چالش
چالش در شرایط زیر به پایان برسد:
-
تمامی سؤالات تعیین تکلیف شده باشند.
-
موجودی جایزه به پایان برسد.
-
تاریخ پایان چالش فرا برسد.
پس از پایان:
-
چالش از لیست فعال حذف گردد.
-
اطلاعات در آرشیو ذخیره شود.
۱۱. آرشیو چالش
هیچ اطلاعاتی حذف نشود.
اطلاعات زیر نگهداری گردد:
-
برگزارکننده
-
تعداد شرکتکنندگان
-
تعداد پاسخ صحیح
-
تعداد پاسخ غلط
-
میزان جایزه پرداختشده
-
تاریخ شروع
-
تاریخ پایان
۱۲. تبلیغات برگزارکننده
هر برگزارکننده بتواند برای چالش خود ثبت نماید:
-
عنوان تبلیغ
-
لینک خارجی
-
تاریخ اعتبار تبلیغ
این اطلاعات در زمان اجرای چالش به شرکتکنندگان نمایش داده شود.
۱۳. اعتبارسنجی
اعتبارسنجی موارد زیر الزامی است:
-
سطح دسترسی برگزارکننده
-
موجودی جایزه
-
تعداد مجاز سؤالات
-
اعتبار فایل Excel
-
اعتبار تصاویر
-
اعتبار لینک تبلیغ
-
تاریخ پایان
۱۴. مستندسازی API
تمامی Endpointها در Swagger مستندسازی شوند.
مستندات شامل:
-
Method
-
URL
-
Request Body
-
Response Model
-
Status Codes
-
Error Responses
-
نمونه درخواست و پاسخ
خروجی مورد انتظار
-
API ایجاد چالش توسط شهروندان سطح خبرنگار و بالاتر
-
مدیریت کامل ثبت سؤالات بهصورت دستی و Excel
-
محاسبه خودکار ظرفیت سؤالات بر اساس جایزه
-
اولویتبندی هوشمند چالشها بر اساس ارزش جایزه هر سؤال
-
جلوگیری از پاسخ تکراری کاربران
-
مدیریت پایان خودکار چالشها
-
آرشیو کامل سوابق چالشها
-
پشتیبانی از تبلیغات برگزارکننده
-
مستندسازی کامل تمامی APIها در Swagger
-
آمادهسازی زیرساخت توسعه بخش چالشهای پرسش و پاسخ متاورس رنگ برای نسخههای آینده
ویدیو توضیحات:
https://drive.google.com/file/d/1SdNMf4nXJ0UiyJZ7McmhskJVXEroZHCG/view?usp=sharing