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

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

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

ओपन सोर्स संगठन:
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 रिपॉस) की सूची तय करें जिन्हें मुख्य दस्तावेज़ में ट्रांसफ़र किया जाना चाहिए. - यह तय करें कि ट्रांसफ़र के बाद बॉट की वेबसाइटें किस तरह काम करेंगी. - एक ऐसा टेंप्लेट तय करें जिसका इस्तेमाल इन डेटा स्टोर में मौजूद जानकारी को व्यवस्थित करने के लिए किया जाएगा. - ट्रांसफ़र के लिए मुख्य दस्तावेज़ तैयार करें

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

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

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

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

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

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

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

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

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

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

आवेदन की समीक्षा की अवधि

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

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

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

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

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

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

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

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

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

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

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

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

इससे डेवलपर को यह पता चलेगा कि बॉट किस तरह के काम कर सकते हैं और वे कौनसे काम कर सकते हैं. इसके बाद, डेवलपर अपना पहला बॉट बना पाएगा.

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

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 का इस्तेमाल करके, रॉकेट चैट ईको-सिस्टम का इस्तेमाल करना ज़रूरी है. इससे नए लोग ऐसे बॉट से चैट कर पाएंगे जिन पर ""उदाहरण कोड"" लगा है.

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

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

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

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

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

    • बॉट चलाएं
      • बीबॉट बॉट
      • Hubot बॉट
      • बॉटकिट बॉट
      • रासा बॉट
      • बॉटप्रेस बॉट
  5. संगठन

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

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

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

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

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

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

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

10 हफ़्ता

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

  1. यह पक्का करना कि JSDoc को ड्राइवर के तरीकों (https://github.com/RocketChat/Rocket.Chat.js.SDK#driver-methods) के लिए, टिप्पणियों को पार्स करने के लिए सही तरीके से कॉन्फ़िगर किया गया है
  2. HTML आउटपुट को ज़्यादा बेहतर और डेवलपर के लिए आसान बनाने के लिए, 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 हफ़्ता

पूरे हो चुके काम को पूरा करना. स्वीकार किए जाने की जांच.