এনএফসি এবং এআরডি স্ক্যানার দিয়ে নিরবচ্ছিন্ন অ্যাক্সেস আনলক করা
একটি সুরক্ষিত বিল্ডিংয়ে হাঁটার কল্পনা করুন যেখানে আপনার ফোন আপনার চাবি হয়ে ওঠে, NFC প্রযুক্তির শক্তির জন্য ধন্যবাদ৷ iOS 18 প্রকাশের সাথে, Apple তার NFC ক্ষমতা বাড়িয়েছে, যা ডেভেলপারদের Apple Wallet-এ সঞ্চিত ব্যক্তিগতকৃত অ্যাক্সেস ব্যাজ তৈরি করতে সক্ষম করে। এই উদ্ভাবন দরজা খুলে দেয় - বেশ আক্ষরিক অর্থেই - ARD স্ক্যানারের মতো আধুনিক পাঠকদের সাথে একীভূত হয়ে৷ 🔑
একজন ডেভেলপার হিসেবে, আমি ইতিমধ্যেই প্রাথমিক পদক্ষেপগুলি নিয়েছি: Apple সার্টিফিকেট প্রাপ্ত করা, একটি কার্যকরী .pkpass ফাইল তৈরি করা এবং এটিকে Apple Wallet-এ সফলভাবে যুক্ত করা৷ যাইহোক, যাত্রা এখানেই শেষ নয়। আসল চ্যালেঞ্জটি নিশ্চিত করা যে ব্যাজটি মসৃণ, নিরাপদ অ্যাক্সেসের জন্য ARD পাঠকদের সাথে কার্যকরভাবে যোগাযোগ করে। সঠিক NFC বার্তা বিন্যাস বোঝা গুরুত্বপূর্ণ। 📱
ARD স্ক্যানার, একটি অত্যাধুনিক দ্বি-প্রযুক্তি ডিভাইস, 13.56 MHz-এ কাজ করে এবং ISO 14443 A/B এবং ISO 18092 মানকে সমর্থন করে৷ যদিও এটি MIFARE চিপস এবং ARD মোবাইল আইডির সাথে সামঞ্জস্যপূর্ণ, এই প্রয়োজনীয়তাগুলির সাথে মেলে একটি NFC ব্যাজ কনফিগার করার জন্য প্রযুক্তিগত নির্ভুলতার প্রয়োজন৷ একটি ধাঁধা সমাধান করার মতো, সিস্টেমটি কাজ করার জন্য প্রতিটি অংশকে পুরোপুরি ফিট করতে হবে। 🧩
এই নিবন্ধটি আমি যে চ্যালেঞ্জগুলির মুখোমুখি হয়েছি এবং ARD পাঠকদের জন্য NFC বার্তাগুলি ফরম্যাট করার জন্য আমি যে সমাধানগুলি অন্বেষণ করেছি সেগুলি নিয়ে আলোচনা করে৷ পেলোড ফরম্যাট থেকে সমস্যা সমাধান পর্যন্ত, আমি অন্তর্দৃষ্টি শেয়ার করব এবং এই ইন্টিগ্রেশনকে নিখুঁত করতে সম্প্রদায়ের জ্ঞান খুঁজব। আসুন একসাথে জটিলতাগুলি ভেঙে ফেলি!
আদেশ | ব্যবহারের উদাহরণ |
---|---|
fs.writeFileSync() | সিঙ্ক্রোনাসভাবে একটি ফাইলে ডেটা লেখে। একটি নির্দিষ্ট বিন্যাসে JSON পেলোড সংরক্ষণ করে .pkpass ফাইল তৈরি করতে Node.js-এ ব্যবহৃত হয়। |
JSON.stringify() | একটি জাভাস্ক্রিপ্ট অবজেক্টকে JSON স্ট্রিংয়ে রূপান্তর করে। প্রয়োজনীয় বিন্যাসে NFC পেলোড প্রস্তুত করার জন্য অপরিহার্য। |
crypto | ক্রিপ্টোগ্রাফিক ফাংশন পরিচালনার জন্য Node.js বিল্ট-ইন মডিউল। এটি নিরাপদ NFC স্বাক্ষর তৈরির জন্য বাড়ানো যেতে পারে। |
json.dump() | পাইথন ফাংশন যা পাইথন অবজেক্টকে একটি JSON ফাইলে সিরিয়ালাইজ করে। পাইথন উদাহরণে .pkpass ফাইল তৈরি করতে ব্যবহৃত হয়। |
os | অপারেটিং সিস্টেমের সাথে ইন্টারঅ্যাক্ট করার জন্য পাইথন মডিউল ব্যবহার করা হয়। ফাইল তৈরির সময় গতিশীলভাবে ফাইল পাথ পরিচালনা করতে সাহায্য করতে পারে। |
try-except | ব্যতিক্রমগুলি পরিচালনা করতে পাইথন নির্মাণ। নিশ্চিত করে যে পেলোড জেনারেশন বা ফাইল তৈরির সময় ত্রুটিগুলি স্ক্রিপ্টটি ক্র্যাশ না করে। |
validateNfcPayload() | Node.js স্ক্রিপ্টে একটি কাস্টম বৈধতা ফাংশন নিশ্চিত করতে যে পেলোডটি ARD স্ক্যানারদের দ্বারা প্রয়োজনীয় NDEF ফর্ম্যাটের সাথে সামঞ্জস্যপূর্ণ। |
records | NFC পেলোড কাঠামোর মধ্যে একটি কী NDEF রেকর্ডগুলির একটি তালিকা উপস্থাপন করে। ARD স্ক্যানারের জন্য ডেটা ব্লক সংজ্ঞায়িত করতে ব্যবহৃত হয়। |
with open() | ফাইল অপারেশনের জন্য পাইথন নির্মাণ। .pkpass ফাইলটি লেখার সময় ফাইলটি সঠিকভাবে খোলা এবং বন্ধ করা হয়েছে তা নিশ্চিত করে। |
parsed.get() | একটি অভিধানের মধ্যে নিরাপদে কীগুলি অ্যাক্সেস করার জন্য একটি পাইথন পদ্ধতি। NFC পেলোড থেকে নির্দিষ্ট ডেটা ক্ষেত্র নিষ্কাশন এবং যাচাই করতে ব্যবহৃত হয়। |
এনএফসি ব্যাজ সামঞ্জস্যের জন্য সমাধান ব্রেকিং ডাউন
স্ক্রিপ্টগুলি এনএফসি-সামঞ্জস্যপূর্ণ অ্যাপল ওয়ালেট ব্যাজ তৈরির চ্যালেঞ্জ মোকাবেলা করে যা ARD স্ক্যানারগুলির সাথে নির্বিঘ্নে কাজ করে। Node.js উদাহরণে, প্রাথমিক ফোকাস হল প্রয়োজনীয় NDEF ফর্ম্যাটে একটি NFC পেলোড তৈরি করা। fs.writeFileSync() ফাংশন এখানে একটি মূল ভূমিকা পালন করে, যা ডেভেলপারদের একটি .pkpass ফাইলে পেলোড সংরক্ষণ করতে দেয়। এই পদক্ষেপটি নিশ্চিত করে যে ব্যাজ ডেটা এমন একটি বিন্যাসে রয়েছে যা Apple Wallet এবং ARD পাঠক উভয়ের দ্বারা স্বীকৃত। উপরন্তু, JSON.stringify() জাভাস্ক্রিপ্ট অবজেক্টকে একটি JSON স্ট্রিং-এ রূপান্তর করে, NFC ডেটার সঠিক কাঠামো নিশ্চিত করার জন্য একটি গুরুত্বপূর্ণ প্রক্রিয়া। এই রূপান্তর ছাড়া, ARD স্ক্যানার ব্যাজের বিষয়বস্তু ব্যাখ্যা করতে ব্যর্থ হবে। 🔧
পাইথনের দিকে, স্ক্রিপ্টটি json.dump() এবং os মডিউল ইন্টারঅ্যাকশনের মতো ফাংশনগুলির সাথে একই পদ্ধতি গ্রহণ করে। এই সরঞ্জামগুলি JSON-গঠিত পেলোডগুলি লিখতে এবং গতিশীলভাবে ফাইল পাথগুলি পরিচালনা করতে সহায়তা করে। পরিবর্তনশীল ডিরেক্টরি কাঠামো সহ পরিবেশে কাজ করা বিকাশকারীদের জন্য এটি বিশেষভাবে কার্যকর। পাইথনে ট্রাই-ব্যতীত ব্লকের ব্যবহার দৃঢ়তার একটি স্তর যুক্ত করে, যাতে নিশ্চিত করে যে ফাইল তৈরি বা পেলোড বিন্যাসে ত্রুটিগুলি কর্মপ্রবাহকে বাধাগ্রস্ত না করে। উদাহরণস্বরূপ, যদি এনএফসি পেলোড ডেটাতে অবৈধ অক্ষর থাকে, তবে স্ক্রিপ্ট বন্ধ না করে ত্রুটিটি ধরা পড়ে এবং লগ করা হয়৷ এই স্ক্রিপ্টগুলি নিরাপদ, ইন্টারঅপারেবল সিস্টেম তৈরির বিকাশকারীদের জন্য ব্যবহারিক সরঞ্জাম। 🛠️
আরেকটি গুরুত্বপূর্ণ বৈশিষ্ট্য হল পেলোড যাচাইকরণ। Node.js এবং Python উভয় উদাহরণেই, কাস্টম ফাংশন যেমন validateNfcPayload() এবং validate_payload_format() নিশ্চিত করে যে NFC ডেটা ARD প্রয়োজনীয়তা মেনে চলে। এই ফাংশনগুলি মূল বৈশিষ্ট্যগুলি পরীক্ষা করে যেমন "টাইপ" হচ্ছে "NDEF" এবং সঠিকভাবে কাঠামোবদ্ধ রেকর্ডের উপস্থিতি। এই বৈধতা প্রক্রিয়াটি একটি বাস্তব-বিশ্বের দৃশ্যকে প্রতিফলিত করে: একটি জিম সদস্যতা ব্যাজ ব্যবহার করে কল্পনা করুন যা একটি বিন্যাস ত্রুটির কারণে দরজাটি আনলক করতে ব্যর্থ হয়৷ এই বৈধতা যাচাইয়ের মাধ্যমে, বিকাশকারীরা নিশ্চিত করতে পারে যে তাদের ভার্চুয়াল ব্যাজগুলি এই ধরনের সমস্যাগুলি এড়াতে পারে৷ 💡
অবশেষে, এই স্ক্রিপ্টগুলি কর্মক্ষমতা এবং নিরাপত্তা জন্য সর্বোত্তম অনুশীলনগুলিকে অন্তর্ভুক্ত করে। উদাহরণস্বরূপ, মডুলার স্ট্রাকচার প্রতিটি প্রোজেক্ট জুড়ে পুনরায় ব্যবহারযোগ্য করে তোলে এবং ইউনিট পরীক্ষার অন্তর্ভুক্তি বিভিন্ন স্থাপনার পরিবেশে নির্ভরযোগ্যতা নিশ্চিত করে। বিকাশকারীরা এই স্ক্রিপ্টগুলিকে বিস্তৃত সিস্টেমে একীভূত করতে পারে, যেমন কর্মচারী অ্যাক্সেস নিয়ন্ত্রণ বা ইভেন্ট টিকিটিং প্ল্যাটফর্ম। এআরডি স্ক্যানারগুলির নির্দিষ্ট প্রয়োজনীয়তার উপর ফোকাস করে, এই সমাধানগুলি কেবল প্রযুক্তিগত সমস্যার সমাধান করে না বরং মাপযোগ্য, ব্যবহারকারী-বান্ধব অ্যাক্সেস সমাধানগুলির জন্য একটি ভিত্তিও প্রদান করে। সরঞ্জাম, বৈধতা এবং মডুলারিটির সমন্বয় আধুনিক এনএফসি চ্যালেঞ্জগুলির জন্য একটি অত্যন্ত অভিযোজিত পদ্ধতির ফলাফল।
অ্যাপল ওয়ালেট এবং এআরডি স্ক্যানার সামঞ্জস্যের জন্য কীভাবে এনএফসি বার্তাগুলি গঠন করবেন
ব্যাকএন্ড প্রক্রিয়াকরণ এবং NFC পেলোড জেনারেশনের জন্য Node.js ব্যবহার করে সমাধান
// Import required modules
const fs = require('fs');
const crypto = require('crypto');
// Function to generate the NFC payload
function generateNfcPayload(data) {
try {
const payload = {
type: "NDEF",
records: [{
type: "Text",
value: data
}]
};
return JSON.stringify(payload);
} catch (error) {
console.error("Error generating NFC payload:", error);
return null;
}
}
// Function to create the .pkpass file
function createPkpass(nfcPayload, outputPath) {
try {
const pkpassData = {
passTypeIdentifier: "pass.com.example.nfc",
teamIdentifier: "ABCDE12345",
nfc: [{
message: nfcPayload
}]
};
fs.writeFileSync(outputPath, JSON.stringify(pkpassData));
console.log("pkpass file created successfully at:", outputPath);
} catch (error) {
console.error("Error creating pkpass file:", error);
}
}
// Example usage
const nfcPayload = generateNfcPayload("ARD-Scanner-Compatible-Data");
if (nfcPayload) {
createPkpass(nfcPayload, "./output/pass.pkpass");
}
// Test: Validate the NFC payload structure
function validateNfcPayload(payload) {
try {
const parsed = JSON.parse(payload);
return parsed.type === "NDEF" && Array.isArray(parsed.records);
} catch (error) {
console.error("Invalid NFC payload format:", error);
return false;
}
}
console.log("Payload validation result:", validateNfcPayload(nfcPayload));
ARD স্ক্যানারের সাথে NFC ব্যাজ যোগাযোগ অপ্টিমাইজ করা
ব্যাকএন্ড পেলোড জেনারেশন এবং পরীক্ষার জন্য পাইথন ব্যবহার করে সমাধান
import json
import os
# Function to generate the NFC payload
def generate_nfc_payload(data):
try:
payload = {
"type": "NDEF",
"records": [
{"type": "Text", "value": data}
]
}
return json.dumps(payload)
except Exception as e:
print(f"Error generating NFC payload: {e}")
return None
# Function to create the pkpass file
def create_pkpass(payload, output_path):
try:
pkpass_data = {
"passTypeIdentifier": "pass.com.example.nfc",
"teamIdentifier": "ABCDE12345",
"nfc": [{"message": payload}]
}
with open(output_path, 'w') as f:
json.dump(pkpass_data, f)
print(f"pkpass file created at {output_path}")
except Exception as e:
print(f"Error creating pkpass file: {e}")
# Example usage
nfc_payload = generate_nfc_payload("ARD-Scanner-Compatible-Data")
if nfc_payload:
create_pkpass(nfc_payload, "./pass.pkpass")
# Unit test for payload validation
def validate_payload_format(payload):
try:
parsed = json.loads(payload)
return parsed.get("type") == "NDEF" and isinstance(parsed.get("records"), list)
except Exception as e:
print(f"Validation error: {e}")
return False
print("Payload validation:", validate_payload_format(nfc_payload))
NFC যোগাযোগের জন্য ARD স্ক্যানার প্রয়োজনীয়তা বোঝা
Apple Wallet-এ NFC ব্যাজগুলির সাথে কাজ করার সময়, ARD স্ক্যানারের নির্দিষ্ট প্রয়োজনীয়তাগুলি বিবেচনা করা অত্যন্ত গুরুত্বপূর্ণ৷ ARD স্ক্যানারগুলি সাধারণত ISO 14443 A/B এবং ISO 18092 মান ব্যবহার করে কাজ করে। এই মানগুলি ব্যাজ এবং পাঠকের মধ্যে কীভাবে ডেটা আদান-প্রদান করা হয় তা সংজ্ঞায়িত করে৷ উদাহরণস্বরূপ, একটি ARD স্ক্যানার একটি NFC বার্তা আশা করতে পারে যে NDEF ফর্ম্যাট অনুসরণ করবে, যেখানে প্রতিটি রেকর্ডে পাঠ্য বা URI-এর মতো নির্দিষ্ট ডেটা প্রকার রয়েছে। এই বিন্যাসটি মেনে না চললে, স্ক্যানার ব্যাজটিকে চিনতে নাও পারে, এমনকি এটি অন্যভাবে কার্যকরী হলেও। 📶
আরেকটি গুরুত্বপূর্ণ বিবেচনা হল পেলোড সামগ্রী নিজেই। ARD স্ক্যানারগুলির প্রায়ই একটি সুনির্দিষ্ট ডেটা কাঠামোর প্রয়োজন হয়, যেমন একটি অনন্য শনাক্তকারী বা টোকেন যা সিস্টেমটি প্রমাণীকরণ করতে পারে। MIFARE চিপ বা ARD মোবাইল আইডি সিস্টেমের সাথে সামঞ্জস্যপূর্ণ একটি পদ্ধতি ব্যবহার করে বিকাশকারীদের এই তথ্য এনকোড করতে হবে। ব্যাজ কার্যকরভাবে যোগাযোগ নিশ্চিত করতে বিভিন্ন পেলোড কনফিগারেশন পরীক্ষা করা অপরিহার্য। বাস্তব জীবনের পরিস্থিতি, যেমন কর্মচারীরা নিরাপদ এলাকা আনলক করতে NFC ব্যাজ ব্যবহার করে, সঠিক পেলোডের গুরুত্ব তুলে ধরে। 🔐
প্রযুক্তির বাইরে, Apple Wallet এর ইন্টিগ্রেশন প্রক্রিয়া বোঝা গুরুত্বপূর্ণ। Apple Wallet NFC সমর্থন কাস্টম পেলোড পাস, কিন্তু বাস্তবায়ন তাদের নিরাপত্তা প্রোটোকল মেনে চলতে হবে। সঠিক টুল এবং ফ্রেমওয়ার্ক ব্যবহার করে, যেমন Node.js বা Python, ডেভেলপারদের এই পেলোডগুলির তৈরি এবং বৈধতা স্ট্রীমলাইন করতে দেয়। সামঞ্জস্য এবং মাপযোগ্যতার উপর ফোকাস করে, এই সমাধানগুলি শুধুমাত্র তাৎক্ষণিক চ্যালেঞ্জগুলিই সমাধান করে না বরং উন্নত NFC-ভিত্তিক অ্যাক্সেস সিস্টেমগুলির জন্য ভিত্তি স্থাপন করে। 🚀
- NDEF বিন্যাস কি?
- এনডিইএফ ফরম্যাট (এনএফসি ডেটা এক্সচেঞ্জ ফরম্যাট) হল একটি লাইটওয়েট বাইনারি মেসেজ ফরম্যাট যা এনএফসি কমিউনিকেশনে ডেটা গঠন করতে ব্যবহৃত হয়। এটি ARD স্ক্যানারকে কার্যকরভাবে NFC ব্যাজ থেকে ডেটা ব্যাখ্যা করতে দেয়।
- NFC পেলোড তৈরি করার জন্য কোন কমান্ডগুলি অপরিহার্য?
- Node.js-এ, যেমন কমান্ড বিন্যাস জন্য এবং ফাইল তৈরির জন্য গুরুত্বপূর্ণ। পাইথনে, পেলোড সিরিয়ালাইজেশন পরিচালনা করে।
- আমি কিভাবে NFC পেলোড যাচাই করব?
- যেমন একটি বৈধতা ফাংশন ব্যবহার করুন Node.js বা পেলোড ARD স্ক্যানার প্রয়োজনীয়তা পূরণ করে তা নিশ্চিত করতে পাইথনে।
- অ্যাপল ওয়ালেট ইন্টিগ্রেশনের জন্য কি নির্দিষ্ট শংসাপত্রের প্রয়োজন আছে?
- হ্যাঁ, এনএফসি-সক্ষম .pkpass ফাইলগুলি তৈরি এবং স্থাপন করতে আপনাকে অবশ্যই একটি বৈধ Apple বিকাশকারী শংসাপত্র পেতে হবে৷
- আমি কি ARD স্ক্যানার ছাড়া NFC ব্যাজ পরীক্ষা করতে পারি?
- হ্যাঁ, ইমুলেশন টুলস এবং NFC-সক্ষম স্মার্টফোন ব্যাজ স্থাপন করার আগে যোগাযোগ প্রক্রিয়া অনুকরণ করতে সাহায্য করতে পারে।
- NFC পেলোডে কোন ডেটা এনকোড করা উচিত?
- পেলোডে একটি অনন্য শনাক্তকারী বা টোকেন অন্তর্ভুক্ত করা উচিত, যা MIFARE মানগুলির মতো ARD স্ক্যানার প্রোটোকলের সাথে সারিবদ্ধ করার জন্য বিন্যাসিত।
- আমি কিভাবে ব্যাজ শনাক্তকরণ সমস্যা সমাধান করতে পারি?
- NFC পেলোড সঠিক NDEF ফর্ম্যাট ব্যবহার করে এবং সমস্ত প্রয়োজনীয় ডেটা ক্ষেত্র রয়েছে তা যাচাই করুন৷ NFC ফোরাম টেস্ট টুলস এর মতো টুলগুলি ডিবাগিংয়ে সহায়তা করতে পারে৷
- ARD মোবাইল আইডি কি?
- ARD মোবাইল আইডি হল স্মার্টফোনে সংরক্ষিত ভার্চুয়াল ব্যাজ যা অ্যাক্সেস কন্ট্রোল সিস্টেমের জন্য ঐতিহ্যবাহী NFC কার্ড অনুকরণ করে।
- ARD স্ক্যানার কি ব্লুটুথ যোগাযোগ সমর্থন করে?
- হ্যাঁ, নিরাপদ পরিবেশে মাল্টি-মডেল সংযোগের জন্য এআরডি স্ক্যানারগুলি প্রায়শই NFC এবং ব্লুটুথ লো এনার্জি (BLE) একত্রিত করে।
- একই .pkpass ফাইল কি একাধিক স্ক্যানার জুড়ে কাজ করতে পারে?
- হ্যাঁ, যদি স্ক্যানারগুলি একই ISO মান মেনে চলে এবং NFC পেলোড তাদের ডেটা প্রয়োজনীয়তা পূরণ করে৷
ARD স্ক্যানারগুলির সাথে সামঞ্জস্যপূর্ণ একটি Apple Wallet ব্যাজ তৈরি করার জন্য প্রযুক্তিগত মান এবং বাস্তব-জগতের প্রয়োজনীয়তা উভয়ই বোঝার অন্তর্ভুক্ত। এনডিইএফ-এর মতো কাঠামোগত ফর্ম্যাটগুলি ব্যবহার করে এবং আইএসও মান মেনে ডেভেলপাররা ব্যাজ এবং স্ক্যানারগুলির মধ্যে কার্যকর যোগাযোগ নিশ্চিত করতে পারে। এই সমাধানগুলি বিভিন্ন সেটিংসে অ্যাক্সেস নিরাপত্তা বাড়ায়। 🛠️
সাফল্যের চাবিকাঠি হল Apple Wallet এর প্রোটোকলগুলির সাথে সম্মতি বজায় রেখে NFC পেলোডগুলি পরীক্ষা করা এবং অপ্টিমাইজ করা৷ নিরাপদ অফিস বা ইভেন্ট অ্যাক্সেসের জন্যই হোক না কেন, এই প্রযুক্তিগুলি ব্যবহারকারীদের নির্বিঘ্ন, নির্ভরযোগ্য সিস্টেমের সাথে ক্ষমতায়ন করে। নির্ভুলতা এবং সামঞ্জস্যের উপর ফোকাস করে, বিকাশকারীরা আরও স্মার্ট, আরও সমন্বিত সমাধান আনলক করতে পারে।
- NFC ডেটা এক্সচেঞ্জ ফরম্যাট (NDEF) এবং এর কাঠামোর উপর বিস্তারিত ডকুমেন্টেশন থেকে রেফারেন্স করা হয়েছে এনএফসি ফোরাম .
- .pkpass ফাইল তৈরি এবং অ্যাপল ওয়ালেটের সাথে একীভূত করার নির্দেশিকা থেকে উৎস ছিল অ্যাপল ডেভেলপার ওয়ালেট ডকুমেন্টেশন .
- MIFARE চিপ সামঞ্জস্যতা এবং ARD স্ক্যানার মান সম্পর্কে তথ্য প্রাপ্ত করা হয়েছিল NXP সেমিকন্ডাক্টর MIFARE ওভারভিউ .
- ব্লুটুথ লো এনার্জি (বিএলই) এবং এআরডি মোবাইল আইডি কার্যকারিতার অন্তর্দৃষ্টিগুলি থেকে নেওয়া হয়েছিল এআরডি মোবাইল আইডি সলিউশন .
- নিরাপদ অ্যাক্সেসের জন্য বাস্তব-বিশ্ব ব্যবহারের ক্ষেত্রে এবং NFC-সক্ষম ব্যাজগুলির উদাহরণ এখানে উপলব্ধ সামগ্রী দ্বারা অনুপ্রাণিত হয়েছিল এনএফসি ইউজ কেস ব্লগ .