প্রকল্প সম্পর্কে
ParkCore হলো স্বতন্ত্র পার্কিং সুবিধা মালিকদের জন্য তৈরি একটি ফুল-স্ট্যাক পার্কিং অপারেশন অ্যাপ্লিকেশন। এর পরিধি ইচ্ছাকৃতভাবেই সীমিত রাখা হয়েছে: এটি বুকিং মধ্যস্থতা বা অর্থ লেনদেনের পরিবর্তে লটের দৈনন্দিন অবস্থা পরিচালনার কাজ করে। README-তে স্পষ্টভাবে উল্লেখ করা হয়েছে যে এটি কোনো রিজার্ভেশন মার্কেটপ্লেস বা পেমেন্ট প্ল্যাটফর্ম নয়।
এটি যা করে
- পাবলিক ডিসকভারি: যে কেউ একটি রিড-অনলি ক্যাটালগের মাধ্যমে ঠিকানা এবং প্রতি ঘণ্টার হার দিয়ে সক্রিয় পার্কিং সুবিধাগুলো অনুসন্ধান এবং ফিল্টার করতে পারে।
- পার্কিং লাইফসাইকেল: মালিকরা তাদের সুবিধাগুলো পরিচালনা করেন এবং প্রতিটি সুবিধা সক্রিয় কি না, পাবলিকলি দৃশ্যমান কি না এবং নতুন চেক-ইনের জন্য খোলা কি না তা নিয়ন্ত্রণ করেন।
- সেশন অপারেশন: যানবাহন চেক-ইন করা, সক্রিয় সেশন পর্যবেক্ষণ করা, অবস্থান সম্পন্ন বা বাতিল করা এবং সেশনের ইতিহাস পর্যালোচনা করা।
- যানবাহন শনাক্তকরণ: লাইসেন্স প্লেটগুলো নরমালাইজ করা হয় যাতে একটি নির্দিষ্ট পার্কিংয়ের মধ্যে বারবার ভিজিটের জন্য যানবাহনের পরিচয় পুনরায় ব্যবহার করা যায়।
- প্রাইসিং স্ন্যাপশট: চেক-ইনের সময় প্রতি ঘণ্টার হার এবং কারেন্সি সংরক্ষণ করা হয়, যাতে পরবর্তীতে সুবিধার কনফিগারেশন পরিবর্তিত হলেও সম্পন্ন হওয়া মোট বিল সঠিক থাকে।
ইঞ্জিনিয়ারিং পদ্ধতি
ডোমেইন রুলস API বাউন্ডারিতে থাকে: চেক-ইন গ্রহণ করার জন্য একটি পার্কিংকে অবশ্যই সক্রিয় হতে হবে এবং শুধুমাত্র এর মালিকই পার্কিং বা এর সেশনগুলো পরিচালনা করতে পারেন। সিরিয়ালাইজেবল পারসিস্টেন্স ওয়ার্ক এবং একটি ডাটাবেস কনস্ট্রেইনের মাধ্যমে কনকারেন্ট চেক-ইন থেকে ক্যাপাসিটি সুরক্ষিত রাখা হয়, যা একই পার্কিংয়ে ডুপ্লিকেট সক্রিয় যানবাহনের বিরুদ্ধেও সুরক্ষা দেয়।
ওয়েব ক্লায়েন্টটি কন্ট্রাক্ট-ড্রিভেন: TypeScript প্যাকেজ @parkcore/api-client তৈরি করা হয়েছে API-এর OpenAPI আর্টিফ্যাক্ট থেকে এবং pnpm contract:check এর মাধ্যমে API এবং ক্লায়েন্টের মধ্যে কোনো অমিল থাকলে তা শনাক্ত করা হয়। ব্রাউজার অ্যাপ API ইন্টারনালস বা Prisma টাইপ ইমপোর্ট করে না; এটি শুধুমাত্র জেনারেটেড ক্লায়েন্টের মাধ্যমে API-এর সাথে কথা বলে।
ভেরিফিকেশন README-তে উল্লিখিত সিস্টেম বাউন্ডারি অনুযায়ী বিভক্ত: ডোমেইন এবং পারসিস্টেন্স আচরণের জন্য PostgreSQL-ব্যাকড API টেস্ট, কম্পোনেন্ট এবং রুটের জন্য ওয়েব টেস্ট, মালিকের ওয়ার্কফ্লোর জন্য Playwright এবং ডেপ্লয় করা সিস্টেম পরীক্ষা করার জন্য আলাদা রিয়েল-স্ট্যাক চেক।
আর্কিটেকচার এবং স্ট্যাক
এর ফ্লো হলো ব্রাউজার থেকে Vercel-হোস্টেড ওয়েব অ্যাপ (React/Vite এবং জেনারেটেড API ক্লায়েন্ট), সেখান থেকে Render API এবং সবশেষে Neon PostgreSQL। API অ্যাপটি অথেন্টিকেশন, ডোমেইন রুলস, অথরাইজেশন এবং Prisma পারসিস্টেন্স পরিচালনা করে। ওয়েব অ্যাপটি পাবলিক ডিসকভারি এবং মালিকের অপারেশন পরিচালনা করে, যেখানে নেভিগেশনের জন্য React Router এবং সার্ভার স্টেটের জন্য TanStack Query ব্যবহৃত হয়। টুলিংয়ের মধ্যে রয়েছে pnpm workspaces, Vitest, Playwright, ESLint, Prettier এবং Docker Compose; API সাইডে Node.js, Express 5, Prisma, PostgreSQL, Zod এবং OpenAPI ব্যবহৃত হয়েছে।
শুরু করার পদ্ধতি
প্রয়োজনীয়তা হিসেবে Node.js 24, pnpm 10 এবং Docker Desktop প্রয়োজন। API এবং ওয়েব অ্যাপের জন্য প্রদান করা .env.example ফাইলগুলো কপি করার পর, ডকুমেন্ট করা সিকোয়েন্স হলো pnpm install, pnpm docker:up, pnpm db:setup এবং pnpm dev। API পোর্ট 3000-এ এবং ওয়েব অ্যাপ সাধারণত পোর্ট 5173-এ চালু হয়। কোয়ালিটি স্ক্রিপ্টগুলোর মধ্যে ফরম্যাটিং, লিন্টিং, টাইপ চেকিং, কভারেজসহ টেস্ট, Playwright এন্ড-টু-এন্ড রান, কন্ট্রাক্ট চেকিং এবং বিল্ড (যার জন্য VITE_API_URL প্রয়োজন) অন্তর্ভুক্ত রয়েছে।
রিপোজিটরির ডকুমেন্টেশনে প্রজেক্ট স্কোপ, আর্কিটেকচার, ডেভেলপমেন্ট ওয়ার্কফ্লো, টেস্টিং এবং ডেপ্লয়মেন্ট কভার করা হয়েছে। ওয়েব অ্যাপের লাইভ ডেমো এবং একটি API হেলথ এন্ডপয়েন্টের লিঙ্ক README-তে দেওয়া আছে।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.