इस पेज पर, तकनीकी लेखन वाले उस प्रोजेक्ट की जानकारी दी गई है जिसे Google Season of Docs के लिए स्वीकार किया गया है.
प्रोजेक्ट की खास जानकारी
- ओपन सोर्स संगठन:
- Rocket.Chat
- टेक्निकल राइटर:
- Mister Gold
- प्रोजेक्ट का नाम:
- Bot Docs
- प्रोजेक्ट की अवधि:
- स्टैंडर्ड अवधि (तीन महीने)
प्रोजेक्ट का विवरण
प्रोजेक्ट की खास जानकारी
चैट बॉट, आज की टेक्नोलॉजी के सबसे बेहतरीन वर्शन हैं. बोली की पहचान और ऑटोमेशन की सुविधा के साथ-साथ चैट सॉफ़्टवेयर और बॉट में बढ़ती कुल बढ़ोतरी की दर से यह पता चलता है कि बॉट के बारे में जानकारी को आसानी से समझा और इस्तेमाल किया जा सकता है.
पूरी जानकारी देने वाले और साफ़ तौर पर बताने वाले दस्तावेज़ होना ज़्यादा ज़रूरी हो जाता है. इसलिए, बॉट के मौजूदा दस्तावेज़ को ऐक्सेस और नेविगेट करना आसान बनाना होगा. साथ ही, इसमें हर फ़्रेमवर्क के लिए सिलसिलेवार निर्देश और ज़्यादा उदाहरण देने होंगे. साथ ही, इसमें ऐसी जानकारी नहीं होनी चाहिए जो ज़रूरी न हो और जिसे समझना मुश्किल हो.
इस प्रोजेक्ट का मकसद, डेवलपर के बीच मौजूद ज्ञान के अंतर को कम करना है. साथ ही, नए और कम अनुभवी डेवलपर को, दिलचस्पी रखने वाले दर्शकों को नई टेक्नोलॉजी के फ़ायदे देने के लिए बढ़ावा देना है. ऐसा करने के लिए, बॉट बिल्डर को Rocket.Chat में अपने बॉट बनाने का आसान तरीका दिया जा सकता है. इस लक्ष्य का मकसद, Rocket.Chat को इन डेवलपर के लिए पसंदीदा ओपन सोर्स प्लैटफ़ॉर्म बनाना है, ताकि वे चैटबॉट के अपने आइडिया को नया बना सकें, उन्हें बना सकें, और उनकी जांच कर सकें. भले ही, बॉट को डिप्लॉय करने का टारगेट कुछ भी हो.
प्रोजेक्ट से जुड़ी समस्याएं
बॉट के दस्तावेज़ से जुड़ी सबसे अहम समस्याओं की सूची यहां दी गई है:
- बॉट के बारे में समझने में आसान और समझने में आसान नहीं है
- बॉट के आर्किटेक्चर से जुड़े अलग-अलग और ग़ैर-ज़रूरी सेक्शन
- “शुरू करने” से जुड़ी गाइड के निर्देशों का व्यवस्थित न होना. साथ ही, इन निर्देशों का कोई एक सोर्स न होना
- उसमें कोई निर्देश नहीं दिया गया हो या बहुत ज़्यादा निर्देश न दिए गए हों
- Bot SDK टूल के दस्तावेज़ में जानकारी अधूरी और अस्पष्ट हो
प्रोजेक्ट का प्रस्ताव
प्रोजेक्ट के लक्ष्य और ऊपर बताई गई समस्याओं के आधार पर, बेहतर बनाने के लिए सुझाई गई सुविधाओं की सूची यहां दी गई है:
बॉट के दस्तावेज़ अपडेट करें. शुरुआती जानकारी को आसान और एक जैसा बनाने के लिए, इन दस्तावेज़ों को अपडेट किया जाना चाहिए. इनमें धीरे-धीरे आसान से मुश्किल कॉन्टेंट पर स्विच किया जाना चाहिए:
- बॉट के बारे में खास जानकारी: https://rocket.chat/docs/bots/
- बॉट आर्किटेक्चर: https://rocket.chat/docs/bots/bots- अस्थायी/
- बॉट एनवायरमेंट कॉन्फ़िगर करना: https://rocket.chat/docs/bots/configure-bot-environment/
- बॉट का होम पेज: https://github.com/RocketChat/rocketchat.github.io/pull/
बॉट इंस्टॉल करने से जुड़े दस्तावेज़ों को व्यवस्थित करना और उन्हें एक साथ रखना. सभी सब-प्रोजेक्ट में, बॉट के डेटा स्टोर को क्लोन करने और ज़रूरी डिपेंडेंसी इंस्टॉल करने के तरीके के बारे में एक जैसे निर्देश होने चाहिए. साथ ही, इनमें यह भी बताया जाना चाहिए कि बॉट को तुरंत कैसे इस्तेमाल किया जा सकता है, पहले लॉन्च के बाद बॉट के साथ कैसे काम किया जा सकता है, और उसे कैसे डिप्लॉय किया जा सकता है.
Rocket.Chat JS SDK टूल के दस्तावेज़ के प्रज़ेंटेशन में बदलाव करें. SDK टूल के दस्तावेज़, खास टूल का इस्तेमाल करके सोर्स कोड से प्रोग्राम के हिसाब से जनरेट होने चाहिए. इस सुधार से, दस्तावेज़ को पढ़ने में आसानी होगी. साथ ही, हर बार किसी तरीके (या उसमें मौजूद किसी चीज़) में बदलाव होने पर, Github पर दस्तावेज़ को मैन्युअल तरीके से अपडेट करने की ज़रूरत नहीं होगी.
टाइमलाइन
आवेदन की समीक्षा की अवधि: इस दौरान, कम्यूनिटी और उन लोगों के बारे में जानें जिनके साथ आपको काम करना है. समुदाय के योगदान से जुड़ी गाइड और सबसे सही तरीके जानें. पहला योगदान दें.
कम्यूनिटी से जुड़ना: कम्यूनिटी के बारे में जानें. बॉट के दस्तावेज़ की मौजूदा स्थिति देखें. कमज़ोर बिंदुओं की पहचान करें.
पहला हफ़्ता: बॉट के नए विज़न के बारे में मेंटर्स के साथ बातचीत करें. विज़न के हिसाब से, नए बॉट के होम पेज के लिए अपडेट किया गया कॉन्टेंट बनाएं.
दूसरा हफ़्ता: बॉट की खास जानकारी, आर्किटेक्चर, और एनवायरमेंट पेजों के कॉन्फ़िगरेशन की समीक्षा करना
तीसरा हफ़्ता - उन सब-प्रोजेक्ट (बॉट के GitHub रिपॉज़िटरी) की सूची तय करें जिन्हें मुख्य दस्तावेज़ में ट्रांसफ़र किया जाना चाहिए. - तय करें कि ट्रांसफ़र के बाद बॉट की वेबसाइटों को किस तरह काम करना चाहिए. - एक टेंप्लेट तय करें जिसका इस्तेमाल इन रिपॉज़िटरी में जानकारी को व्यवस्थित करने के लिए किया जाएगा. - ट्रांसफ़र के लिए मुख्य दस्तावेज़ तैयार करें
चौथा हफ़्ता: bBot का रिपॉज़िटरी ट्रांसफ़र करना. तय किए गए टेंप्लेट के हिसाब से जानकारी व्यवस्थित करना
पांचवां हफ़्ता: Hubot के रेपो को ट्रांसफ़र करना. तय किए गए टेंप्लेट के हिसाब से जानकारी व्यवस्थित करना
छठा हफ़्ता: Botkit रेपो को ट्रांसफ़र करना. तय किए गए टेंप्लेट के हिसाब से जानकारी व्यवस्थित करना
सातवां हफ़्ता: Rasa repo को ट्रांसफ़र करना. तय किए गए टेंप्लेट के हिसाब से जानकारी व्यवस्थित करना
आठवां हफ़्ता: BotPress का रिपॉज़िटरी ट्रांसफ़र करना. तय किए गए टेंप्लेट के हिसाब से जानकारी व्यवस्थित करना
नौवां हफ़्ता: सभी बॉट सब-प्रोजेक्ट ट्रांसफ़र करने के बाद, दस्तावेज़ के मुख्य स्ट्रक्चर और पेजों को फ़ाइनल करना
दसवां हफ़्ता: JSDoc कॉन्फ़िगरेशन की जांच करना. JSDoc आर्टफ़ैक्ट को सेव करने के लिए कोई जगह तय करें. ड्राइवर के तरीकों का दस्तावेज़ बनाना
11वां हफ़्ता: ड्राइवर के तरीकों का दस्तावेज़ तैयार करना
12वां हफ़्ता: नतीजों का आकलन करना
उपलब्धियों का विस्तृत ब्रेकडाउन
आवेदन की समीक्षा में लगने वाला समय
इस अवधि के पहले हिस्से में, कम्यूनिटी चैनलों और सोर्स कोड की जांच की जाएगी. साथ ही, प्रोजेक्ट में दिलचस्पी रखने वाले लोगों से संपर्क किया जाएगा.
इस अवधि के दूसरे हिस्से में, योगदान देने के सामान्य तरीके, योगदान देने से जुड़ी गाइड, और सबसे सही तरीकों की जांच की जाएगी. इस दौरान, यह देखा जा सकेगा कि यह फ़्लो कैसे काम करता है.
कम्यूनिटी बॉन्डिंग
इस दौरान, दस्तावेज़ों के रिपॉज़िटरी और उसके रोडमैप की बारीकी से जांच की जाएगी. इस जानकारी के आधार पर, उन कमजोरियों की पहचान की जा सकती है जिन्हें बेहतर बनाया जा सकता है. जैसे, अधूरे या मौजूद न होने वाले हिस्से. जहां भी हो सके वहां पुश रिक्वेस्ट बनाएं.
पहला हफ़्ता - दूसरा हफ़्ता
पहला हफ़्ता, बॉट के दस्तावेज़ तैयार करने के नए विज़न को अलाइन करने के लिए, मेंटॉर से बातचीत करने में खर्च होगा. यह जानकारी, बदले गए दस्तावेज़ों का हिस्सा होगी. इसका मकसद, पाठकों को बॉट के बारे में सामान्य जानकारी देना और उसके काम करने के सिद्धांतों के बारे में बताना है.
दूसरे हफ़्ते में, बॉट के नए होम पेज के लिए कॉन्टेंट बनाया जाएगा. यह कॉन्टेंट, बॉट की खास जानकारी, आर्किटेक्चर, और एनवायरमेंट पेजों के कॉन्फ़िगरेशन के हिसाब से होगा.
बदले गए दस्तावेज़ों में इन चीज़ों पर ज़्यादा ध्यान दिया जाएगा: - नए डेवलपर, जो अपना बॉट बनाना चाहते हैं - पेशेवर [बॉट] डेवलपर, जो बिना किसी शुल्क के इस्तेमाल किए जा सकने वाले और आसानी से इस्तेमाल किए जा सकने वाले प्लैटफ़ॉर्म का इस्तेमाल करके, अपने बॉट को डिज़ाइन/कोड/जांच करना चाहते हैं या अपने मौजूदा बॉट को उस प्लैटफ़ॉर्म पर अडैप्ट करना चाहते हैं - पेशेवर बॉट डेवलपर, जो अपने फ़्रेमवर्क की प्राथमिकताओं के साथ Rocket.Chat के लिए बॉट बनाना चाहते हैं
काम का दायरा यह होगा:
- ऐसे सेक्शन हटाएं जो काम के नहीं हैं.
उदाहरण के लिए, नीचे दिए गए सेक्शन में ओवरलैप होने वाली जानकारी शेयर की जाती है:
- बॉट, मैसेज कैसे भेजते और पाते हैं? बॉट की खास जानकारी (https://rocket.chat/docs/bots/#how-do-bots-send-and-receive-messages) में
- बॉट आर्किटेक्चर में मैसेज स्ट्रीम (https://rocket.chat/docs/bots/bots-assets/#message-streams)
- बॉट के उपयोगकर्ता बनाने के बारे में जानकारी देने वाले लेख में, अपने बॉट से बात करना (https://rocket.chat/docs/bots/creating-bot-users/#talk-to-your-bot)
बॉट की खास जानकारी वाले पेज के सेक्शन और वाक्यांशों में बदलाव करें, ताकि DRY सिद्धांत का पालन करते हुए, बॉट के पारिस्थितिक तंत्र और फ़ंक्शन के बारे में साफ़ तौर पर बताया जा सके.
""अंदरूनी जानकारी"" से जुड़े सेक्शन और वाक्यांशों में बदलाव करें:
- तकनीकी तौर पर बॉट क्या होता है
- इसमें कौनसे कॉम्पोनेंट शामिल होते हैं
- ये कॉम्पोनेंट एक साथ कैसे काम करते हैं
बॉट बनाने के लिए ज़रूरी चरणों के बारे में बताने वाली, तुरंत शुरू करने की गाइड लिखें. साथ ही, ज़्यादा जानकारी के लिए ""बॉट एनवायरमेंट कॉन्फ़िगर करना"" के लिंक को शामिल करें. यह गाइड, 'इनवायरनमेंट का कॉन्फ़िगरेशन' पेज में दिखेगी.
इस तरह, डेवलपर को बॉट के काम करने के तरीके और उनके काम करने की क्षमता के बारे में साफ़ तौर पर पता चलेगा. इसके बाद, डेवलपर अपना पहला बॉट बना पाएगा.
डिलीवर की जाने वाली सेवाएं: बॉट नेटवर्क और आर्किटेक्चर के बारे में जानकारी देने वाली शुरुआती गाइड में बदलाव करके, उन्हें आसानी से फ़ॉलो किया जा सकता है.
तीसरा से नौवां हफ़्ता
तीसरे से लेकर नौवें हफ़्ते तक, GitHub के सभी रिपॉज़िटरी में मौजूद बॉट के सभी दस्तावेज़ों को एक साथ लाने और इन दस्तावेज़ों को मुख्य दस्तावेज़ (https://rocket.chat/docs/bots/) में ट्रांसफ़र करने पर काम किया जाएगा. इन गतिविधियों को कई चरणों में बांटा जा सकता है:
परिभाषा
बॉट के उन सब-प्रोजेक्ट की सूची तय करना जिन्हें मुख्य दस्तावेज़ में माइग्रेट किया जाना चाहिए. बताएं कि ट्रांसफ़र के बाद, बॉट की वेबसाइटें कैसे काम करेंगी. उदाहरण के लिए, कुछ बॉट, bbot (http://bbot.chat) के पास github के अलावा दस्तावेज़ों वाली अलग-अलग साइटें होती हैं.
टेंप्लेट
पहले चरण में तय किए गए बॉट सब-प्रोजेक्ट में जानकारी को व्यवस्थित करने के लिए, टेंप्लेट (कोई तरीका) तय करना और बनाना. यह टेंप्लेट कुछ ऐसा दिख सकता है:
a. रेपो का क्लोन बनाएं
b. डिपेंडेंसी इंस्टॉल करना
c. बॉट को कॉन्फ़िगर करना
d. बॉट चलाना
e. ऐडवांस कॉन्फ़िगरेशन
f. आगे की कार्रवाई
जिन निर्देशों में कुछ खास आउटपुट शामिल होते हैं, जैसे कि ""कोई बॉट चलाएं"", उनके साथ उस आउटपुट की लाइव प्रज़ेंटेशन होनी चाहिए. इसके लिए, Term Sheets टूल (https://neatsoftware.github.io/term-sheets/) का इस्तेमाल करें.
इसके अलावा, शुरुआती ""क्विक स्टार्ट"" चरण (चरण a - d) को ज़्यादा साफ़ बनाने के लिए, सभी चरणों को एक लाइव प्रज़ेंटेशन में भी जोड़ा जाएगा.
नए लोग ऐसे बॉट के साथ चैट कर सकते हैं जिनके पास ""उदाहरण कोड" है. ऐसा इसलिए, ताकि नए लोग संभावित फ़ेलियर से सुरक्षित महसूस करें. इसके लिए, उन्हें खेल के मैदान के साथ ही कोड के उदाहरण उपलब्ध कराने चाहिए. जैसे, रॉकेट चैट ईको-सिस्टम में ग्लिच का इस्तेमाल.
वीडियो की रणनीति
ट्रांसफ़र के लिए मुख्य दस्तावेज़ तैयार करना. इसमें सही फ़ोल्डर और पेज स्ट्रक्चर बनाना शामिल है. साथ ही, उस स्ट्रक्चर के हिसाब से विषय-सूची में बदलाव करना भी शामिल है.
फ़ाइनल स्ट्रक्चर कुछ ऐसा दिख सकता है:
- बॉट
- बॉट का आर्किटेक्चर
- बॉट उपयोगकर्ता बनाएं
- बॉट एनवायरमेंट कॉन्फ़िगर करें
- बॉट चलाना
- bBot बॉट
- Hubot बॉट
- Botkit बॉट
- Rasa बॉट
- Botpress बॉट
- बॉट
माइग्रेशन
तय किए गए बॉट सब-प्रोजेक्ट को एक-एक करके मुख्य दस्तावेज़ में माइग्रेट करना. बॉट के दस्तावेज़ के हर हिस्से का एक अलग पेज होगा. इसमें मौजूदा वर्शन (उदाहरण के लिए, bBot चलाना) जैसे सब-सेक्शन होंगे.
- बॉट चलाना
- bBot बॉट
- Hubot बॉट
- Botkit बॉट
- Rasa बॉट
- बॉटप्रेस बॉट
- बॉट चलाना
संगठन
इसमें कई गतिविधियां शामिल होंगी:
- दूसरे चरण में बताए गए टेंप्लेट के हिसाब से, हर बॉट के GitHub repo से जानकारी को व्यवस्थित करना.
- मुख्य दस्तावेज़ की हैरारकी में, सभी बॉट सब-प्रोजेक्ट से जुड़े सामान्य कॉम्पोनेंट (जैसे, एनवायरमेंट वैरिएबल) को एक लेवल ऊपर ले जाना और बॉट सब-प्रोजेक्ट को इन कॉम्पोनेंट से लिंक करना
- काम करने वाले हर फ़्रेमवर्क के लिए, “हैलो वर्ल्ड” बॉट का उदाहरण बनाना. इस उदाहरण का इस्तेमाल, Rocket.Chat के लिए “शुरू करना” बॉट के तौर पर किया जाएगा.
यह ज़रूरी क्यों है? Rocket.Chat के साथ काम करने वाले सभी आठ सब-प्रोजेक्ट: alexa, hubot, chatops-gitsy, botpress, rasa, bbot, botkit, BOTswana, hubot-gitsy में, डेवलपर के लिए 'रीड मी' फ़ॉर्मैट में अलग-अलग दस्तावेज़ मौजूद हैं. इन README में कोई स्ट्रक्चर नहीं होता. इनमें, शुरू करने के तरीके के बारे में पुरानी जानकारी होती है या बहुत ज़्यादा जानकारी होती है. कभी-कभी, इसमें तीन बार एक ही जानकारी दी जाती है. जैसे, Docker का इस्तेमाल करके बॉट चलाने के बारे में जानकारी, hubot (https://github.com/RocketChat/hubot-rocketchat). साथ ही, इनमें एनवायरमेंट वैरिएबल वाली टेबल भी होती है.
ये पहलू, एक डेवलपर (नए उपयोगकर्ता के रूप में) को भ्रम में डाल देते हैं और उन्हें बहुत सारी जानकारी उपलब्ध कराते हैं. इस वजह से, डेवलपर कुछ टर्मिनल निर्देशों का इस्तेमाल करके, बॉट तैयार नहीं कर पाएगा.
ट्रांसफ़र और ऑप्टिमाइज़ेशन पूरा होने के बाद, GitHub में मौजूद बॉट रिपॉज़िटरी में README फ़ाइलें होंगी. इनमें मुख्य दस्तावेज़ का रेफ़रंस दिया जाएगा.
इससे ये फ़ायदे मिलेंगे: - एक जैसा स्ट्रक्चर, जिससे डेवलपर नए बॉट इस्तेमाल करना आसानी से शुरू कर पाएंगे - बॉट के दस्तावेज़ों के लिए एक ही सोर्स - एक जैसा स्ट्रक्चर होने की वजह से, किसी भी बॉट के बारे में ज़रूरी जानकारी ढूंढना आसान हो जाता है
डिलीवर किए जाने वाले आइटम: एक ही जगह (मुख्य दस्तावेज़) पर, Rocket.Chat के साथ काम करने वाले बॉट बनाने, कॉन्फ़िगर करने, और चलाने के आसान निर्देशों को व्यवस्थित किया गया है.
10वां हफ़्ता
इस हफ़्ते JSDoc (https://devdocs.io/jsdoc/) को कॉन्फ़िगर किया जाएगा, ताकि इनलाइन टिप्पणियों की वैल्यू बढ़ाई जा सके. इसमें इस तरह का कॉन्टेंट शामिल है:
- यह पक्का करना कि JSDoc को ड्राइवर के तरीकों के लिए टिप्पणियों को पार्स करने के लिए, सही तरीके से कॉन्फ़िगर किया गया है (https://github.com/RocketChat/Rocket.Chat.js.SDK#driver-methods)
- postman-jsdoc-theme (https://github.com/postmanlabs/postman-jsdoc-theme) इंस्टॉल करें, ताकि एचटीएमएल आउटपुट ज़्यादा साफ़ और डेवलपर के लिए आसान हो
- उस जगह की जानकारी देना जहां JSDoc दस्तावेज़ के आर्टफ़ैक्ट पब्लिश किए जाएंगे
- ड्राइवर के तरीकों से जुड़ी सभी फ़ंक्शन (dist/lib/driver.js में) फ़ाइल के बारे में बताना. इसमें ये चीज़ें शामिल हैं:
- पेमेंट के तरीकों की जानकारी जोड़ना या उसमें बदलाव करना
- तरीके के पैरामीटर के ब्यौरे जोड़ना या उनमें बदलाव करना
- अगर लागू हो, तो अनुरोध के तरीके के उदाहरण जोड़ना या उनमें बदलाव करना
- अगर लागू हो, तो तरीके के रिस्पॉन्स के उदाहरण जोड़ना/उनमें बदलाव करना
डेवलपर के लिहाज़ से, इनलाइन दस्तावेज़ को लिखना और उसे मैनेज करना आसान होता है. साथ ही, अपने-आप जनरेट होने की सुविधा की मदद से, GitHub (https://github.com/RocketChat/Rocket.Chat.js.SDK#driver-methods) पर होस्ट किए गए स्टैटिक दस्तावेज़ों से छुटकारा पाया जा सकता है. SDK के तरीकों में होने वाले हर बदलाव के लिए, इन दस्तावेज़ों को अलग से अपडेट करना पड़ता है.
11वां हफ़्ता
इस हफ़्ते में, ड्राइवर के तरीकों की पूरी जानकारी देने का काम पूरा होगा. पूरा होने के बाद, ब्यौरे की सटीक और एक जैसी होने की जांच की जाएगी. इसके बाद, नया दस्तावेज़ दुनिया भर में पब्लिश किया जाएगा.
12वां हफ़्ता
पूरे हो चुके काम को फ़ाइनल करना. स्वीकार करने से जुड़ी जांचें.