منصوبے کے بارے میں
ParkCore ایک فل اسٹیک پارکنگ آپریشنز ایپلی کیشن ہے جس کا مقصد آزاد پارکنگ سہولیات کے مالکان ہیں۔ اس کا دائرہ کار جان بوجھ کر محدود رکھا گیا ہے: بکنگز کی بروکرنگ یا پیسوں کے لین دین کے بجائے لاٹ کی روزمرہ کی حالت کو چلانا۔ README میں واضح طور پر بیان کیا گیا ہے کہ یہ ریزرویشن مارکیٹ پلیس یا ادائیگی کا پلیٹ فارم نہیں ہے۔
یہ کیا کرتا ہے
- پبلک ڈسکوری: کوئی بھی شخص ریڈ-اونلی کیٹلاگ کے ذریعے ایڈریس اور فی گھنٹہ ریٹ کی بنیاد پر فعال پارکنگ سہولیات کو تلاش اور فلٹر کر سکتا ہے۔
- پارکنگ لائف سائیکل: مالکان اپنی سہولیات کا انتظام کرتے ہیں اور اس بات کو کنٹرول کرتے ہیں کہ آیا ہر ایک فعال ہے، عوامی طور پر نظر آتی ہے، اور نئے چیک-اِن کے لیے کھلی ہے۔
- سیشن آپریشنز: گاڑی کو چیک-اِن کریں، فعال سیشنز پر نظر رکھیں، قیام کو مکمل یا منسوخ کریں، اور سیشن کی تاریخ کا جائزہ لیں۔
- گاڑی کی شناخت: لائسنس پلیٹوں کو نارملائز کیا جاتا ہے تاکہ ایک گاڑی کی شناخت کو کسی given پارکنگ میں بار بار آنے والی وزٹ کے لیے دوبارہ استعمال کیا جا سکے۔
- پرائسنگ اسنیپ شاٹس: چیک-اِن کے وقت فی گھنٹہ ریٹ اور کرنسی محفوظ کر لی جاتی ہے، تاکہ مکمل کل رقم درست رہے چاہے بعد میں سہولت کی موجودہ کنفیگریشن تبدیل ہو جائے۔
انجینئرنگ اپروچ
ڈومین رولز API باؤنڈری پر موجود ہیں: چیک-اِن قبول کرنے کے لیے پارکنگ کا فعال ہونا ضروری ہے، اور صرف اس کا مالک ہی پارکنگ یا اس کے سیشنز کو آپریٹ کر سکتا ہے۔ کیپیسٹی کو کنکرنٹ چیک-اِنز سے بچانے کے لیے سیریلائز ایبل پرسسٹنس ورک اور ڈیٹا بیس کنسٹرینٹ کا استعمال کیا گیا ہے، جو ایک ہی پارکنگ میں ڈپلیکیٹ فعال گاڑیوں سے بھی بچاتا ہے۔
ویب کلائنٹ کنٹریکٹ ڈریون ہے: TypeScript پیکیج @parkcore/api-client کو API کے OpenAPI آرٹفیکٹ سے تیار کیا گیا ہے، اور pnpm contract:check API اور کلائنٹ کے درمیان فرق کا پتہ لگاتا ہے۔ براؤزر ایپ API کے انٹرنلز یا Prisma ٹائپس کو امپورٹ نہیں کرتی؛ یہ صرف اس جنریٹڈ کلائنٹ کے ذریعے API سے بات کرتی ہے۔
تصدیق (Verification) کو README میں مذکور سسٹم باؤنڈریز میں تقسیم کیا گیا ہے: ڈومین اور پرسسٹنس بیہیویر کے لیے PostgreSQL-بیکڈ API ٹیسٹ، کمپوننٹس اور روٹس کے لیے ویب ٹیسٹ، مالک کے ورک فلو کے لیے Playwright، اور علیحدہ رئیل اسٹیک چیکس جو تعینات شدہ سسٹم کو آزما سکتے ہیں۔
آرکیٹیکچر اور اسٹیک
فلو براؤزر سے Vercel-ہوسٹڈ ویب ایپ (React/Vite پلس جنریٹڈ API کلائنٹ) سے Render API اور پھر Neon PostgreSQL تک ہے۔ API ایپ کی تصدیق (authentication)، ڈومین رولز، اتھارائزیشن اور 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 درکار ہے) کو کور کرتے ہیں۔
ریپوزٹری میں موجود دستاویزات پروجیکٹ کے دائرہ کار، آرکیٹیکچر، ڈویلپمنٹ ورک فلو، ٹیسٹنگ اور تعیناتی (deployment) کا احاطہ کرتی ہیں۔ ویب ایپ کے لائیو ڈیموز اور API ہیلتھ اینڈ پوائنٹ کے لنکس README میں موجود ہیں۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.