Rocket.Chat प्रोजेक्ट

इस पेज पर Google Docs के सीज़न के लिए स्वीकार किए गए एक तकनीकी लेखन प्रोजेक्ट की जानकारी है.

प्रोजेक्ट की खास जानकारी

ओपन सोर्स संगठन:
Rocket.Chat
तकनीकी लेखक:
मिस्टर गोल्ड
प्रोजेक्ट का नाम:
बॉट दस्तावेज़
प्रोजेक्ट की अवधि:
मानक अवधि (तीन महीने)

प्रोजेक्ट का विवरण

प्रोजेक्ट की खास जानकारी

चैट बॉट आज की टेक्नोलॉजी के सबसे नए वर्शन पर काम करते हैं. चैट सॉफ़्टवेयर और बॉट के साथ-साथ बोली की पहचान और ऑटोमेशन के बढ़ते हुए विकास की दर से पता चलता है कि बॉट के लिए ऐसे दस्तावेज़ बनाने की ज़रूरत है जिन्हें आसानी से समझा और इस्तेमाल किया जा सके.

बेहतर और साफ़ दस्तावेज़ होना और भी ज़रूरी हो जाता है. इसलिए, बॉट के मौजूदा दस्तावेज़ों को ऐक्सेस और नेविगेट करने की सुविधा को आसान बनाने की ज़रूरत होती है. साथ ही, इसमें हर फ़्रेमवर्क के लिए सिलसिलेवार निर्देश और विस्तृत उदाहरण उपलब्ध होने चाहिए. साथ ही, इसे व्यवस्थित किया जाना चाहिए, ताकि बेकार और समझने में मुश्किल जानकारी से छुटकारा मिल सके.

इस प्रोजेक्ट का मकसद, नॉलेज गैप को कम करना है. साथ ही, नए और कम अनुभवी डेवलपर को इस बात के लिए बढ़ावा देना है कि वे बेहतरीन टेक्नोलॉजी के फ़ायदों को, उत्साह बढ़ाने वाले दर्शकों तक पहुंचाएं. ऐसा करने के लिए, बॉट बनाने वालों को Rocket.Chat में अपने बॉट बनाने का बेहतर अनुभव उपलब्ध कराया जा सकता है. इस लक्ष्य का मकसद, इन डेवलपर के लिए Rocket.Chat को पसंदीदा ओपन सोर्स प्लैटफ़ॉर्म बनाना है. इसकी मदद से, वे इन डेवलपर के चैटबॉट के आइडिया पर कुछ नया कर सकते हैं, उन्हें बना सकते हैं, और उन्हें टेस्ट कर सकते हैं - भले ही, उनका बीओटी डिप्लॉयमेंट टारगेट कुछ भी हो.

प्रोजेक्ट की समस्याएं

बॉट दस्तावेज़ से जुड़ी सबसे अहम समस्याओं की सूची यहां दी गई है:

  1. बॉट के बारे में सामान्य और आसान जानकारी
  2. बॉट आर्किटेक्चर से जुड़े छोटे-छोटे सेक्शन, जो काम के नहीं हैं
  3. "इस्तेमाल शुरू करना" गाइड के बेतरतीब हिस्सों के ज़रिए जानकारी का कोई एक सोर्स नहीं दिया गया है
  4. निर्देशों की कमी या निर्देश में बहुत ज़्यादा जानकारी नहीं दी गई थी
  5. बॉट SDK टूल के लिए, इंप्लिसिट और अस्पष्ट दस्तावेज़

प्रोजेक्ट का प्रस्ताव

प्रोजेक्ट के लक्ष्य और ऊपर बताई गई समस्याओं के हिसाब से, इन सुधारों की सूची नीचे दी गई है:

  1. बॉट के दस्तावेज़ अपडेट करें. शुरुआती जानकारी को आसान और एक जैसा बनाने के लिए, यहां दिए गए दस्तावेज़ों को एक के बाद एक स्विच के साथ अपडेट किया जाना चाहिए. इसका मतलब है कि धीरे-धीरे शुरुआत के चरण को आसानी से जटिल किया जा सकता है:

    • बॉट की खास जानकारी: https://rocket.chat/docs/bots/
    • बॉट आर्किटेक्चर: https://rocket.chat/docs/bots/bots-{/7}
    • बॉट एनवायरमेंट को कॉन्फ़िगर करना: https://rocket.chat/docs/bots/configure-bot-environment/
    • बॉट का होम पेज: https://github.com/RocketChat/rocketchat.github.io/pull/
  2. बॉट इंस्टॉल करने से जुड़े दस्तावेज़ों को व्यवस्थित और इकट्ठा करना. सभी सब-प्रोजेक्ट में, बॉट रिपॉज़िटरी को क्लोन करने और ज़रूरी डिपेंडेंसी इंस्टॉल करने के निर्देशों का एक यूनिफ़ाइड सेट होना चाहिए. साथ ही, इसमें यह जानकारी भी होनी चाहिए कि जल्दी से कैसे शुरू किया जाए, पहले लॉन्च के बाद बॉट के साथ कैसे काम करें, और इसे कैसे डिप्लॉय करें.

  3. Rocket.Chat JS SDK दस्तावेज़ प्रज़ेंटेशन में बदलाव करें. SDK टूल से जुड़े दस्तावेज़, खास टूल का इस्तेमाल करके, सोर्स कोड से प्रोग्राम के हिसाब से जनरेट किए जाने चाहिए. इस सुधार की वजह से, दस्तावेज़ को आसानी से पढ़ा जा सकता है. साथ ही, जब भी कोई तरीका (या इसके अंदर की कोई चीज़) बदला जाता है, तो इसे मैन्युअल तरीके से GitHub पर अपडेट करने की ज़रूरत नहीं होती.

टाइमलाइन

आवेदन की समीक्षा करने की अवधि: समुदाय और काम करने वाले लोगों के बारे में जानें. समुदाय में योगदान की गाइड और सबसे सही तरीकों के बारे में जानें. अपना पहला योगदान दें.

कम्यूनिटी से जुड़ना: कम्यूनिटी को एक्सप्लोर करें. बॉट दस्तावेज़ की मौजूदा स्थिति की जांच करें. कमज़ोर बिंदुओं की पहचान करें.

पहला हफ़्ता: बॉट के नए विज़न के बारे में मेंटॉर से बात करें. विज़न के हिसाब से, बॉट के नए होम पेज के लिए अपडेट किया गया कॉन्टेंट बनाएं.

दूसरा हफ़्ता: बॉट की खास जानकारी, आर्किटेक्चर, पर्यावरण पेजों का कॉन्फ़िगरेशन बदलना

तीसरा हफ़्ता - उन सब-प्रोजेक्ट (bot github repos) की सूची के बारे में बताएं जिसे मुख्य दस्तावेज़ में ट्रांसफ़र किया जाना चाहिए. - यह तय करें कि ट्रांसफ़र के बाद बॉट वेबसाइटों को कैसे काम करना चाहिए. - एक ऐसा टेंप्लेट तय करें जिसका इस्तेमाल इन डेटा स्टोर करने की जगहों में मौजूद जानकारी को व्यवस्थित करने के लिए किया जाएगा. - ट्रांसफ़र के लिए मुख्य दस्तावेज़ तैयार करें

चौथा हफ़्ता: बीबीटी डेटा को ट्रांसफ़र करना. तय टेंप्लेट के मुताबिक जानकारी व्यवस्थित करना

पांचवां हफ़्ता: Hubot रेपो को ट्रांसफ़र करें. तय टेंप्लेट के मुताबिक जानकारी व्यवस्थित करना

छठा हफ़्ता: बॉटकिट रेपो ट्रांसफ़र करना. तय टेंप्लेट के मुताबिक जानकारी व्यवस्थित करना

हफ़्ता 7: रासा रेपो ट्रांसफ़र करें. तय टेंप्लेट के मुताबिक जानकारी व्यवस्थित करना

आठवां हफ़्ता: Bot Press रेपो को ट्रांसफ़र करना. तय टेंप्लेट के मुताबिक जानकारी व्यवस्थित करना

नौवां हफ़्ता: बॉट के सभी सब-प्रोजेक्ट ट्रांसफ़र करने के बाद, दस्तावेज़ के मुख्य स्ट्रक्चर और पेजों को तैयार करना

दसवां हफ़्ता: JSDoc कॉन्फ़िगरेशन की जांच करें. JSDoc आर्टफ़ैक्ट को सेव करने के लिए कोई जगह चुनें. ड्राइवर के तरीकों का दस्तावेज़ बनाना शुरू करें

11वां हफ़्ता: ड्राइवर बनाने के तरीकों की जानकारी देने का काम पूरा करें

12वां हफ़्ता: नतीजों का आकलन करना

उपलब्धियों के बारे में पूरी जानकारी

ऐप्लिकेशन की समीक्षा की अवधि

इस अवधि का पहला हिस्सा, कम्यूनिटी चैनलों और सोर्स कोड की जांच करने और इस प्रोजेक्ट में काम करने वाले लोगों से संपर्क करने के लिए होगा.

इस पीरियड का दूसरा हिस्सा, योगदान की संस्कृति को सामान्य तौर पर देखने, योगदान की गाइड और सबसे सही तरीकों की जांच करने पर आधारित होगा. इस बार में पहली बार योगदान दिया जा सकेगा और यह देखा जा सकेगा कि फ़्लो कैसे काम करता है.

कम्यूनिटी के साथ जुड़ाव

यह पूरा समय, दस्तावेज़ों के डेटा स्टोर करने की जगह के रोडमैप की बारीकी से जांच करने पर रहेगा. साथ ही, इसके रोडमैप को भी बेहतर तरीके से समझने में मदद करेगा. इस जानकारी के आधार पर, उन कमज़ोर चीज़ों की पहचान की जा सकती है जिनमें सुधार किया जा सकता है. जैसे, अधूरे या गुम हुए हिस्से. कमियों को दूर करने के लिए, पुल के अनुरोध (जहां मुमकिन हो) बनाएं.

पहला हफ़्ता - दूसरा हफ़्ता

पहला हफ़्ता, बॉट के दस्तावेज़ के नए विज़न को ध्यान में रखते हुए मेंटॉर से बातचीत करने का समय होगा. यह जानकारी बदले गए दस्तावेज़ों का एक हिस्सा होगी. इसका मकसद, लोगों को बॉट के बारे में खास जानकारी देना और इसके काम करने के सिद्धांतों के बारे में बताना है.

दूसरा हफ़्ता, बॉट के होम पेज के विज़न के हिसाब से कॉन्टेंट तैयार करने के बारे में होगा. इसमें बॉट की खास जानकारी, आर्किटेक्चर, और पर्यावरण पेजों के कॉन्फ़िगरेशन के हिसाब से कॉन्टेंट तैयार किया जाएगा.

बदले गए दस्तावेज़ों में इन बातों पर ज़्यादा ध्यान दिया जाएगा: - ऐसे नए डेवलपर जो अपना बॉट बनाना चाहते हैं - ऐसे पेशेवर [bot] डेवलपर जो मुफ़्त और इस्तेमाल में आसान प्लैटफ़ॉर्म की मदद से अपने बॉट को डिज़ाइन/कोड/टेस्ट करना चाहते हैं या अपने मौजूदा बॉट को उस प्लैटफ़ॉर्म के मुताबिक बनाना चाहते हैं - ऐसे प्रोफ़ेशनल बॉट डेवलपर जो Rocket के लिए बॉट बनाना चाहते हैं.

काम का दायरा इस तरह का होगा:

  1. ऐसे सेक्शन हटाएं जो काम के नहीं हैं. उदाहरण के लिए, इन सेक्शन में ओवरलैप होने वाली जानकारी दी गई है:
    • बॉट मैसेज कैसे भेजते और पाते हैं? बॉट की खास जानकारी वाले पेज में (https://rocket.chat/docs/bots/#how-do-bots-send-and-receive-messages)
    • बॉट आर्किटेक्चर में मैसेज स्ट्रीम (https://rocket.chat/docs/bots/bots-{/7}/#message-streams)
    • बॉट उपयोगकर्ता बनाने के लिए अपने बॉट से बात करें (https://rocket.chat/docs/bots/making-bot-users/#talk-to-your-bot)
  2. बॉट की खास जानकारी देने वाले पेज के सेक्शन और वाक्यांशों में बदलाव करें. इससे, बॉट के ईकोसिस्टम और सुविधाओं के बारे में साफ़ तौर पर जानकारी दी जा सकेगी. ऐसा DRY सिद्धांत के मुताबिक किया जाएगा.

    ""अंडर द हुड" के बारे में जानकारी के सेक्शन और वाक्यांशों में बदलाव करें":

    • तकनीकी नज़रिए से बॉट क्या है
    • इसमें कौनसे कॉम्पोनेंट शामिल हैं
    • ये कॉम्पोनेंट एक साथ कैसे काम करते हैं
  3. बॉट बनाने के ज़रूरी चरणों के बारे में बताने वाली क्विक स्टार्ट गाइड लिखो. इस गाइड में आगे पढ़ने के लिए, ""बॉट एनवायरमेंट को कॉन्फ़िगर करना"" का लिंक शामिल होना चाहिए. यह गाइड, एनवायरमेंट का कॉन्फ़िगरेशन पेज पर मौजूद होगी.

इससे डेवलपर को यह जानने में मदद मिलेगी कि बॉट, क्या-क्या कर सकते हैं. साथ ही, डेवलपर को यह भी पता चलेगा कि बॉट क्या कर सकते हैं. इसके बाद, डेवलपर अपना पहला बॉट बना सकता है.

सेवाएं: अपडेट की गई इस गाइड में, बॉट के नेटवर्क और आर्किटेक्चर के बारे में जानकारी दी गई है. साथ ही, इन्हें आसानी से समझा जा सकता है.

तीसरा से 9 हफ़्ता

तीसरे से लेकर नौवें हफ़्ते तक, GitHub डेटा स्टोर करने की जगहों में सभी बॉट दस्तावेज़ों को एक साथ रखने और इन दस्तावेज़ों को मुख्य दस्तावेज़ (https://rocket.chat/docs/bots/) में ट्रांसफ़र करने के लिए इस्तेमाल किया जाएगा. इन गतिविधियों को कई चरणों में बांटा जा सकता है:

  1. परिभाषा

    बॉट सब-प्रोजेक्ट की ऐसी सूची बनाना जिसे मुख्य दस्तावेज़ पर माइग्रेट करना चाहिए. तय करें कि ट्रांसफ़र के बाद बॉट वेबसाइटों को कैसे काम करना चाहिए (कुछ बॉट, बीबॉट, उदाहरण के लिए (http://bbot.chat)) के पास GitHub के साथ-साथ दस्तावेज़ों वाली अलग साइटें होंगी.

  2. टेंप्लेट

    पहले चरण में बताए गए बॉट सब-प्रोजेक्ट में जानकारी व्यवस्थित करने के लिए, टेंप्लेट बनाना और बनाना. यह टेंप्लेट इस तरह दिख सकता है:

    a. डेटा स्टोर करने की जगह का क्लोन बनाएं

    b. डिपेंडेंसी इंस्टॉल करना

    c. बॉट को कॉन्फ़िगर करना

    d. बॉट चलाना

    e. बेहतर कॉन्फ़िगरेशन

    f. आगे के चरण

    जिन कमांड में कुछ गैर-मामूली आउटपुट शामिल हों (जैसे ""बॉट चलाएं"") उनके साथ टर्म शीट टूल (https://neatsoftware.github.io/term-sheets/) का इस्तेमाल करके उस आउटपुट का लाइव प्रज़ेंटेशन होना चाहिए.

    इसके अलावा, शुरुआती ""क्विक स्टार्ट"" स्टेज (चरण a - d) को ज़्यादा साफ़ बनाने के लिए, सभी चरणों को एक ही लाइव प्रज़ेंटेशन में शामिल किया जाएगा.

    नए लोगों को संभावित गड़बड़ियों से सुरक्षित महसूस कराने के लिए, कोड के उदाहरणों को प्लेग्राउंड एनवायरमेंट (Glitch का इस्तेमाल करके, Rocket Chat ईको-सिस्टम के हिस्से के रूप में) दिया जाना चाहिए जहां नए लोग उन बॉट से चैट कर सकें जिन पर ""उदाहरण कोड"" लगा हुआ है.

  3. वीडियो की रणनीति

    ट्रांसफ़र के लिए मुख्य दस्तावेज़ तैयार किया जा रहा है. इसमें सही फ़ोल्डर और पेज स्ट्रक्चर बनाना शामिल है. साथ ही, टेबल ऑफ़ कॉन्टेंट को उस स्ट्रक्चर के हिसाब से अडजस्ट करना भी शामिल है.

    फ़ाइनल स्ट्रक्चर इस तरह का दिख सकता है:

    • बॉट
      • बॉट आर्किटेक्चर
      • बॉट उपयोगकर्ता बनाएं
      • बॉट एनवायरमेंट को कॉन्फ़िगर करें
      • बॉट चलाएं
        • bBot बॉट
        • ह्यूबॉट बॉट
        • बॉटकिट बॉट
        • रासा बॉट
        • बॉटप्रेस बॉट
  4. माइग्रेशन

    तय किए गए बॉट सब-प्रोजेक्ट को मुख्य दस्तावेज़ में एक-एक करके माइग्रेट करना. बॉट दस्तावेज़ के हर हिस्से का एक अलग पेज होगा, जिसमें मौजूदा वर्शन जैसे सब-सेक्शन होंगे. उदाहरण के लिए, bBot चलाना.

    • बॉट चलाएं
      • bBot बॉट
      • ह्यूबॉट बॉट
      • बॉटकिट बॉट
      • रासा बॉट
      • बॉटप्रेस बॉट
  5. संगठन

    इस तरह की कई गतिविधियां होंगी:

    1. दूसरे चरण में दिए गए टेंप्लेट के मुताबिक, हर बॉट के GitHub रेपो की जानकारी को व्यवस्थित करना.
    2. मुख्य दस्तावेज़ों की हैरारकी में, सभी बॉट सब-प्रोजेक्ट से जुड़े सामान्य कॉम्पोनेंट (जैसे, एनवायरमेंटल वैरिएबल) को एक लेवल ऊपर ले जाना और बॉट सब-प्रोजेक्ट को इन कॉम्पोनेंट से लिंक करना
    3. काम करने वाले हर फ़्रेमवर्क के लिए, “hello world” बॉट का उदाहरण बनाना. इस उदाहरण का इस्तेमाल, Rocket.Chat के लिए "शुरुआत करना" बॉट के तौर पर किया जाएगा.

यह ज़रूरी क्यों है? ये सभी आठ सब-प्रोजेक्ट Rocket.Chat पर काम करते हैं: alexa, Hubot, chatops-gitsy, बॉटप्रेस, रासा, बीबॉट, बॉटकिट, BOTswana, Hubot-gitsy में कुछ अलग-अलग दस्तावेज़ हैं. इनमें से कुछ भी डेवलपर READMEs के रूप में हैं. इन README का कोई स्ट्रक्चर नहीं है. इनमें, शुरुआत करने के तरीके की पुरानी जानकारी मौजूद होती है. इसके अलावा, इनमें ज़रूरत से ज़्यादा जानकारी होती है, जैसे कि Hubot (https://github.com/RocketChat/hubot-rocketchat) के बारे में, जैसे कि Docker का इस्तेमाल करके बॉट चलाने के बारे में जानकारी और पर्यावरण से जुड़े वैरिएबल वाली टेबल.

ये पहलू, डेवलपर (नए व्यक्ति के रूप में) और बेशुमार जानकारी के बीच उलझन में पड़ जाते हैं. इस वजह से, डेवलपर कुछ टर्मिनल के निर्देशों से बॉट को चालू नहीं कर पाएगा.

ट्रांसफ़र और ऑप्टिमाइज़ेशन पूरा होने के बाद, GitHub में मौजूदा बॉट डेटा स्टोर करने की जगहों में README फ़ाइलें होंगी, जो मुख्य दस्तावेज़ की जानकारी देती हैं.

इससे आपको नीचे दिए गए फ़ायदे मिलेंगे: - एक यूनिफ़ाइड स्ट्रक्चर, जिससे डेवलपर आसानी से नए बॉट के साथ शुरुआत कर सकते हैं - बॉट के दस्तावेज़ों के लिए एक ही सोर्स उपलब्ध होता है - यूनिफ़ाइड स्ट्रक्चर की वजह से किसी भी बॉट के बारे में ज़रूरी जानकारी आसानी से मिल जाती है

डिलीवर किए जाने लायक: इन्हें एक ही जगह (मुख्य दस्तावेज़) में व्यवस्थित किया गया है. इससे, आपको Rocket.Chat पर काम करने वाले बॉट बनाने, कॉन्फ़िगर करने, और चलाने के आसान निर्देशों का पालन करना है.

10वां हफ़्ता

यह हफ़्ता इन-लाइन टिप्पणियों की अहमियत को बढ़ाने के लिए JSDoc (https://devdocs.io/jsdoc/) को कॉन्फ़िगर करने का है. ऐसे कॉन्टेंट के कुछ उदाहरण यहां दिए गए हैं:

  1. पक्का करना कि JSDoc को ड्राइवर के तरीकों (https://github.com/RocketChat/Rocket.Chat.js.SDK#driver-methods) के लिए, टिप्पणियों को पार्स करने के लिए सही तरीके से कॉन्फ़िगर किया गया है
  2. बाद वाले एचटीएमएल आउटपुट को ज़्यादा बेहतर और डेवलपर के लिए आसान बनाने के लिए postman-jsdoc-theme (https://github.com/postmanlabs/postman-jsdoc-theme) इंस्टॉल करें
  3. JSDoc दस्तावेज़ के आर्टफ़ैक्ट पब्लिश करने की जगह तय करना
  4. ड्राइवर के तरीकों से जुड़े सभी फ़ंक्शन (dist/lib/driver.js में) के बारे में जानकारी देना. ऐप्लिकेशन में ये चीज़ें शामिल नहीं हैं:
    • तरीकों की जानकारी जोड़ना/बदलाव करना
    • तरीके के पैरामीटर की जानकारी जोड़ना/उसमें बदलाव करना
    • अगर लागू हो, तो तरीकों के अनुरोधों के उदाहरण जोड़ना या उनमें बदलाव करना
    • अगर लागू हो, तो तरीकों के जवाबों के उदाहरणों को जोड़ना/उनमें बदलाव करना

इनलाइन दस्तावेज़ को डेवलपर के नज़रिए से लिखना और मैनेज करना आसान है. इसके अपने-आप जनरेट होने के तरीके की मदद से, GitHub (https://github.com/RocketChat/Rocket.Chat.js.SDK#driver-methods) पर होस्ट किए गए स्टैटिक दस्तावेज़ों से छुटकारा पाया जा सकता है. SDK टूल के तरीकों में किए गए हर बदलाव को अलग से अपडेट करना ज़रूरी है.

11 हफ़्ता

यह हफ़्ता ड्राइवर के तरीकों के बारे में बताने के लिए पूरी तरह से काम करेगा. प्रक्रिया पूरी होने के बाद, जानकारी के सटीक होने की जांच की जाएगी. इसके बाद, नया दस्तावेज़ दुनिया भर में पब्लिश किया जाएगा.

12 हफ़्ता

पूरे हो चुके काम को फ़ाइनल करना. स्वीकार है या नहीं, इसकी जांच.