Award Mania কী, কেন এবং কাদের জন্য?
Award Mania একটি ধারাবাহিক প্রোগ্রাম, যেখানে অংশগ্রহণকারীদের মূল কাজ হলো নিয়মিত পরীক্ষা দেওয়া। এখানে নির্দিষ্ট কোনো স্কোরের বা পরীক্ষায় পাশ করার বাধ্যবাধকতা নেই; বরং অংশগ্রহণই সবচেয়ে গুরুত্বপূর্ণ শর্ত।
এই প্রোগ্রামটি নতুন চাকরি পরীক্ষার্থী বা পুরনো সব ধরনের পরীক্ষার্থীদের জন্য সমানভাবে উপযোগী। আপনি সবেমাত্র বিসিএস প্রস্তুতি শুরু করে থাকুন কিংবা অনেকদিন ধরে প্রস্তুতি নিন, উভয় ক্ষেত্রেই নিয়মিত পরীক্ষার কোনো বিকল্প নেই। আর Award Mania-এ অংশ নিলে খুব সহজেই নিয়মিত পরীক্ষা দেওয়া আপনার অভ্যাসে পরিণত হবে। আর বাড়তি লাভ হিসেবে iPad-সহ আকর্ষণীয় সব পুরস্কার তো থাকছেই!
কীভাবে eligible হবেন
Live MCQ Award Mania: Season 24-এ মোট ৩৪টি পরীক্ষার ভিত্তিতে নির্ধারিত হয়েছে পুরস্কারের eligibility criteria। নির্দিষ্ট সংখ্যক পরীক্ষায় অংশ নিলেই সংশ্লিষ্ট পুরস্কারের লটারির জন্য eligible হবেন।
| পুরস্কার | সংখ্যা | পরীক্ষায় উপস্থিতি |
|---|---|---|
| Live MCQ ব্রান্ডেড টি-শার্ট | ১০০ | ≥ 30 / 34 |
| Live MCQ ব্রান্ডেড Cap | ১০০ | ≥ 32 / 34 |
| Live MCQ ব্রান্ডেড Water Bottle | ৫০ | ≥ 32 / 34 |
| Live MCQ ব্রান্ডেড Hoodie | ৯০ | ≥ 33 / 34 |
| ★ iPad | ১ | 34 / 34 |
মাস শেষে Live MCQ-এর পরীক্ষার রেকর্ড অনুযায়ী Eligible List তৈরি করা হয়। তালিকায় থাকে পরীক্ষার্থীর নাম, User ID, মোট উপস্থিতি এবং eligible tier-এর তথ্য। স্বচ্ছতা নিশ্চিত করতে তালিকার সঙ্গে SHA-256 fingerprint প্রকাশ করা হয়, যাতে পরবর্তীতে কোনো পরিবর্তন হয়েছে কি না তা যাচাই করা যায়।
লটারি কীভাবে হয়?
- Facebook Live-এ লটারি অনুষ্ঠিত হয়পুরস্কারের value অনুযায়ী নিচের tier থেকে ড্র শুরু হয়। সবশেষে অনুষ্ঠিত হয় Grand Prize-এর ড্র।
- Live Chat থেকে নির্ধারিত হয় একটি Seedউপস্থাপক Facebook Live-এর মন্তব্য থেকে একটি seed বেছে নেন। এটি আগে থেকে নির্ধারিত থাকে না, ফলে ড্রয়ের ফলাফল পূর্বানুমান করা সম্ভব নয়।
- প্রতিটি Eligible User ID-এর জন্য তৈরি হয় একটি Hashনির্বাচিত seed ও প্রতিটি User ID ব্যবহার করে SHA-256(seed + ":" + User ID) অনুযায়ী hash তৈরি হয়। ছোট থেকে বড় ক্রমে সাজিয়ে প্রথম N জনকে বিজয়ী নির্বাচন করা হয়।
- একাধিক পুরস্কার জিতলে প্রযোজ্য হয় Vacancy Fillএকজন একাধিক tier-এ নির্বাচিত হলে তিনি শুধু সর্বোচ্চ tier-এর পুরস্কারটি পাবেন। খালি স্থান একই তালিকার পরবর্তী eligible অংশগ্রহণকারী দিয়ে পূরণ হয়, তালিকায় * চিহ্ন দিয়ে দেখানো হয়।
- Grand Prize জেতার সুযোগ একবারইআগের কোনো সিজনের Grand Prize বিজয়ী পরবর্তী সিজনগুলোর Grand Draw-তে অংশ নিতে পারেন না। তবে অন্যান্য tier-এর পুরস্কারের জন্য তারা eligible থাকতে পারেন।
ফলাফল যাচাই করুন
প্রতিটি সিজনের ফলাফল সম্পূর্ণভাবে যাচাইযোগ্য। সিজন পেজ থেকে Eligible CSV এবং Audit JSON ডাউনলোড করে লটারির ফলাফল নিজেই যাচাই করতে পারবেন।
Audit JSON-এ প্রতিটি tier-এর ব্যবহৃত seed এবং সম্পূর্ণ ফলাফলের ক্রম সংরক্ষিত থাকে। একই তথ্য ও পদ্ধতি ব্যবহার করলে যে-কেউ নিজের কম্পিউটারে একই ফলাফল পুনরায় তৈরি করতে পারবেন।
Developers · Python-এ নিজে মিলিয়ে দেখুন
দুটি ফাইল একই ফোল্ডারে রেখে চালান। CSV-টি শিট থেকে রপ্তানি করা, তাই তার উপরে একটি শিরোনামের সারি থাকতে পারে এবং কলামের নাম দুই লাইনে ভাঙা থাকতে পারে — কোডটি সেটা নিজেই সামলায়। seed ফাইল থেকে হুবহু নেওয়া হয়, শেষের স্পেস সহ।
import csv, hashlib, json, sys
audit = json.load(open(sys.argv[1], encoding='utf-8')) # <slug>-audit.json
rows = list(csv.reader(open(sys.argv[2], encoding='utf-8'))) # <slug>-eligible.csv
won = {}
for w in audit['finalWinners']: won.setdefault(w['prizeId'], []).append(w)
# শিটের রপ্তানি করা CSV: উপরে শিরোনামের সারি থাকতে পারে, কলামের নাম দুই লাইনে ভাঙা থাকতে পারে
norm = lambda s: ' '.join(s.split())
hi = next(i for i, r in enumerate(rows) if any(norm(c) == 'User ID' for c in r))
head = [norm(c) for c in rows[hi]]
elig = [dict(zip(head, r)) for r in rows[hi+1:] if r and r[0].strip()]
for p in audit['perPrize']:
seed = p['seed'] # হুবহু: শেষে স্পেস থাকলে সেটিও seed-এর অংশ
pool = {r['User ID'] for r in elig
if r[norm(p['prize']['eligibilityColumn'])].strip().lower() == 'yes'}
rank = p['fullRanking'] # audit-এ থাকা পুরো ক্রম
hs = [e['hashHex'] for e in rank]
pos = {e['id']: i for i, e in enumerate(rank)}
ok = (all(hashlib.sha256(f"{seed}:{e['id']}".encode()).hexdigest() == h
for e, h in zip(rank, hs)) # প্রতিটি hash আবার হিসাব
and hs == sorted(hs) # ছোট থেকে বড় সাজানো
and all(e['id'] in pool for e in rank) # সবাই eligible তালিকার
and len(pool) - len(rank) == p['ledgerExcluded'] # বাদ গেছেন কেবল আগের grand winner
and all(w['userId'] in pos and (w.get('isFill') or pos[w['userId']] == w['rank'] - 1)
for w in won[p['prize']['id']])) # বিজয়ী নিজ নিজ স্থানে
print(p['prize']['shortName'], 'VERIFIED' if ok else 'FAILED')পুরস্কার কীভাবে দাবি করবেন?
ফলাফল প্রকাশের পর সংশ্লিষ্ট সিজনের পেজে claim করার সময়সীমা জানানো হবে।
User ID ব্যবহার করে কুরিয়ার ঠিকানা জমা দিন। নির্ধারিত claim deadline শেষ হওয়ার পর পুরস্কারগুলো একসঙ্গে পাঠানো হবে। ডেলিভারির অবস্থা Check my ticket থেকে দেখতে পারবেন।
Grand Prize বিজয়ীদের আলাদা claim form পূরণ করতে হবে না। নিজের User ID উল্লেখ করে Live MCQ-এর অফিসিয়াল Facebook গ্রুপে পোস্ট করতে হবে।
FAQ
একটি পরীক্ষা মিস করলে কি সব শেষ?
না। সব পুরস্কারের জন্য সবগুলো পরীক্ষায় অংশ নেওয়ার প্রয়োজন নেই। শুধুমাত্র Grand Prize-এর জন্য শতভাগ উপস্থিতি লাগে, অন্য tier-এর পুরস্কারের জন্য উপস্থিতির শর্ত তুলনামূলক কম।
আমার নাম Eligible List-এ নেই, কী করব?
সিজন শেষ হওয়ার ৪৮ ঘণ্টার মধ্যে User ID-সহ Live MCQ-এর Facebook গ্রুপে জানান। তালিকা সিল করে SHA-256 fingerprint প্রকাশের পর আর কোনো পরিবর্তন করা সম্ভব নয়।
একই সিজনে দুটি পুরস্কার পাওয়া যায়?
না। একাধিক tier-এ বিজয়ী হলে শুধুমাত্র সর্বোচ্চ tier-এর পুরস্কারটি দেওয়া হয়। বাকি পুরস্কারগুলো তালিকার পরবর্তী eligible অংশগ্রহণকারীদের মধ্যে চলে যায়।
আগে Grand Prize জিতেছি, আবার পারব?
না। Grand Prize একজন মাত্র একবার জিততে পারবেন। তবে অন্যান্য সব tier-এর পুরস্কারের জন্য আগের মতোই অংশগ্রহণ ও eligible হওয়ার সুযোগ থাকবে।
পুরস্কার কবে পাব?
Claim deadline শেষ হওয়ার পর কয়েক সপ্তাহের মধ্যে কুরিয়ারের মাধ্যমে পুরস্কার পাঠানো হয়। পুরস্কার পাঠানোর অবস্থা Check my ticket থেকে দেখতে পারবেন।
ফলাফল কি সত্যিই যাচাই করা যায়?
হ্যাঁ। প্রতিটি সিজনের Eligible CSV, ব্যবহৃত seed ও Audit JSON প্রকাশ করা হয়। একই তথ্য ব্যবহার করে উপরের স্ক্রিপ্ট চালালে যে-কেউ একই বিজয়ী তালিকা পুনরায় তৈরি ও যাচাই করতে পারবেন।
আমার নাম কি পাবলিক হবে?
Eligible List ও বিজয়ী তালিকায় যাচাইযোগ্যতার স্বার্থে নাম ও User ID প্রকাশ করা হয়। তবে ফোন নম্বর, ইমেইল, ঠিকানা বা অন্য কোনো ব্যক্তিগত তথ্য কখনো প্রকাশ করা হয় না।

