इस प्रोजेक्ट के बारे में
ParkCore स्वतंत्र पार्किंग सुविधाओं के मालिकों के लिए बनाया गया एक फुल-स्टैक पार्किंग ऑपरेशंस एप्लिकेशन है। इसका दायरा जानबूझकर सीमित रखा गया है: बुकिंग की मध्यस्थता करने या पैसों का लेन-देन करने के बजाय लॉट की दैनिक स्थिति को चलाना। README स्पष्ट रूप से बताता है कि यह कोई आरक्षण मार्केटप्लेस या भुगतान प्लेटफॉर्म नहीं है।
यह क्या करता है
- सार्वजनिक खोज: कोई भी व्यक्ति रीड-ओनली कैटलॉग के माध्यम से पते और प्रति घंटे की दर के आधार पर सक्रिय पार्किंग सुविधाओं को खोज और फ़िल्टर कर सकता है।
- पार्किंग लाइफसाइकिल: मालिक अपनी सुविधाओं का प्रबंधन करते हैं और यह नियंत्रित करते हैं कि प्रत्येक सुविधा सक्रिय है, सार्वजनिक रूप से दृश्यमान है, और नए चेक-इन के लिए खुली है या नहीं।
- सत्र संचालन: वाहन को चेक-इन करना, सक्रिय सत्रों की निगरानी करना, प्रवास को पूरा या रद्द करना, और सत्र इतिहास की समीक्षा करना।
- वाहन पहचान: लाइसेंस प्लेटों को सामान्य (normalize) किया जाता है ताकि एक निश्चित पार्किंग के भीतर बार-बार आने वाले वाहनों के लिए वाहन पहचान का पुन: उपयोग किया जा सके।
- मूल्य निर्धारण स्नैपशॉट: चेक-इन के समय प्रति घंटे की दर और मुद्रा को स्टोर किया जाता है, ताकि यदि सुविधा का वर्तमान कॉन्फ़िगरेशन बाद में बदल भी जाए, तो पूरा किया गया कुल योग सही रहे।
इंजीनियरिंग दृष्टिकोण
डोमेन नियम API सीमा पर स्थित होते हैं: चेक-इन स्वीकार करने के लिए पार्किंग का सक्रिय होना आवश्यक है, और केवल उसका मालिक ही पार्किंग या उसके सत्रों का संचालन कर सकता है। क्षमता को सीरियलइज़ेबल पर्सिस्टेंस वर्क और डेटाबेस कंस्ट्रेंट के माध्यम से समवर्ती चेक-इन से सुरक्षित किया गया है, जो एक ही पार्किंग में डुप्लिकेट सक्रिय वाहनों को भी रोकता है।
वेब क्लाइंट कॉन्ट्रैक्ट-ड्रिवन है: TypeScript पैकेज @parkcore/api-client को API के OpenAPI आर्टिफैक्ट से जेनरेट किया गया है, और pnpm contract:check API और क्लाइंट के बीच विचलन (drift) का पता लगाता है। ब्राउज़र ऐप API इंटरनल्स या Prisma टाइप्स को इम्पोर्ट नहीं करता है; यह केवल उस जेनरेटेड क्लाइंट के माध्यम से API से बात करता है।
सत्यापन (Verification) को 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.