ইভেন্ট ও খেলাধুলা
নর্দার্ন ম্যারাথন ২০২৬ রেজিস্ট্রেশন সিস্টেম
সৈয়দপুরের একটি AIMS সদস্য ও ওয়ার্ল্ড অ্যাথলেটিক্স সার্টিফায়েড রেসের জন্য রেজিস্ট্রেশন, পেমেন্ট ও রেস-ডে চেক-ইন — রেজিস্ট্রেশন খোলার প্রথম মিনিটের ভিড় সামলাতে বানানো, যাতে একই আসন দুবার বিক্রি না হয় আর কোনো পেমেন্ট না হারায়।

এক নজরে
- প্রকাশিত প্রতিটি ক্যাটাগরি, একটি আসনও দুবার বিক্রি হয়নি
- সব বিক্রি
- আয়োজকের WooCommerce স্টোর থেকে স্থানান্তরিত রেজিস্ট্রেশন
- ১,০৭৭
- ইন্টারনেট না থাকলেও রেসের দিনের কিট স্ক্যানিং চলে
- অফলাইন
নর্দার্ন ম্যারাথনের জন্য BetterSoftZ কী তৈরি করেছে?
সৈয়দপুর রানার্স আয়োজিত নর্দার্ন ম্যারাথন ২০২৬-এর পুরো রেজিস্ট্রেশন সিস্টেম BetterSoftZ তৈরি করেছে: রেসের ওয়েবসাইট, আগে এলে আগে পাবেন ভিত্তিতে খোলার জন্য ভার্চুয়াল ওয়েটিং রুম, SSLCommerz পেমেন্ট, স্বয়ংক্রিয় বিব নম্বর ও কিউআর ই-টিকিট, অ্যাডমিন প্যানেল, আর রেসের দিন কিট বিতরণের জন্য ইন্টারনেট ছাড়াও চলা স্ক্যানার অ্যাপ। প্রকাশিত প্রতিটি ক্যাটাগরি কোনো ওভারসেল ছাড়াই বিক্রি হয়ে গেছে।
প্রয়োজন কী ছিল
নর্দার্ন ম্যারাথনের রেজিস্ট্রেশন খোলে আগে এলে আগে পাবেন ভিত্তিতে। খোলার মিনিটেই রানাররা একসাথে আসেন, অনেকে মোবাইল ডেটায় একই ক্যারিয়ারের আইপি ঠিকানার পেছনে, আর আগের WordPress ও WooCommerce সেটআপ এই চাপের জন্য তৈরি ছিল না। খোলার মুহূর্তে চাপ সামলাতে না পারলে পেজ লোড হয় না, একই আসন দুবার বিক্রি হয়, আর অসম্পূর্ণ রেজিস্ট্রেশনের টাকা কেটে যায় — ছোট একটি স্বেচ্ছাসেবী আয়োজক দলের জন্য প্রতিটিই একটি নতুন ঝামেলা।
ক্র্যাশের বদলে ওয়েটিং রুম
খোলার সময় আসা রানাররা রেজিস্ট্রেশন ফর্মে চাপ না দিয়ে একটি সারিতে যোগ দেন। তাঁদের অবস্থান স্থির ও দৃশ্যমান থাকে, আর সারির স্ট্যাটাস Cloudflare-এ ক্যাশ হয়, তাই সারি নিজে প্রায় কোনো চাপ তৈরি করে না। বাকি আসনের সীমার মধ্যে নিয়ন্ত্রিত হারে মানুষকে ভেতরে নেওয়া হয়, আর কোনো ক্যাটাগরি বিক্রি হয়ে গেলে সঙ্গে সঙ্গে নেওয়া বন্ধ হয়। অপেক্ষার সময় রানাররা ফর্ম পূরণ করে রাখতে পারেন, তাই পেমেন্টের অংশে কয়েক সেকেন্ড লাগে।
রেজিস্ট্রেশন খোলার আগে আসল ক্যাটাগরিগুলো দিয়ে আমরা একটি স্ক্রিপ্টেড ভিড়ের পরীক্ষা চালাই। তাতে দুটি বাগ ধরা পড়ে, আর একজন রানার আসার আগেই দুটোই ঠিক করা হয়।
একটি আসনও দুবার বিক্রি নয়
ওভারসেল ঠেকানো হয় দুই স্তরে। ক্যাটাগরি পূর্ণ হলে Redis সঙ্গে সঙ্গে অনুরোধ ফিরিয়ে দেয়। চূড়ান্ত সিদ্ধান্ত নেয় PostgreSQL — শর্তসাপেক্ষ আপডেট ও চেক কনস্ট্রেইন্ট দিয়ে, তাই ওপরের স্তরে যা-ই ঘটুক, ডেটাবেস যত আসন আছে তার বেশি রেকর্ড করতে পারে না।
নিজে থেকেই হিসাব মেলে এমন পেমেন্ট
পেমেন্ট হয় SSLCommerz-এর মাধ্যমে। গেটওয়ের কলব্যাক, ব্রাউজার রিডাইরেক্ট, ব্যাকগ্রাউন্ড রিকনসিলিয়েশন জব আর হোল্ডের সময়সীমা — সবাই একই পেমেন্টের খবর দিতে পারে, তাই প্রতিটি পথ গেটওয়ের সাথে লেনদেন আবার যাচাই করে এবং একবারই প্রক্রিয়া করে। দেরিতে আসা পেমেন্ট হয় সংরক্ষিত ছোট বাফার ব্যবহার করে, নয়তো স্বয়ংক্রিয়ভাবে ফেরত যায়।
পেমেন্টের পর: অ্যাকাউন্ট, বিব ও ই-টিকিট
পেমেন্ট করলেই রানারের অ্যাকাউন্ট তৈরি হয়। পাসওয়ার্ড সেট করে ফোন নম্বর যাচাই করলে তিনি পান বিব নম্বর, স্বাক্ষরিত কিউআর কোড ও পিডিএফ ই-টিকিট। ইমেইল ও এসএমএস যায় পুনরায় চেষ্টার ব্যবস্থাসহ একটি আউটবক্সের মাধ্যমে, তাই কোনো প্রোভাইডার বিকল হলে বার্তা দেরিতে যায়, হারায় না। রানাররা ইমেইলে পাওয়া এককালীন কোড দিয়েও সাইন ইন করতে পারেন।
রেসের দিন, ইন্টারনেট ছাড়া
কিট বিতরণ চলে স্বেচ্ছাসেবকদের ফোনে ইনস্টল করা একটি স্ক্যানার অ্যাপে। ইন্টারনেট না থাকলেও স্ক্যান চলতে থাকে, নেটওয়ার্ক ফিরলে সিঙ্ক হয়। প্রতিটি রানারের প্রতিটি আইটেম একবারই দেওয়া যায় — এটি ডেটাবেস নিশ্চিত করে, তাই দুটি আলাদা ডেস্ক থেকে একই টি-শার্ট বা মেডেল দুবার দেওয়া সম্ভব নয়।
WordPress থেকে সরে আসা
আয়োজকের আগের WooCommerce রেজিস্ট্রেশনগুলো নতুন সিস্টেমে স্থানান্তর করা হয়েছে: ২০২৬ সালের রেসের ২২৭টি এবং ২০২৫ সালের নর্দার্ন হাফ ম্যারাথনের ৮৫০টি, যা এখন একটি পাবলিক পূর্ববর্তী-ইভেন্ট পেজে দেখা যায়। ইমপোর্ট স্ক্রিপ্টগুলো বারবার চালালেও একই ফল দেয় এবং শুধু নতুন রেকর্ড যোগ করে, তাই নিরাপদে আবার চালানো যায়। যেসব অর্ডারে মানুষের সিদ্ধান্ত দরকার ছিল, সেগুলো অনুমান না করে আয়োজকের কাছে তালিকা আকারে পাঠানো হয়েছে।
সাধারণ জিজ্ঞাসা
রেজিস্ট্রেশন খোলার সময় ওভারসেল কীভাবে ঠেকানো হয়?
দুই স্তরে। ক্যাটাগরি পূর্ণ হলে Redis সঙ্গে সঙ্গে অনুরোধ ফিরিয়ে দেয়, আর চূড়ান্ত সিদ্ধান্ত নেয় PostgreSQL — শর্তসাপেক্ষ আপডেট ও ডেটাবেস কনস্ট্রেইন্টের মাধ্যমে, যাতে আসনের সংখ্যা কখনো শূন্যের নিচে না নামে। অন্য সব সুরক্ষা ব্যর্থ হলেও ডেটাবেস এমন আসন রেকর্ড করতে পারে না যা নেই।
স্লটের সময় শেষ হওয়ার পর কেউ পেমেন্ট করলে কী হয়?
গেটওয়ের কলব্যাক, ব্রাউজার রিডাইরেক্ট বা রিকনসিলিয়েশন জব — যেখান থেকেই পেমেন্টের নিশ্চিতকরণ আসুক, প্রতিবার SSLCommerz-এর সাথে যাচাই করে একবারই প্রক্রিয়া করা হয়। দেরিতে আসা পেমেন্ট হয় সংরক্ষিত ছোট একটি বাফার থেকে আসন পায়, নয়তো স্বয়ংক্রিয়ভাবে ফেরত যায় — রেজিস্ট্রেশন ছাড়া কারও টাকা কাটা হয় না।
কনসার্ট, কনফারেন্স বা পরীক্ষার জন্যও কি একই পদ্ধতি চলবে?
হ্যাঁ। ওয়েটিং রুম, আসনের হিসাব আর পেমেন্টের অংশগুলো জানে না যে তারা রেসের আসন বিক্রি করছে। নির্দিষ্ট সময়ে সীমিত আসন খোলে এমন যেকোনো ইভেন্টে একই সমস্যা হয়, আর আমাদের ইভেন্ট ম্যানেজমেন্ট সিস্টেম একই নকশায় তৈরি।
আপনারও কি এমন কিছু তৈরি করতে হবে?
কী তৈরি করতে চান তা বলুন। প্রথম ধাপে কী হবে আর কত খরচ, আমরা লিখে জানাব।