# डेटा साइन्स फर बिगिनर्समा योगदान गर्ने डेटा साइन्स फर बिगिनर्स पाठ्यक्रममा योगदान गर्न इच्छुक हुनु भएकोमा धन्यवाद! हामी समुदायबाट योगदानलाई स्वागत गर्दछौं। ## सामग्रीको सूची - [आचार संहिता](../..) - [म कसरी योगदान गर्न सक्छु?](../..) - [सुरु गर्दै](../..) - [योगदान दिशानिर्देश](../..) - [पुल रिक्वेस्ट प्रक्रिया](../..) - [शैली दिशानिर्देश](../..) - [योगदानकर्ता लाइसेन्स सम्झौता](../..) ## आचार संहिता यस परियोजनाले [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/) अपनाएको छ। थप जानकारीको लागि [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) हेर्नुहोस् वा कुनै थप प्रश्न वा टिप्पणीका लागि [opencode@microsoft.com](mailto:opencode@microsoft.com) मा सम्पर्क गर्नुहोस्। ## म कसरी योगदान गर्न सक्छु? ### बग रिपोर्ट गर्ने बग रिपोर्ट बनाउनु अघि, कृपया दोहोरिएका समस्याहरू रोक्नका लागि पहिले नै भएका इश्यूहरू जाँच गर्नुहोस्। बग रिपोर्ट बनाउँदा, सकेसम्म धेरै विवरणहरू समावेश गर्नुहोस्: - **स्पष्ट र वर्णनात्मक शीर्षक प्रयोग गर्नुहोस्** - **समस्या पुन: उत्पन्न गर्नका लागि ठ्याक्कै चरणहरू वर्णन गर्नुहोस्** - **विशिष्ट उदाहरणहरू प्रदान गर्नुहोस्** (कोड स्निपेट, स्क्रिनशटहरू) - **तपाईंले देखेको व्यवहार र तपाईंले अपेक्षा गरेको कुरा वर्णन गर्नुहोस्** - **तपाईंको वातावरणको विवरण समावेश गर्नुहोस्** (OS, Python संस्करण, ब्राउजर) ### सुधारको सुझाव दिने सुधारको सुझावहरू स्वागतयोग्य छन्! सुधारको सुझाव दिँदा: - **स्पष्ट र वर्णनात्मक शीर्षक प्रयोग गर्नुहोस्** - **सुझाव गरिएको सुधारको विस्तृत विवरण प्रदान गर्नुहोस्** - **यो सुधार किन उपयोगी हुनेछ भनेर व्याख्या गर्नुहोस्** - **अन्य परियोजनाहरूमा समान सुविधाहरूको सूची बनाउनुहोस्, यदि लागू हुन्छ भने** ### दस्तावेजमा योगदान गर्ने दस्तावेज सुधार सधैं सराहनीय छन्: - **टाइपो र व्याकरण त्रुटिहरू सुधार गर्नुहोस्** - **व्याख्याको स्पष्टता सुधार गर्नुहोस्** - **हराएको दस्तावेज थप्नुहोस्** - **पुरानो जानकारी अद्यावधिक गर्नुहोस्** - **उदाहरणहरू वा प्रयोग केसहरू थप्नुहोस्** ### कोडमा योगदान गर्ने हामी कोड योगदानलाई स्वागत गर्दछौं, जसमा समावेश छन्: - **नयाँ पाठ वा अभ्यासहरू** - **बग सुधारहरू** - **अस्तित्वमा रहेका नोटबुकहरूको सुधार** - **नयाँ डेटासेटहरू वा उदाहरणहरू** - **क्विज एप्लिकेसन सुधारहरू** ## सुरु गर्दै ### पूर्वापेक्षाहरू योगदान गर्नुअघि, सुनिश्चित गर्नुहोस् कि तपाईंले: 1. GitHub खाता बनाएको छ 2. तपाईंको प्रणालीमा Git स्थापना गरिएको छ 3. Python 3.7+ र Jupyter स्थापना गरिएको छ 4. Node.js र npm (क्विज एप योगदानका लागि) 5. पाठ्यक्रम संरचनाको परिचय प्राप्त गरेको छ विस्तृत सेटअप निर्देशनहरूको लागि [INSTALLATION.md](INSTALLATION.md) हेर्नुहोस्। ### फोर्क र क्लोन 1. GitHub मा **रिपोजिटरी फोर्क गर्नुहोस्** 2. **तपाईंको फोर्कलाई स्थानीय रूपमा क्लोन गर्नुहोस्**: ```bash git clone https://github.com/YOUR-USERNAME/Data-Science-For-Beginners.git cd Data-Science-For-Beginners ``` 3. **अपस्ट्रीम रिमोट थप्नुहोस्**: ```bash git remote add upstream https://github.com/microsoft/Data-Science-For-Beginners.git ``` ### ब्रान्च बनाउनुहोस् तपाईंको कामका लागि नयाँ ब्रान्च बनाउनुहोस्: ```bash git checkout -b feature/your-feature-name # or git checkout -b fix/your-bug-fix ``` ब्रान्च नामकरण परम्पराहरू: - `feature/` - नयाँ सुविधाहरू वा पाठहरू - `fix/` - बग सुधारहरू - `docs/` - दस्तावेज परिवर्तनहरू - `refactor/` - कोड पुन: संरचना ## योगदान दिशानिर्देश ### पाठ सामग्रीका लागि पाठहरू योगदान गर्दा वा अस्तित्वमा रहेका पाठहरू संशोधन गर्दा: 1. **अस्तित्वमा रहेको संरचना अनुसरण गर्नुहोस्**: - README.md पाठ सामग्रीसँग - अभ्यासहरू भएको Jupyter नोटबुक - असाइनमेन्ट (यदि लागू हुन्छ) - प्रि र पोस्ट क्विजहरूको लिंक 2. **यी तत्वहरू समावेश गर्नुहोस्**: - स्पष्ट सिकाइ उद्देश्यहरू - चरण-दर-चरण व्याख्या - टिप्पणीसहित कोड उदाहरणहरू - अभ्यासका लागि अभ्यासहरू - थप स्रोतहरूको लिंक 3. **पहुंच सुनिश्चित गर्नुहोस्**: - स्पष्ट, सरल भाषा प्रयोग गर्नुहोस् - छविहरूको लागि alt टेक्स्ट प्रदान गर्नुहोस् - कोड टिप्पणीहरू समावेश गर्नुहोस् - विभिन्न सिकाइ शैलीहरू विचार गर्नुहोस् ### Jupyter नोटबुकका लागि 1. **सबै आउटपुटहरू मेटाउनुहोस्** कमिट गर्नु अघि: ```bash jupyter nbconvert --clear-output --inplace notebook.ipynb ``` 2. **मार्कडाउन सेलहरू समावेश गर्नुहोस्** व्याख्याका साथ 3. **सुसंगत स्वरूप प्रयोग गर्नुहोस्**: ```python # Import libraries at the top import pandas as pd import numpy as np import matplotlib.pyplot as plt # Use meaningful variable names # Add comments for complex operations # Follow PEP 8 style guidelines ``` 4. **तपाईंको नोटबुक पूर्ण रूपमा परीक्षण गर्नुहोस्** पेश गर्नु अघि ### Python कोडका लागि [PEP 8](https://www.python.org/dev/peps/pep-0008/) शैली दिशानिर्देश अनुसरण गर्नुहोस्: ```python # Good practices import pandas as pd def calculate_mean(data): """Calculate the mean of a dataset. Args: data (list): List of numerical values Returns: float: Mean of the dataset """ return sum(data) / len(data) ``` ### क्विज एप योगदानका लागि क्विज एप्लिकेसन संशोधन गर्दा: 1. **स्थानीय रूपमा परीक्षण गर्नुहोस्**: ```bash cd quiz-app npm install npm run serve ``` 2. **लिन्टर चलाउनुहोस्**: ```bash npm run lint ``` 3. **सफलतापूर्वक निर्माण गर्नुहोस्**: ```bash npm run build ``` 4. **Vue.js शैली मार्गदर्शक** र अस्तित्वमा रहेका ढाँचाहरू अनुसरण गर्नुहोस् ### अनुवादका लागि अनुवाद थप्दा वा अद्यावधिक गर्दा: 1. `translations/` फोल्डरको संरचना अनुसरण गर्नुहोस् 2. भाषा कोडलाई फोल्डर नामको रूपमा प्रयोग गर्नुहोस् (जस्तै, फ्रेन्चका लागि `fr`) 3. अंग्रेजी संस्करणको जस्तै फाइल संरचना कायम गर्नुहोस् 4. क्विज लिंकहरूमा भाषा प्यारामिटर समावेश गर्नुहोस्: `?loc=fr` 5. सबै लिंक र स्वरूप परीक्षण गर्नुहोस् ## पुल रिक्वेस्ट प्रक्रिया ### पेश गर्नु अघि 1. **तपाईंको ब्रान्च अद्यावधिक गर्नुहोस्** पछिल्लो परिवर्तनहरूसँग: ```bash git fetch upstream git rebase upstream/main ``` 2. **तपाईंको परिवर्तनहरू परीक्षण गर्नुहोस्**: - सबै संशोधित नोटबुकहरू चलाउनुहोस् - यदि संशोधित गरिएको छ भने क्विज एप परीक्षण गर्नुहोस् - सबै लिंकहरू काम गरिरहेको सुनिश्चित गर्नुहोस् - हिज्जे र व्याकरण त्रुटिहरू जाँच गर्नुहोस् 3. **तपाईंको परिवर्तनहरू कमिट गर्नुहोस्**: ```bash git add . git commit -m "Brief description of changes" ``` स्पष्ट कमिट सन्देशहरू लेख्नुहोस्: - वर्तमान काल प्रयोग गर्नुहोस् ("फिचर थप्नुहोस्" होइन "फिचर थपियो") - अनिवार्य मूड प्रयोग गर्नुहोस् ("कर्सरलाई सार्नुहोस्..." होइन "कर्सर सार्छ...") - पहिलो लाइनलाई 72 अक्षरमा सीमित गर्नुहोस् - सम्बन्धित इश्यूहरू र पुल रिक्वेस्टहरू उल्लेख गर्नुहोस् जब लागू हुन्छ 4. **तपाईंको फोर्कमा पुश गर्नुहोस्**: ```bash git push origin feature/your-feature-name ``` ### पुल रिक्वेस्ट बनाउँदै 1. [रिपोजिटरी](https://github.com/microsoft/Data-Science-For-Beginners) मा जानुहोस् 2. "Pull requests" → "New pull request" क्लिक गर्नुहोस् 3. "compare across forks" क्लिक गर्नुहोस् 4. तपाईंको फोर्क र ब्रान्च चयन गर्नुहोस् 5. "Create pull request" क्लिक गर्नुहोस् ### PR शीर्षक ढाँचा स्पष्ट, वर्णनात्मक शीर्षकहरू प्रयोग गर्नुहोस् निम्न ढाँचालाई अनुसरण गर्दै: ``` [Component] Brief description ``` उदाहरणहरू: - `[Lesson 7] Python नोटबुक इम्पोर्ट त्रुटि सुधार गर्नुहोस्` - `[Quiz App] जर्मन अनुवाद थप्नुहोस्` - `[Docs] README मा नयाँ पूर्वापेक्षाहरू अद्यावधिक गर्नुहोस्` - `[Fix] भिजुअलाइजेसन पाठमा डेटा पथ सुधार गर्नुहोस्` ### PR विवरण तपाईंको PR विवरणमा समावेश गर्नुहोस्: - **के**: तपाईंले के परिवर्तन गर्नुभयो? - **किन**: यी परिवर्तनहरू किन आवश्यक छन्? - **कसरी**: तपाईंले परिवर्तनहरू कसरी कार्यान्वयन गर्नुभयो? - **परीक्षण**: तपाईंले परिवर्तनहरू कसरी परीक्षण गर्नुभयो? - **स्क्रिनशटहरू**: दृश्य परिवर्तनहरूको लागि स्क्रिनशटहरू समावेश गर्नुहोस् - **सम्बन्धित इश्यूहरू**: सम्बन्धित इश्यूहरूमा लिंक गर्नुहोस् (जस्तै, "Fixes #123") ### समीक्षा प्रक्रिया 1. **स्वचालित जाँचहरू** तपाईंको PR मा चल्नेछ 2. **मेन्टेनरहरूले तपाईंको योगदान समीक्षा गर्नेछन्** 3. **प्रतिक्रिया सम्बोधन गर्नुहोस्** थप कमिटहरू बनाउँदै 4. स्वीकृत भएपछि, **मेन्टेनरले तपाईंको PR मर्ज गर्नेछन्** ### तपाईंको PR मर्ज भएपछि 1. तपाईंको ब्रान्च मेटाउनुहोस्: ```bash git branch -d feature/your-feature-name git push origin --delete feature/your-feature-name ``` 2. तपाईंको फोर्क अद्यावधिक गर्नुहोस्: ```bash git checkout main git pull upstream main git push origin main ``` ## शैली दिशानिर्देश ### मार्कडाउन - सुसंगत शीर्षक स्तरहरू प्रयोग गर्नुहोस् - खण्डहरू बीच खाली लाइनहरू समावेश गर्नुहोस् - भाषा निर्दिष्टकर्तासहित कोड ब्लकहरू प्रयोग गर्नुहोस्: ````markdown ```python import pandas as pd ``` ```` - छविहरूमा alt टेक्स्ट थप्नुहोस्: `![Alt text](../../translated_images/ne/image.4ee84a82b5e4c9e6651b13fd27dcf615e427ec584929f2cef7167aa99151a77a.png)` - लाइन लम्बाइलाई उचित राख्नुहोस् (लगभग 80-100 अक्षर) ### Python - PEP 8 शैली मार्गदर्शक अनुसरण गर्नुहोस् - अर्थपूर्ण भेरिएबल नामहरू प्रयोग गर्नुहोस् - फङ्सनहरूमा डकस्ट्रिङहरू थप्नुहोस् - उपयुक्त ठाउँमा प्रकार संकेतहरू समावेश गर्नुहोस्: ```python def process_data(df: pd.DataFrame) -> pd.DataFrame: """Process the input dataframe.""" return df ``` ### JavaScript/Vue.js - Vue.js 2 शैली मार्गदर्शक अनुसरण गर्नुहोस् - प्रदान गरिएको ESLint कन्फिगरेसन प्रयोग गर्नुहोस् - मोड्युलर, पुन: प्रयोग गर्न मिल्ने कम्पोनेन्टहरू लेख्नुहोस् - जटिल तर्कका लागि टिप्पणीहरू थप्नुहोस् ### फाइल संगठन - सम्बन्धित फाइलहरू सँगै राख्नुहोस् - वर्णनात्मक फाइल नामहरू प्रयोग गर्नुहोस् - अस्तित्वमा रहेको निर्देशिका संरचना अनुसरण गर्नुहोस् - अनावश्यक फाइलहरू कमिट नगर्नुहोस् (.DS_Store, .pyc, node_modules, आदि) ## योगदानकर्ता लाइसेन्स सम्झौता यस परियोजनाले योगदान र सुझावहरूलाई स्वागत गर्दछ। अधिकांश योगदानहरूले तपाईंलाई योगदानकर्ता लाइसेन्स सम्झौता (CLA) मा सहमत हुन आवश्यक छ जसले घोषणा गर्दछ कि तपाईंले हामीलाई तपाईंको योगदान प्रयोग गर्न अधिकार दिन सक्ने अधिकार राख्नुहुन्छ। विवरणको लागि, https://cla.microsoft.com मा जानुहोस्। जब तपाईं पुल रिक्वेस्ट पेश गर्नुहुन्छ, CLA-बोटले स्वचालित रूपमा निर्धारण गर्नेछ कि तपाईंलाई CLA प्रदान गर्न आवश्यक छ कि छैन र PR लाई उपयुक्त रूपमा सजाउनेछ (जस्तै, लेबल, टिप्पणी)। बोटले प्रदान गरेको निर्देशनहरू मात्र अनुसरण गर्नुहोस्। तपाईंले यो केवल एक पटक गर्नुपर्नेछ हाम्रो CLA प्रयोग गर्ने सबै रिपोजिटरीहरूमा। ## प्रश्नहरू? - हाम्रो [Discord च्यानल #data-science-for-beginners](https://aka.ms/ds4beginners/discord) जाँच गर्नुहोस् - हाम्रो [Discord समुदाय](https://aka.ms/ds4beginners/discord) मा सामेल हुनुहोस् - अस्तित्वमा रहेका [इश्यूहरू](https://github.com/microsoft/Data-Science-For-Beginners/issues) र [पुल रिक्वेस्टहरू](https://github.com/microsoft/Data-Science-For-Beginners/pulls) समीक्षा गर्नुहोस् ## धन्यवाद! तपाईंको योगदानले यो पाठ्यक्रम सबैका लागि राम्रो बनाउँछ। योगदान गर्न समय दिनुभएकोमा धन्यवाद! --- **अस्वीकरण**: यो दस्तावेज़ AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) प्रयोग गरेर अनुवाद गरिएको हो। हामी यथार्थताको लागि प्रयास गर्छौं, तर कृपया ध्यान दिनुहोस् कि स्वचालित अनुवादमा त्रुटिहरू वा अशुद्धताहरू हुन सक्छ। यसको मूल भाषा मा रहेको मूल दस्तावेज़लाई आधिकारिक स्रोत मानिनुपर्छ। महत्वपूर्ण जानकारीको लागि, व्यावसायिक मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न हुने कुनै पनि गलतफहमी वा गलत व्याख्याको लागि हामी जिम्मेवार हुनेछैनौं।