মাল্টি-টেন্যান্ট রিটেইল POS SaaS
রিটেইলের জন্য একটি মাল্টি-টেন্যান্ট POS — প্রোডাক্ট আইটেম শিডিউলিং, হ্যাপি-আওয়ার প্রাইসিং মডেল, স্প্লিট-পেমেন্ট লজিক আর PIN-সুরক্ষিত গ্র্যানুলার RBAC। SELISE Digital Platforms-এ সহ-আর্কিটেক্টেড।
- লাইভ
- মাল্টি-টেন্যান্ট
- ৫-রোল PIN RBAC

সংখ্যায়
- টেন্যান্সি মডেল
- Multi
- রোল স্তর
- 5
- লগইন পদ্ধতি
- PIN
- পেমেন্ট ফ্লো
- Split
01সমস্যা
মাল্টি-ব্রাঞ্চ রিটেইল আর হসপিটালিটি টিম চলে হার্ডওয়্যার টিল, কাগজের শিডিউল আর এমন POS সিস্টেমের উপর যা প্রতিটি ভেন্যুকে আলাদা ইনস্টল হিসেবে দেখে। দশটি ব্রাঞ্চে একটি হ্যাপি-আওয়ার রুল যোগ করা মানে দশ-ব্রাঞ্চের কাজ; একটি চেক একাধিক পেমেন্ট পদ্ধতিতে ভাগ করা মানে স্প্রেডশিট ওয়ার্কঅ্যারাউন্ড; ক্যাশিয়ার আর ম্যানেজার রোলের মধ্যে PIN-সুইচিং হয় নেই, নাহয় নিরাপত্তা ছিদ্র। ব্রিফ ছিল একটি একক মাল্টি-টেন্যান্ট SaaS তৈরি করা যেখানে এক অপারেটর অনেক ভেন্যু চালান — টেন্যান্টের মধ্যে পূর্ণ ডেটা আইসোলেশন, প্রতি টেন্যান্টে শিডিউল করা হ্যাপি-আওয়ার রুল, পরিষ্কার স্প্লিট পেমেন্ট আর অডিট টিম বিশ্বাস করতে পারে এমন PIN-সুরক্ষিত রোল সুইচিং সহ।
02যা তৈরি করেছি
- 01
PostgreSQL স্কিমা ব্যবহার করে একটি সম্পূর্ণ মাল্টি-টেন্যান্ট ডেটা আইসোলেশন স্তর — প্রতিটি কোয়েরি টেন্যান্ট সীমার মধ্যে দিয়ে স্কোপ করে আর এক ভেন্যুর ডেটা অন্যটিতে যাওয়ার কোনো পথ নেই।
- 02
প্রতি টেন্যান্টে কনফিগারযোগ্য টাইম উইন্ডোসহ একটি হ্যাপি-আওয়ার প্রাইসিং ইঞ্জিন — প্রতিটি প্রোডাক্ট রি-ডিপ্লয় বা প্রতি-ভেন্যু ওভাররাইড ছাড়াই প্রাইসিং রুলে শিডিউল করা যায়।
- 03
একক চেকে একাধিক পেমেন্ট পদ্ধতিতে স্প্লিট-পেমেন্ট ফ্লো — ক্যাশ + কার্ড + গিফট, প্রতি-টেন্যান্ট পেমেন্ট লেজারে লগ-করা রিকনসিলিয়েশনসহ।
- 04
PIN-সুরক্ষিত রোল সুইচিংসহ গ্র্যানুলার Role-Based Access Control — ক্যাশিয়ার, সুপারভাইজার, ম্যানেজার আর অ্যাডমিন স্তর, প্রতি-টেন্যান্ট পারমিশন ওভাররাইড আর প্রতিটি রোল এসকেলেশনে অডিট ট্রেইল।
- 05
স্ট্যান্ডঅ্যালোন কম্পোনেন্ট আর সিগনাল স্টোরের উপর গড়া একটি Angular 20 ক্যাশিয়ার UI, যাতে টার্মিনাল উচ্চ থ্রুপুটে রেসপনসিভ থাকে এবং বিক্রয় খরচকারী রি-রেন্ডার ছাড়াই আপডেট প্রবাহিত হয়।
- 06
একটি টেন্যান্ট অনবোর্ডিং ফ্লো যা একটি নতুন PostgreSQL স্কিমা প্রভিশন করে, ডিফল্ট রোল সেট সিড করে, আর একজন অপারেটরকে ইঞ্জিনিয়ারিং ছাড়াই অ্যাডমিন কনসোল থেকে নতুন ভেন্যু চালু করতে দেয়।
03স্ট্যাক
ক্যাশিয়ার + ম্যানেজার
- Angular 20
- TypeScript
- RxJS
- Reactive forms
- Standalone components
- Signal store
- Material
- Tailwind
টেন্যান্ট অ্যাডমিন
- PIN session
- 5-role RBAC
- Per-tenant role config
- Audit log
- Tenant onboarding
- Schedule editor
- Pricing window editor
- Split-payment console
ডেটা + প্রাইসিং ইঞ্জিন
- PostgreSQL schemas
- Tenant isolation
- Drizzle / TypeORM
- Happy-hour engine
- Split-payment ledger
- REST + DTO validation
- JWT + refresh
- Audit trail
04কঠিন অংশ
কঠিনতম অংশ ছিল মাল্টি-টেন্যান্সিকে স্কিমা পর্যন্ত প্রকৃতই বাস্তব করা — অথচ ক্যাশিয়ার UI-কে ব্যস্ত সময়ের জন্য যথেষ্ট দ্রুত রাখা। PostgreSQL স্কিমা পরিষ্কার টেন্যান্ট আইসোলেশন দিয়েছে, কিন্তু প্রতিটি কোয়েরি পথকে টেন্যান্ট সীমার মধ্যে স্কোপ করতে হয়েছে এমন একটি ভারী ORM স্তর জুড়ে না নিয়ে যা টার্মিনালে মিলিসেকেন্ড খরচ করবে। প্রাইসিং ইঞ্জিনকে কার্ট ক্যালকুলেশনে হ্যাপি-আওয়ার উইন্ডো ভাঁজ করতে হবে প্রতি ট্যাপে সার্ভার রাউন্ড-ট্রিপ ছাড়াই — মানে ক্লায়েন্টে টাইম-উইন্ডো লজিক ঠেলে দেওয়া আর সার্ভারে একটিমাত্র কন্ট্র্যাক্ট-টেস্টেড সোর্স অফ ট্রুথ রাখা।
দ্বিতীয় কঠিন অংশ ছিল PIN-সুরক্ষিত রোল সুইচ। একটি POS টার্মিনাল সারাদিন একটি ভেন্যুতে লগ-ইন থাকে, কিন্তু ক্যাশিয়ার, সুপারভাইজার আর ম্যানেজার সবাই একটি ট্রানজ্যাকশনের মধ্যেই এটি স্পর্শ করেন — একজন ম্যানেজার ডিসকাউন্ট অনুমোদন, একজন সুপারভাইজার ভয়েড অনুমোদন, একজন ক্যাশিয়ার বিক্রয় সম্পন্ন। রোল সুইচ করা মানে লগ-আউট হওয়া হতে পারে না; এটি হতে হবে প্রতি-টেন্যান্ট রোল পলিসির সঙ্গে যুক্ত একটি PIN-বাউন্ড এসকেলেশন, প্রতিটি ধাপে একটি অডিট সারি লেখা সহ। মানে রোল অথরিটি সেশন স্তরে থাকে, কিন্তু প্রতিটি প্রিভিলেজড অ্যাকশন লাইভ পলিসি চেক করে — আর অডিট ট্রেইল কোন মানুষ এটি ট্রিগার করেছেন তাঁর নাম লেখে।
এবার আপনার পালা
আপনার অপারেশনের জন্য এরকম তৈরি করতে চান?
আমরা বছরে অল্প কিছু কাস্টম প্রকল্প গ্রহণ করি। এটা আপনার সমস্যার কাছাকাছি মনে হলে জানান।