UniMarket

हामीले UniMarket कसरी बनायौँ: एउटै सर्भरमा चल्ने छिटो, द्विभाषी मार्केटप्लेस

UniMarket पछाडिका निर्णयहरू: बाङ्ला फन्ट र एउटै कोडबेसको संरचनादेखि धेरै पसलका अर्डर, पूरा पैसामा राखिने रकम, इमेल डेलिभरेबिलिटी र एउटै कमान्डमा हुने डिप्लोयसम्म।

UniMarket बाङ्लादेशका लागि बाङ्ला र अङ्ग्रेजी भाषामा बनेको बहु-विक्रेता मार्केटप्लेस हो। हामीले स्टोर, Seller Center, एडमिन प्यानल र इन्स्टल गर्न मिल्ने एप एउटै TypeScript प्रोजेक्टका रूपमा बनायौँ र आफ्नै सर्भरमा चलाउँछौँ। यो सबैभन्दा महत्त्वपूर्ण निर्णयहरूको र ती किन गरियो भन्ने कुराको सिंहावलोकन हो।

डार्क थिममा UniMarket को क्याटेगरी पृष्ठ: सामानको पङ्क्ति, जसमा हरेकको मूल्य, छुटको ब्याज र थप्ने बटन छ।
डेस्कटपमा क्याटेगरी पृष्ठ।

प्रविधि र त्यसको कारण

तहछनोटकारण
एपNext.js 16, React 19 र TypeScriptसर्भरमा तयार हुने पृष्ठले ब्राउजरको JavaScript सानो राख्छ, र एउटै भाषाले स्टोर, Seller Center, एडमिन र API सबै समेट्छ।
स्टाइलिङडिजाइन टोकनसहितको Tailwind CSS 4सानो CSS, र एउटै टोकनबाट लाइट तथा डार्क थिम।
डेटाआफ्नै इन्स्टेन्समा MongoDBलचिलो डकुमेन्टले फरक-फरक विकल्प भएका सामानलाई सजिलै समेट्छ, र अलग इन्स्टेन्सले सर्भरका अरू सेवालाई असर गर्दैन।
साइन इनएकपटके कोड, Google र Apple, फोन कोडका लागि Firebase Authबाङ्लादेशका ग्राहक फोन नम्बरबाट साइन इन गर्छन्, र कोडमा बिर्सन सकिने पासवर्ड हुँदैन।
होस्टिङआफ्नै VPS, nginx, Cloudflare र Let’s Encryptखर्च अनुमान गर्न सकिन्छ, र ब्याकअप, मेल र सीमामाथि पूरा नियन्त्रण रहन्छ।

बाङ्लामा पनि छिटो पृष्ठ

ग्राहकले देख्ने अधिकांश पृष्ठ सार्वजनिक हुन्छन्, त्यसैले तिनलाई क्यास गर्न मिल्ने गरी बनाइएको छ। कार्टको सङ्ख्या वा साइन इन गरेको नामजस्ता व्यक्तिगत कुरा अलग भरिन्छन् र पृष्ठलाई ढिलो पार्दैनन्। तस्बिर अपलोड गर्दा नै निश्चित साइजमा आधुनिक फर्म्याटमा बदलिन्छन्।

फन्टले हामीलाई अचम्मित बनायो। बाङ्ला वेब फन्ट ठूलो हुन्छ: हामीले परीक्षण गरेको फन्ट करिब २०० KB को थियो। हाम्रो परीक्षणमा त्यसले मोबाइल Lighthouse परफर्मेन्स स्कोरबाट दस अङ्कभन्दा बढी घटायो। त्यसैले बाङ्ला पाठले फोन वा कम्प्युटरमा पहिल्यै भएको फन्ट प्रयोग गर्छ, र आफ्नै सर्भरबाट दिइने सानो फन्टले ल्याटिन अक्षर र अङ्क मात्र समेट्छ। पाठकले दिनहुँ पढ्ने फन्ट नै देख्छन्, र थप केही डाउनलोड हुँदैन।

हाम्रो स्थानीय प्रोडक्सन बिल्डमा परीक्षण गरिएका सबै पृष्ठमा Accessibility, Best Practices र SEO को स्कोर १०० आयो, र मोबाइल Performance ९३ देखि ९८ बीच रह्यो। यी हाम्रै स्थानीय बिल्डमा लिइएका नाप हुन्, र पछि तेस्रो पक्षका स्क्रिप्ट थप्दा यी घट्नेछन्।

दुई भाषा, साँच्चै दुई भाषा

बाङ्ला र अङ्ग्रेजीको आआफ्नै ठेगाना छ, र खोज इन्जिनले सही भाषा देखाउन तिनीहरूबीच hreflang लिङ्क जोडिएका छन्। इन्टरफेसका सबै स्ट्रिङ टाइप गरिएको शब्दकोशमा रहन्छन्, र बाङ्ला स्ट्रिङ छुटेमा बिल्ड नै असफल हुन्छ, त्यसैले आधा अनुवाद भएको पृष्ठ कहिल्यै प्रकाशित हुँदैन। मूल्यमा बाङ्लामा बाङ्ला अङ्क र अङ्ग्रेजीमा ल्याटिन अङ्क प्रयोग हुन्छ।

एउटै चेकआउट, धेरै विक्रेता

एउटा कार्टमा धेरै पसलका सामान हुन सक्छन्। ग्राहकले अर्डर गर्दा चेकआउटले ब्राउजरमा भरोसा नगरी डेटाबेसबाट हरेक मूल्य फेरि हिसाब गर्छ, एउटै एटमिक चरणमा स्टक रिजर्भ गर्छ, अर्डरलाई प्रत्येक पसलको एउटा सिपमेन्टमा बाँड्छ र प्रत्येक पसलको एउटा डेलिभरी शुल्क लिन्छ। दुई पटक पेस गर्दा दुई अर्डर बन्दैनन्, र रद्द गर्दा स्टक फर्किन्छ।

रकम पूरा poisha मा राखिन्छ, जहाँ एक टका १०० poisha हुन्छ, त्यसैले कुनै हिसाब दशमलवका कारण राउन्ड हुँदैन।

सुरुदेखि सुरक्षित

  • विक्रेताले आफ्नै अर्डर र सामान मात्र हेर्न सक्छन्, र कर्मचारीले आफ्नो भूमिकाको अनुमति मात्र पाउँछन्। कर्मचारी पासवर्ड र अथेन्टिकेटर कोडले साइन इन गर्छन्, र उनीहरूका परिवर्तन अडिट लगमा जान्छन्।
  • वेब सर्भरले साइन इन र API अनुरोधमा सीमा तोक्छ, र एपले प्रयोगकर्ताअनुसारको आफ्नै सीमा थप्छ।
  • अपलोड गरिएका फाइल फेरि एन्कोड गरिन्छन्, जसले फोटोमा लुकेको स्थानको डेटा हटाउँछ, र परिचयपत्र सार्वजनिक फोल्डरबाहिर राखिन्छन्।
  • सुरक्षा समीक्षापछि हामीले खाता कब्जा हुनसक्ने दुई समस्या पहिले ठीक गर्‍यौँ, र त्यसपछि मध्यम स्तरका समस्या।

इमेल जुन साँच्चै पुग्छ

UniMarket ले अर्डरको हरेक चरणमा इमेल पठाउँछ, त्यसैले डेलिभरेबिलिटी उत्पादनकै हिस्सा हो। मेल हाम्रै मेल सर्भरबाट DKIM हस्ताक्षरसहित जान्छ, र डोमेनले SPF तथा DMARC रेकर्ड प्रकाशित गर्छ। हाम्रा परीक्षणमा अर्डरका इमेलले तीनै जाँच पास गरे र स्प्याममा होइन, इनबक्समै पुगे।

खुला ट्याब नबिगारी डिप्लोय गर्ने तरिका

डिप्लोयले सर्भरमै बिल्ड गर्छ, नयाँ रिलिजमा स्विच गर्छ र त्यो स्वस्थ छ कि छैन जाँच्छ। अर्को कमान्डले अघिल्लो रिलिजमा फर्काउँछ। प्रत्येक रिलिजको आफ्नै डिप्लोय आईडी हुन्छ, त्यसैले ग्राहकले डिप्लोयको बेला ट्याब खुला राखेको भए पृष्ठले आफ्ना बटन पुरानो रिलिजका हुन् भनी चिनेर त्रुटि देखाउनुको सट्टा आफैँ रिलोड हुन्छ।

डेटाबेसको ब्याकअप हरेक रात लिइन्छ र पछिल्ला १४ ब्याकअप राखिन्छन्।

UniMarket अर्ली एक्सेसमा छ र यसको क्याटलग डेमो हो। मार्केटप्लेस चालु छ र काम गरिरहेको छ, र unimarket.bd डोमेनको योजना छ।

22Softwares टोलीले UniMarket को चालु एप र यसको Seller Center गाइडसँग मिलाएर तथ्यहरू जाँचेको हो।

प्रश्नहरू