বাংলা
বাংলা
Appearance
বাংলা
বাংলা
Appearance
প্রাপক পোর্টাল হলো badges.ninja/me এ একটি স্ব-পরিষেবা এলাকা যেখানে যার কাছে একটি ব্যাজ প্রদান করা হয়েছে সে সাইন-ইন করতে পারে (কোনো অ্যাকাউন্টের প্রয়োজন নেই), badges.ninja-এর মাধ্যমে প্রাপ্ত প্রতিটি ক্রেডেনশিয়াল ব্রাউজ করতে পারে এবং সেগুলি শেয়ার করতে একটি পাবলিক প্রোফাইল তৈরি করতে পারে।
এটি ইস্যুয়ার ড্যাশবোর্ড থেকে একটি আলাদা অভিজ্ঞতা:
| অডিয়েন্স | URL | প্রমাণীকরণ |
|---|---|---|
| ইস্যুয়ার (যিনি ব্যাজ প্রদান করেন) | /dashboard | প্রকৃত অ্যাকাউন্ট (ইমেল + পাসওয়ার্ড / SSO) |
| প্রাপক (যিনি ব্যাজ অর্জন করেন) | /me | ইমেলের মাধ্যমে ম্যাজিক-লিঙ্ক — কোনো অ্যাকাউন্ট নেই, কোনো পাসওয়ার্ড নেই |
| যেকেউ (যাচাইকারী) | /awards/<guid>, /verify/<guid>, /u/<handle> | কিছুই না — সম্পূর্ণ পাবলিক |
কোনো পাসওয়ার্ড কেন নয়?
প্রাপকদের কেবল তাদের দেওয়া ব্যাজগুলি দেখতে আরেকটি লগইন মনে রাখতে হবে না। আমরা তাদের পরিবর্তে একটি এককালীন লিঙ্ক ইমেল করি।
badges.ninja/me এ যান। পৃষ্ঠাটি একটি একক ইমেল ক্ষেত্র দেখায়:

যে ইমেল ঠিকানায় ব্যাজ পাওয়া গেছে তা লিখুন এবং Send me a sign-in link এ ক্লিক করুন।
আমরা একটি "আপনার ইনবক্স চেক করুন" বার্তা দিয়ে প্রতিক্রিয়া জানাই, সেই ঠিকানার জন্য কোনো অ্যাওয়ার্ড আছে কিনা তা নির্বিশেষে। এটি একটি নির্দিষ্ট ইমেল প্ল্যাটফর্মে কোনো ইস্যুয়ার থেকে কখনও একটি ব্যাজ পেয়েছে কিনা তা ফাঁস হওয়া এড়ায়।
যদি ঠিকানার জন্য অ্যাওয়ার্ড থাকে, আপনি একটি একক বোতাম সহ "Sign in to your Badges Ninja portal" শিরোনামের একটি ইমেল পাবেন:
Open my portal
লিঙ্কটি 24 ঘন্টা এর জন্য বৈধ এবং শুধুমাত্র একবার কাজ করে। আপনি ক্লিক করার আগে যদি এটি মেয়াদ উত্তীর্ণ হয়, কেবল একটি নতুন অনুরোধ করুন — কোনো জরিমানা নেই।
লিঙ্কে ক্লিক করলে badges.ninja/me?token=… খোলে। পৃষ্ঠাটি টোকেনটিকে একটি 1-ঘন্টার সেশন টোকেনের জন্য বিনিময় করে (শুধুমাত্র আপনার ব্রাউজারের sessionStorage এ সংরক্ষিত, কখনও কুকিতে নয়) এবং আপনাকে ব্যাজ ওয়ালে পুনঃনির্দেশিত করে। আপনি ট্যাব বন্ধ করলে বা এক ঘন্টার কার্যকলাপের পরে সেশনটি মেয়াদ উত্তীর্ণ হয়, যা আগে ঘটে।
একবার সাইন-ইন হলে, পোর্টাল দেখায়:
badges.ninja/u/jane-3a4f) — স্বতন্ত্রতার জন্য আপনার ইমেলের লোকাল-পার্ট থেকে 4টি র্যান্ডম অক্ষর যোগ করে স্বয়ংক্রিয়ভাবে প্রস্তাবিত। কিছু সুন্দর বাছাই করতে Change এ ক্লিক করুন।/u/<handle>) দেখাবে কিনা। অ্যাওয়ার্ডটি নিজেই বৈধ থাকে; আপনি কেবল পাবলিকভাবে কী তালিকাভুক্ত হয় তা নির্বাচন করেন।
একবারে 50টি অ্যাওয়ার্ড লোড হয়। আপনার আরও থাকলে, নীচে একটি Load more বোতাম প্রদর্শিত হয়; আমরা ব্যাকএন্ডে স্থিতিশীল কার্সর দ্বারা পেজিনেট করি, তাই আপনি স্ক্রল করার সময় ক্রম পরিবর্তন হয় না।
হেডারের Sign out বোতাম sessionStorage থেকে সেশন টোকেন সাফ করে। ট্যাব বন্ধ করা স্বয়ংক্রিয়ভাবে একই কাজ করে।
একবার আপনার কাছে একটি হ্যান্ডেল থাকলে, badges.ninja/u/<handle> এ আসা যেকেউ আপনার ব্যাজের একটি পরিষ্কার গ্রিড দেখতে পায়, আপনার প্রদর্শন নাম এবং ব্যাজ গণনা সহ, প্লাস প্রতি-ব্যাজ কার্ড যা ক্লিকে পাবলিক অ্যাওয়ার্ড পৃষ্ঠা খোলে।

পাবলিক প্রোফাইল শুধুমাত্র সেই ব্যাজগুলি দেখায় যা আপনি লুকাননি। আপনার /u/<handle> URL শেয়ার করতে আপনাকে সাইন-ইন করতে হবে না — এটি একটি সম্পূর্ণ পাবলিক পৃষ্ঠা যা আপনার।
হ্যান্ডেল অবশ্যই 3–20 অক্ষর হতে হবে, শুধুমাত্র a-z 0-9 _ -। এগুলি কেস-ইনসেনসিটিভ এবং badges.ninja-এ বিশ্বব্যাপী অনন্য। আপনি যে হ্যান্ডেল চান সেটি যদি নেওয়া হয়, আপনি একটি স্পষ্ট ত্রুটি পাবেন এবং অন্য কিছু বেছে নিতে পারবেন।
আপনি পোর্টাল থেকে যেকোনো সময়ে আপনার হ্যান্ডেল পরিবর্তন করতে পারেন — নতুনটি অবিলম্বে ক্যানোনিকাল URL হয়ে যায় এবং পুরানোটি অন্য কারো দাবির জন্য উপলব্ধ হয়। আপনি যে বিদ্যমান শেয়ার লিঙ্কগুলি পাঠিয়েছেন (/u/old-handle) পুনঃনির্দেশিত হবে না — তারা কেবল "Profile not found" বলবে।
পোর্টালের নীচে একটি Remove my data from Badges Ninja লিঙ্ক আছে। এটি নিম্নলিখিত কাজ করে:
removed:5f3a8b9c…)। অ্যাওয়ার্ড নিজে অক্ষত থাকে (অ্যাসার্শন JSON, ব্যাজের ছবি, ব্লকচেইন প্রমাণ যদি থাকে) তাই আপনি ক্রেডেনশিয়াল অবৈধ করেন না — ইস্যুয়াররা এখনও আপনার ব্যাজ ধরে রাখেন — কিন্তু আপনি অ-আবিষ্কারযোগ্য হয়ে যান: যেকোনো পোর্টালে আপনার ইমেল অনুসন্ধান কোনো ফলাফল দেয় না এবং আপনার /me সাইন-ইন অ্যাওয়ার্ড খোঁজা বন্ধ করে।/u/<handle> 404 ফিরিয়ে দেয় এবং হ্যান্ডেলটি অন্য কারো জন্য উপলব্ধ হয়।এটি অপরিবর্তনীয়। পরিচ্ছন্নতা সম্পূর্ণ হওয়ার আগে আপনি যদি আপনার মন পরিবর্তন করেন তবে আপনাকে একটি নতুন পোর্টাল সেশন (অর্থাৎ, নতুন ম্যাজিক লিঙ্ক) প্রয়োজন হবে।
এটি যা করে না
/awards/<guid> এ) যাচাইকরণের উদ্দেশ্যে বৈধ থাকে — এটিই স্পেক।দুটি সম্ভাবনা:
/awards/<guid> URL-এর মাধ্যমে দেখা যাবে।এখনও নয়। পোর্টাল বর্তমানে শুধুমাত্র badges.ninja-এর মাধ্যমে জারি করা ব্যাজ দেখায়। ক্রস-ইস্যুয়ার সমষ্টি ("Open Badges Backpack" মডেল) 2010-এর দশকের শুরুতে Open Badges-এর একটি প্রধান লক্ষ্য ছিল, কিন্তু বৃহত্তর ইকোসিস্টেম ডি-ফ্যাক্টো সমষ্টি হিসাবে LinkedIn-এ চলে গেছে। আমরা সেই পৃষ্ঠে প্রতিদ্বন্দ্বিতা করার পরিকল্পনা করছি না।
হ্যাঁ — প্রতিটি পাবলিক অ্যাওয়ার্ড পৃষ্ঠায় (/awards/<guid>) একটি Add to LinkedIn profile বোতাম থাকে যখন ইস্যুয়ার তাদের LinkedIn সংস্থা ID সেট করেছে। বোতামটি LinkedIn-এর Add-to-Profile ডিপ লিঙ্ক ব্যবহার করে, তাই ব্যাজটি ম্যানুয়াল কপি-পেস্ট ছাড়াই সরাসরি আপনার Certifications বিভাগে পৌঁছে যায়।
প্রতিটি অ্যাওয়ার্ড পৃষ্ঠা ভিউ, শেয়ার, ডাউনলোড এবং LinkedIn অ্যাড-ক্লিক ট্র্যাক করে। ইস্যুয়াররা এই গণনাগুলি তাদের নিজস্ব ড্যাশবোর্ডে দেখেন; প্রাপকরা সেগুলি পাবলিক অ্যাওয়ার্ড পৃষ্ঠায় দেখেন। Credly কনভেনশন অনুসারে, দর্শকের পরিচয় কখনই রেকর্ড করা হয় না — শুধুমাত্র গণনা।
24 ঘন্টা। এর পরে, একটি নতুন অনুরোধ করুন — কোনো রেট সীমা নেই, কোনো জরিমানা নেই।
সাইন-ইন থেকে 1 ঘন্টা। সেই উইন্ডোর মধ্যে পৃষ্ঠা রিফ্রেশ করলে সেশন জীবিত থাকে; ট্যাব বন্ধ করলে এটি শেষ হয়।
না। লুকানো ব্যাজগুলি পাবলিক /u/<handle> ভিউ থেকে ফিল্টার করা হয়। আপনি পোর্টালে সাইন-ইন হওয়ার সময় কেবল সেগুলি আপনার কাছে দৃশ্যমান।
হ্যাঁ — পোর্টাল থেকে যেকোনো ব্যাজ খুলুন, তারপর পাবলিক অ্যাওয়ার্ড পৃষ্ঠায় Download PNG (Open Badges baked) বা Download PDF certificate বোতাম ব্যবহার করুন। উভয়ই স্বাক্ষরিত এবং Open Badges v2 স্পেকের মাধ্যমে যাচাইযোগ্য।
পোর্টাল অ্যাক্সেস করা প্রাপকরা ইস্যুয়ারের জন্য কিছুই পরিবর্তন করেন না — ইস্যুয়ারের ড্যাশবোর্ডে অ্যাওয়ার্ড টেবিল ঠিক একইভাবে কাজ করে। পোর্টাল সম্পূর্ণরূপে সংযোজনশীল।
আপনি যদি একজন ইস্যুয়ার হন যে এটি পড়ছেন এবং আপনার LinkedIn সংস্থা ID এখনও সেট করেননি, এখনই সেট করুন: ইস্যুয়ার পরিচালনা → LinkedIn add-to-profile। এটি প্ল্যাটফর্মে একক সবচেয়ে বড় "শেয়ার হার" লিভার।
{ kind: "magic", email, exp } যা AWS Secrets Manager (recipient/keys:tokenSecret) এর মাধ্যমে ঘোরানো একটি সার্ভার-সাইড সিক্রেট দিয়ে স্বাক্ষরিত। যাচাইয়ের সময়, আমরা একটি { kind: "session", email, exp } টোকেন মুদ্রণ করি। কোনো DB-ব্যাকড সেশন টেবিল নেই।RECIPIENT_EMAIL_LC-TIMESTAMP GSI প্রশ্ন করে। ইমেল সংরক্ষণ এবং লুকআপের আগে লোয়ারকেসে স্বাভাবিক করা হয়।EMAIL_LC সংরক্ষণ করে যাতে /u/<handle> প্রাপক সাইন-ইন না হয়েও অ্যাওয়ার্ড তালিকাভুক্ত করতে পারে। লুকানো অ্যাওয়ার্ডগুলি সার্ভার-সাইড ফিল্টার করা হয়।RECIPIENT_EMAIL_LC কে removed:<random> এ পুনরায় লেখে এবং DynamoDB UPDATE এর মাধ্যমে RECIPIENT_EMAIL প্লেইনটেক্সট অ্যাট্রিবিউট সরায়। প্রোফাইল সারি মুছে ফেলা হয়।POST /me/auth/request { email } — ম্যাজিক লিঙ্ক ইমেল করেPOST /me/auth/verify { token } — সেশন টোকেন ফিরিয়ে দেয়GET /me — প্রোফাইল + প্রথম অ্যাওয়ার্ড পৃষ্ঠা (Bearer)GET /me/awards?lastEvaluatedKey=… — পেজিনেটেড (Bearer)PUT /me/handle { handle } — হ্যান্ডেল সেট/পরিবর্তন (Bearer)PUT /me/awards/{guid}/visibility { hidden: bool } — লুকানো টগল (Bearer)POST /me/auth/forget — GDPR আনবাইন্ড (Bearer)GET /u/{handle} — পাবলিক প্রোফাইল (কোনো প্রমাণীকরণ নেই)