সরকারি পলিটেকনিক — দ্বিভাষিক আইডি কার্ড ERP
একটি সরকারি পলিটেকনিকের জন্য দ্বিভাষিক আইডি কার্ড ERP — প্রিন্ট-গ্রেড CR80 PDF, পাবলিক QR যাচাই এবং SaaS-রেডি কোর।
- লাইভ
- মে ২০২৬ থেকে
- ৮ হাজার+ শিক্ষার্থী

সংখ্যায়
- শিক্ষার্থী ভর্তি
- 8K+
- বিভাগ
- 12
- এন্টিটি স্কিমা
- 9
- ভাষা
- 2
01সমস্যা
প্রায় আট হাজার শিক্ষার্থী এবং বারোটি বিভাগ নিয়ে চলা একটি সরকারি পলিটেকনিক ইনস্টিটিউট ভর্তি চালাচ্ছিল Google Form-এ আর আইডি কার্ড তৈরি করছিল অফলাইনে। কার্ড দ্বিভাষিক হতে হবে (বাংলা মূল, ইংরেজি ফলব্যাক), ৮৭×৫৪মিমি CR80 ডাই-সাব প্রিন্টারের জন্য পিক্সেল-নির্ভুল, আর এমন বিশ্বস্ত যে রাস্তায় কেউ একটা কার্ড যাচাই করতে পারবে। কোনো কিছুই Google Form-এ মাপতো না — কোনো জেনেরিক SIS-এও মাপতো না। পোর্টালকে সামলাতে হবে বাল্ক কার্ড ইস্যু, শিক্ষার্থীর সেলফ-রেজিস্ট্রেশন, হারানো কার্ড রিপ্রিন্ট রিকোয়েস্ট, এবং প্রতিটি কার্ডে QR-এর পেছনে একটি পাবলিক verify URL।
02যা তৈরি করেছি
- 01
প্রিন্ট-গ্রেড দ্বিভাষিক আইডি কার্ড পাইপলাইন — HiTi CS-2 ডাই-সাব প্রিন্টারের জন্য ৮৭×৫৪মিমি CR80 কার্ড লেআউট, PDF-এ Hind Siliguri আর Plus Jakarta Sans এম্বেডেড, যাতে ব্রাউজার প্রিভিউ → PDF → ZIP → প্রিন্টার ড্রাইভার — প্রতিটি ধাপেই বাংলা ও ইংরেজি সঠিক রেন্ডার হয়।
- 02
আইডি কার্ড ডিজাইন কাস্টমাইজেশন — অ্যাকসেন্ট রঙ, ল্যান্ডস্কেপ বা পোর্ট্রেট ওরিয়েন্টেশন, ইনস্টিটিউট তথ্য, বিভাগীয় স্বাক্ষর ম্যানেজমেন্ট এবং বাল্ক এক্সপোর্ট — যাতে অথরিটি স্টাফরা ইঞ্জিনিয়ারিং না ছুঁয়েই কার্ড টিউন করতে পারেন।
- 03
একটি one-shot ইম্পোর্টার যা পুরোনো Google Form CSV এক্সপোর্টকে যাচাইকৃত স্টুডেন্ট রেকর্ডে রূপান্তর করে — কলাম ম্যাপিং, বাংলা নাম নরমালাইজেশন, প্রতি-সারি ত্রুটি রিপোর্ট এবং ডুপ্লিকেট রোল/রেজিস্ট্রেশন সুরক্ষা — যাতে মাইগ্রেশন প্রথমবারেই পরিষ্কারভাবে চলে।
- 04
হারানো কার্ড / রিপ্রিন্ট রিকোয়েস্ট ফ্লো — শিক্ষার্থী নিজের অ্যাকাউন্ট থেকে রিকোয়েস্ট তোলে, অথরিটি স্টাফ কিউতে রিভিউ করে, অনুমোদনে কার্ড ভার্সন বাড়ে আর অন্য কোনো স্টুডেন্ট ডেটা স্পর্শ না করেই নতুন PDF ইস্যু হয়।
- 05
একটি approvalRequests টেবিলে অনুমোদন স্টেট মেশিন — সেলফ-রেজিস্টার্ড শিক্ষার্থীরা প্রোফাইল জমা দেয়, অথরিটি বাল্ক-অনুমোদন করে, প্রোফাইল আপডেট ডিফ হিসেবে কিউতে যায়, এবং প্রতিটি গৃহীত এডিটে cardVersion বাড়ে — যাতে রিইস্যুকৃত কার্ড অডিটযোগ্য থাকে।
- 06
/verify/[id]-এ পাবলিক QR-কোডেড verify রুট — প্রতিটি ছাপানো কার্ডে স্টুডেন্ট রেকর্ডের QR এনকোডিং, যাতে ফোন থাকা যে কেউ একটি কার্ড স্ক্যান করে অ্যাকাউন্ট ছাড়াই লাইভ ডেটাবেসের বিপরীতে ধারককে নিশ্চিত করতে পারে।
- 07
মাল্টি-টেন্যান্ট কোরে সিঙ্গল-টেন্যান্ট ফ্ল্যাগ — একই Drizzle স্কিমা আজ একটি ইনস্টিটিউট হিসেবে চলে, কিন্তু প্রতিটি টেবিলে tenantId আছে এবং প্রতিটি কোয়েরি একটি হেল্পারের মাধ্যমে স্কোপ করে — যাতে স্কিমা মাইগ্রেশন ছাড়াই প্ল্যাটফর্মটি SaaS পলিটেকনিক ERP-তে উঠে যায়।
03স্ট্যাক
পাবলিক + শিক্ষার্থী
- Next.js 15
- React 19
- Tailwind 4
- next-intl
- Hind Siliguri
- Plus Jakarta Sans
- RTK Query
- shadcn/ui
অথরিটি + অ্যাডমিন
- Better Auth
- 5-role RBAC
- Invitation flow
- TanStack Table
- react-hook-form
- sharp
- html2canvas
- JSZip
ডেটা + প্রিন্ট পাইপলাইন
- NestJS 10
- Drizzle ORM
- PostgreSQL
- Puppeteer
- 9 entity schemas
- Single-tenant flag
- Multer + sharp
- Public QR verify
04স্ক্রিনশট
05কঠিন অংশ
কঠিন অংশটি স্কিমা ছিল না — ছিল স্ক্রিন থেকে প্রিন্ট পর্যন্ত প্রতিটি ধাপে একটি বাংলা আইডি কার্ডকে অক্ষত রাখা। CR80 ডাই-সাব প্রিন্টার ক্ষমাহীন: ৮৭×৫৪মিমি ফিজিক্যাল কাগজ, সাব-পিক্সেল রেন্ডারিং, আর কনজাংক্ট লিগেচার সমেত একটি বাংলা স্ক্রিপ্ট — যা বেশিরভাগ ওয়েবফন্ট নষ্ট করে। বাংলার জন্য Hind Siliguri আর ইংরেজির জন্য Plus Jakarta Sans সরাসরি PDF-এ এম্বেড করতে হয়েছে, HiTi CS-2 ড্রাইভারের বিরুদ্ধে যাচাই করতে হয়েছে, এবং ল্যান্ডস্কেপ ও পোর্ট্রেট দুই ভ্যারিয়েন্ট ডিজাইন করতে হয়েছে — যাতে একই স্টুডেন্ট রেকর্ড দু'টি ওরিয়েন্টেশনেই সঠিক কার্ড তৈরি করে। ওয়েবে প্রিন্ট-গ্রেড টাইপোগ্রাফি আর প্রিন্টে প্রিন্ট-গ্রেড টাইপোগ্রাফি ভিন্ন সমস্যা — আর বাংলা দু'টিকেই ইংরেজির চেয়ে কঠিন করে।
দ্বিতীয় কঠিন অংশ ছিল পুরোনো আর নতুন জগতের মধ্যে সেতু। পলিটেকনিক বছরের পর বছর Google Form-এ ভর্তি চালাচ্ছিল, তাই মাইগ্রেশন একটি বাস্তব CSV-কে বাস্তব ডেটাবেসে আনতে হবে — হাতে নতুন করে এন্ট্রি নয়। একটি one-shot ইম্পোর্টার বানিয়েছি যা Google Form কলাম হেডার Drizzle স্কিমায় ম্যাপ করে, বাংলা নাম নরমালাইজ করে, বিভাগ ও ব্লাড গ্রুপ যাচাই করে, প্রতিটি খারাপ সারি সামনে আনে, এবং ডুপ্লিকেট রোল বা রেজিস্ট্রেশন ইম্পোর্ট করতে অস্বীকার করে। সেটি একবার চলার পরে ইনস্টিটিউট Google Form ছেড়ে পোর্টালকে রেকর্ড-অফ-সিস্টেম হিসেবে বিশ্বাস করতে পারল — আর পাবলিক QR verify রুট ফিজিক্যাল কার্ডের বিশ্বাসটি পূর্ণ করল।
এবার আপনার পালা
আপনার অপারেশনের জন্য এরকম তৈরি করতে চান?
আমরা বছরে অল্প কিছু কাস্টম প্রকল্প গ্রহণ করি। এটা আপনার সমস্যার কাছাকাছি মনে হলে জানান।