2013-08-17 7 views
14

ठीक है, इसलिए लगभग एक साल पहले मैंने एक वेब ऐप लिखा था जो मेरे पिताजी कंपनी के लिए नियुक्तियों को व्यवस्थित करने में मदद करता है। वह अब "इसके बिना व्यवसाय नहीं कर सका"। मैंने फैसला किया है कि मैं इसके बाहर एक एसएएएस सदस्यता मॉडल बनाना चाहता हूं और इसे जनता के लिए खोलना चाहता हूं।लार्वेल में SAAS के निर्माण के लिए सही दृष्टिकोण 4

यह वर्तमान में कोडनिर्देशक और PHP पर बनाया गया है जो मुझे नहीं लगता कि एक एसएएएस संस्करण के लिए एक अच्छा फिट है। मैं इसे लार्वेल 4 में स्क्रैच से पुनर्निर्माण और पेमेंट गेटवे के रूप में पट्टी का उपयोग करने की योजना बना रहा हूं।

मेरी चिंता यह है कि एक से अधिक क्लाइंट के लिए डेटाबेस/एप्लिकेशन संरचना को कैसे संभालना सर्वोत्तम है। वर्तमान में, यह सिर्फ एक व्यवसाय की सेवा करता है और यह बहुत ही अमूर्त है और मेरे पिता कंपनियों की जरूरतों के लिए विशिष्ट है। मुझे इसका उपयोग करने वाले व्यवसाय के आधार पर अलग-अलग डेटा को संभालने में सक्षम होने की आवश्यकता है।

मैंने बहु-किरायेदारी में देखा है लेकिन मुझे यकीन नहीं है कि यह इसके लिए सही है। मैं सोच रहा हूं कि एक 'जीमेल' शैली दृष्टिकोण बेहतर होगा। एक ऐप/डोमेन जो लॉगिन के बाद उपयोगकर्ता को अपना कस्टमाइज्ड डैशबोर्ड और केवल उनका डेटा दिखाई देगा।

कोडिंग के साथ फंसने से पहले मुझे यह समझने की ज़रूरत है कि एक डेटाबेस पर एकाधिक 'खातों' को कैसे संभालना है। मैं प्रत्येक उपयोगकर्ता के लिए एक टेबल नहीं बनाना चाहता, न ही प्रत्येक उपयोगकर्ता के लिए डेटाबेस बनाना चाहता हूं।

मुझे लगता है कि मेरा सवाल यह है कि कोई मुझे सही दिशा में इंगित कर सकता है कि लैरवेल में मासिक भुगतान सदस्यता को सर्वोत्तम तरीके से कैसे संभाला जाए? यह इतना है कि मैं कोड, साथ नहीं बल्कि वास्तव में क्या मैं हर महीने ग्राहक चार्ज और उन्हें पहुँच को अस्वीकार आदि यदि बिलिंग में विफल रहा है

धन्यवाद एक किसी न किसी रूप में सिंहावलोकन

उत्तर

37

आप बहुत सी पढ़ाई और काम के टन में हैं!

सबसे पहले, आइए अब इसके बिलिंग पहलू को पूरी तरह से अनदेखा करें - उस दिन के अंत में जब एप्लिकेशन का हिस्सा वास्तव में काफी छोटा होता है। 37signals Rework (पृष्ठ 9 3 और 9 4) से एक पृष्ठ लें और इसे लागू करने से पहले अपने उत्पाद को 30 दिन के नि: शुल्क परीक्षण के साथ लॉन्च करें (आपको पता होना चाहिए कि इसे तब तक कैसे कार्यान्वित किया जाए)।

दूसरा, आप क्यों सोचते हैं कि "जीमेल" बहु-किरायेदारी का उपयोग नहीं करता है, यूआरआई संरचना अंतर्निहित डेटाबेस संरचना के बारे में कुछ नहीं बताती है। मुझे पूरा भरोसा है कि वे अपने प्रत्येक ग्राहक के लिए डेटाबेस स्कीमा क्लोन नहीं कर रहे हैं। इसलिए आपने शायद अपने प्रश्न का उत्तर दिया है - आप बहु-किरायेदारी लागू करना चाहते हैं।

आप अपने डेटाबेस (और एप्लिकेशन आर्किटेक्चर) को सारणित करना चाहते हैं, और ईमानदारी से टेलर ओटवेल (लैरवेल के निर्माता) पुस्तक Laravel: From Apprentice To Artisan से ऐसा करने में आपकी मदद करने के लिए कोई बेहतर संसाधन नहीं है। उनकी पुस्तक शुरुआती लोगों के लिए नहीं है, और जब तक आप इसे पढ़ रहे हैं, तो शायद आप अपने लिए इस प्रश्न का उत्तर देने में सक्षम होना चाहिए।

आप प्रत्येक उपयोगकर्ता के लिए कोई टेबल या डेटाबेस नहीं बनाने जा रहे हैं, आप भी प्रत्येक संगठन के लिए एक बनाने के लिए नहीं जा रहे हैं। इसके बजाय आप कोड में अमूर्त डेटाबेस संरचना बनायेंगे, जो आपके उपयोगकर्ताओं के डेटा को डेटाबेस से बाहर खींच देगा।

किसी उपयोगकर्ता को प्रमाणीकरण की एक और परत के रूप में किसी संगठन तक पहुंचने की अनुमति की जांच करने के बारे में सोचें। प्रत्येक अनुरोध पर आप यह देखने के लिए जांच करेंगे कि क्या उपयोगकर्ता किसी विशेष संगठन तक पहुंच सकता है या नहीं। आप यह भी सुनिश्चित करने के लिए जांच करेंगे कि संगठन अभी भी सक्रिय है (क्या यह समाप्त हो गया क्योंकि उन्होंने भुगतान नहीं किया था?) यह फिर से प्रत्येक अनुरोध पर होगा और filter within laravel के साथ होगा।

यह वास्तव में सास एप्लिकेशन के विकास के अगले महत्वपूर्ण कारक की ओर जाता है।

मुझे आपके बारे में पता नहीं है, लेकिन मैं पागल हूं, और अगर मैं सुनिश्चित नहीं था कि उपयोगकर्ता संख्या 4506 किसी संगठन के डेटा को नहीं देख पा रहा है, तो वह ' टी से संबंधित है। यह सुनिश्चित करने का एकमात्र वास्तव में अच्छा तरीका यूनिट परीक्षण के माध्यम से है, जो कि अगर आप पहले से नहीं हैं तो मैं अत्यधिक सीखने का सुझाव दूंगा।

लैरवेल 4 के भीतर ऐसा करने का सबसे अच्छा तरीका जेफरी वे की पुस्तक Laravel Testing Decoded पढ़ना है। यह पुस्तक बेहद उन्नत है, लेकिन अगर आपको मूलभूत सिद्धांतों का अच्छा समझ है तो अभी भी समझना आसान है।

अंतिम लेकिन कम से कम नहीं, समुदाय में नंबर एक चीज शामिल है - सबसे आसान तरीका यह है कि मैं #laravel IRC channel (फ़्रीनोड) पर आ रहा हूं। कुछ प्रश्न पूछें, शायद कुछ सवालों का जवाब दें, चैनल में हर कोई बहुत अच्छा और उत्तरदायी है।

आप निश्चित रूप से एक साहस के लिए हैं, प्रश्न पूछने और गलतियों को करने से डरो मत। सौभाग्य।

+2

धन्यवाद, क्या एक शानदार जवाब है। मेरे लिए, यह प्रोजेक्ट डेवलपर के रूप में अपने कौशल को विकसित करने के बारे में उतना ही है जितना कि उत्पाद बनाना है। मैं इसे बहुत सारी चीजों का उपयोग करने का बहाना मानता हूं जो मेरे पास पहले नहीं था और कुछ खेल का मैदान था। चीयर्स! –

+0

विकसित होने से उत्कृष्ट प्रतिक्रिया। मैं जोड़ूंगा कि किसी भी सास का सबसे महत्वपूर्ण तत्व डेटा संरचना है। यदि आप भारी उपयोग करना शुरू करते हैं और जल्दी से स्केल करने की आवश्यकता है तो वह सास को बना देगा या तोड़ देगा। –

+1

@evolve क्या आपके पास एक ही विषय पर कोई अपडेट होगा? मैंने उन पुस्तकों में देखा लेकिन वे पुराने हैं =/ – cbcaio

3

को संभालने के लिए निर्माण करने के लिए की आवश्यकता होगी stuggling कर रहा हूँ नहीं है , मेरे पास एक ग्राहक तालिका होगी, और एक सदस्यता तालिका होगी। कोई भी अन्य डेटा जिसे संपर्क, या नियुक्तियों जैसे भंडारण की आवश्यकता होती है, को क्लाइंट टेबल पर विदेशी कुंजी का उपयोग करके जोड़ा जा सकता है।

लार्वेल में, आप वर्तमान में लॉग इन क्लाइंट प्राप्त करने के लिए ओआरएम का उपयोग कर सकते हैं, और फिर रिश्ते के माध्यम से, नियुक्तियों और उनके संपर्कों को प्राप्त कर सकते हैं।

cartalyst.com पर laravel के लिए कुछ उपयोगी उपकरण, संतरी और संतरी-सामाजिक उपयोगकर्ता प्रमाणन के लिए सहित रहे हैं, और उपयोगकर्ता को एकीकृत, आदि फेसबुक/गूगल/चहचहाना खातों

धारी आप आवर्ती कॉन्फ़िगर करने की अनुमति देगा भुगतान, और जब भी भुगतान प्रयास होता है तो वेब हुक के माध्यम से आपको सूचित किया जाएगा। आप इन्हें भुगतान तालिका में लॉग इन कर सकते हैं, और उन्हें उपयोगकर्ता/ग्राहक से संबद्ध कर सकते हैं। आप इसका भुगतान करने के लिए इसका उपयोग कर सकते हैं कि किसने भुगतान किया है, और हाल ही में कैसे।

इसके अलावा, ध्यान रखें कि आप असफल भुगतान पर तुरंत खाता रद्द नहीं करना चाहते हैं।

स्ट्रिप पुनः प्रयास करेगा, और यह हो सकता है कि आपकी सर्वोत्तम प्रतिक्रिया दो या तीन दिन देर हो जाने के बाद हो, या आपको ग्राहक के संपर्क में आने के लिए एक अवैध कार्ड अधिसूचना मिलती है और उन्हें अपने भुगतान विवरण अपडेट करने के लिए संकेत मिलता है।

यह लॉग इन करने का अवसर भी हो सकता है जब वे अंतिम बार लॉग इन करते हैं। यदि यह एक महीने पहले था तो आप उन्हें एक मुफ्त महीने के साथ क्रेडिट कर सकते हैं, और उन्हें याद दिला सकते हैं कि आपका ऐप उनके लिए कितना कर सकता है। ऐसा करके, आप लोगों को जो कुछ भूल गए थे, उनके लिए (और भुगतान) का उपयोग जारी रखने में सक्षम हो सकते हैं।

संबंधित मुद्दे