যদিও আমি MERN Stack নিয়ে কাজ করি, তবে আজকে আপনাদের সাথে মজার একটা প্রজেক্টের কথা শেয়ার করবো যা সম্পূর্ণ আমার স্ট্যাকের বাহিরে ছিল। পাশাপাশি স্ট্যাকের বাহিরে গিয়ে কাজ করা কতটা চ্যালেঞ্জিং এবং কি কি সমস্যার সম্মুখীন হতে হয় এবং তা কিভাবে সমাধান করতে তা নিয়ে আজকের ব্লগ।
ক্লায়েন্ট ছিলো ইংল্যান্ডের, প্রথমত আমার সাথে কথা হয়েছিলো ছোট একটি ফিগমা ফাইল কে HTML ও CSS এ কনভার্ট করা। শর্ত ছিলো কোনো রকম ফ্রেমওয়ার্ক ব্যবহার করা যাবে না একদম পিউর HTML ও CSS দিয়ে করতে হবে পাশাপাশি রেস্পন্সিভও। প্রজেক্টটি নিয়ে নিলাম কেননা আমার জন্য তেমন সমস্যার ছিলো না, রাতের মধ্যে প্রজেক্টের ৮০% শেষ করে লাইভ লিংক পাঠিয়ে দিই এবং পরের দিন ক্লায়েন্ট “ঠিক আছে” বলে রিপ্লাই দিলো। ঐ দিনেই বাকি ২০% শেষ করে নিই।
বিকালে মিটিং, ক্লায়েন্ট নতুন রিকোয়ারমেন্ট নিয়ে হাজির। ওহ! একটা কথা তো বলা হয় নি, টেম্পলেটটি ছিলো “ইউজার লিডারবোর্ড”। কনভার্টকৃত টেম্পলেটটি ওয়ার্ডপ্রেস প্লাগিনে তৈরি করে দিতে হবে, সমস্যা এখান থেকে শুরু……
ঐদিন শুধু বললাম রিকোয়ারমেন্ট পাঠিয়ে দিতে, রিকোয়ারমেন্ট দেখে তারপর আমি জানাবো। কিছুক্ষণের মধ্যে রিকোয়ারমেন্ট হাজির, তাদের মধ্যে উল্লেখযোগ্য কয়েকটি রিকোয়ারমেন্ট –
- প্লাগিন ড্যাশবোর্ড থেকে পরিচালনা করা যাবে।
- একটি ইনপুট বক্স থাকবে যা একটি CSV ফাইল ইনপুট নিবে।
- ইনপুটকৃত CSV ফাইলের মধ্যে, প্রত্যেক ইউজারের ক্রয়কৃত আইটেমগুলো কে গ্রুপ করে তাদের মধ্যে (A4, Handling Fee) বাদ দিতে হবে এবং গ্রুপকৃত আইটেমগুলোর প্রত্যেক ৪ টির জন্য ১ প্যাক কাউন্ট হবে এবং কোনো ইউজার যদি ৪ টির কম হয় তাও প্যাকের আওতায় থাকবে (অর্থ্যাৎ, 1, 2, 3, 4) এরা সবাই ১ প্যাকের আওতাভুক্ত। যদি কোনো ইউজার ৫টি পণ্য কিনে তাহলে সে ২ প্যাকের আওতাভুক্ত যা ৬,৭,৮ পর্যন্ত চলমান।
- CSV তে থাকা প্রত্যেক কোম্পানির নামে একটি ডিরেক্টরি তৈরি হবে যা ইউনিক URL দিয়ে এক্সেসিবল (URL ফরম্যাট – wp.com/timestamp/company-name)।
- যতগুলো কোম্পানি থাকবে প্রত্যেকের জন্য আলাদা আলাদা লিংক এবং পাসওয়ার্ড তৈরি করতে হবে, যা ড্যাশবোর্ডে সেইভ থাকবে এবং এডমিন প্রত্যেক কোম্পানির লিংক এবং পাসওয়ার্ড দেখতে পারবে।
- প্রত্যেক CSV ফাইল আপলোডে লিংক এবং পাসওয়ার্ড ইউনিক থাকবে, পূর্বের লিংক এবং পাসওয়ার্ডের সাথে মিলবে না।
- যখন কোনো কোম্পানি তার লিংকে প্রবেশ করবে তখন তাকে এডমিন কর্তৃক পাসওয়ার্ডের মাধ্যমে প্রবেশ করতে হবে এবং সেখানে ঐ নির্দিষ্ট কোম্পানির ইউজারের ডাটা দেখাবে।
- ইউজারের মধ্যে যাদের প্যাক সংখ্যা বেশি তাদের থেকে প্রথম তিনজন কে বের করে নিয়ে কার্ড আকারে দেখাতে হবে এবং প্রথম যে হবে তাকে ডাইনামিক ক্রাউন এবং সবার মাঝখানে রাখতে হবে।
- প্রত্যেক ইউজারের জন্য ডাইনামিক ইমেইজ জেনারেট করতে হবে।
সমস্যা ও সমাধান –
আমি রিকোয়ারমেন্ট কয়েকবার পড়ে বুঝতে পারলাম যে এই কাজটি আমার দ্বারা হবে না, কেননা ক্লায়েন্টের ওয়ার্ডপ্রেস প্লাগিন লাগবে যা আমার স্ট্যাকের বাহিরে। পরের ২ দিন পর আমাদের মিটিং হয়, আমি বললাম “যে আপনার রিকোয়ারমেন্ট আমি দেখেছি এবং প্রজেক্ট করতে সমস্যা হবে না, কিন্তু সমস্যা হচ্ছে স্ট্যাক নিয়ে। এই স্ট্যাক নিয়ে আমি পূর্বে কোনো কাজ করিনা তবে আপনি যদি স্ট্যাক পরিবর্তন করেন তাহলে আমি করতে পারবো” কিন্তু ক্লায়েন্ট ওয়ার্ডপ্রেসে করবে এর বাহিরে যাবে না এবং আমি যেন এই কাজ করি।
কি আর করার, হ্যাঁ বলে মিটিং শেষ করলাম। স্মরণীয় যে ২০১৮ সালের দিকে আমি ওয়ার্ডপ্রেস থিম কাস্টমাইজেশনের কাজ শিখেছি কিন্তু করা হয় নি পারিবারিক ব্যাবসায় চলে আসতে হয়েছে। ঐ বিশ্বাসে শুরু করলাম, লোকালি ওয়ার্ডপ্রেস ডাউনলোড, XAMPP সেটাপ করলাম। ওয়ার্ডপ্রেস প্লাগিন তৈরি করার কিছু জানি না কিভাবে শুরু করতে হয় তা নিয়ে খুব প্যারায় ছিলাম। তারপর ইউটিউবে প্লাগিন তৈরি করার কয়েকটা ক্র্যাশ কোর্স দেখলাম এবং পাশাপাশি কাজও শুরু করলাম। রিয়্যাক্ট প্রজেক্টে যেমন কোনো কিছু আপডেট হলে সাথে লাইভেও আপডেট হয়ে যায় (HMR) কিন্তু ওয়ার্ডপ্রেসে হয় না (এমন কিছু আছে কি বা নাই তাও জানিনা) এটা নিয়ে বারবার প্যারা খেতে হয়েছে। প্রত্যেকবার CSV ফাইল আপলোড দেওয়া এবং লাইভ দেখা খুব যন্ত্রণাদায়ক ছিলো। মাঝেমধ্যে মনে হয়েছিলো প্রজেক্ট আর করবো না ছেড়ে দেই, কিন্তু নতুন কিছু শিখতেছি এই বলে মন কে আশ্বস্ত করেছি। প্রতিটি ধাপ ছিলো আমার জন্য চ্যালেঞ্জিং তারপরও হাল ছেড়ে না দিয়ে ক্লায়েন্টের রিকোয়ারমেন্ট অনুযায়ী শতভাগ সন্তুষ্টি নিয়ে প্রজেক্ট শেষ করি।
যদিও সংক্ষিপ্তাকারে বলা, কিন্তু তা নয় এই প্রজেক্টটি করতে প্রায় ২৬+ দিন সময় লেগেছে। এখানে প্রতিদিন আমাকে শিখতে হয়েছে এবং কিভাবে তা ইমপ্লিমেন্ট করতে হয় তা নিয়ে ভাবতে হয়েছে এবং অবশেষ সফলও হয়েছে।
প্রজেক্ট
নমুনাঃ
মাঝেমধ্যে স্ট্যাকের বাহিরে গিয়ে কাজ করাটা খারাপ ও ভয়ের কিছু না বরং আনন্দেরও বটে।