diff --git a/translations/kn/9-chat-project/README.md b/translations/kn/9-chat-project/README.md new file mode 100644 index 000000000..853dfa981 --- /dev/null +++ b/translations/kn/9-chat-project/README.md @@ -0,0 +1,1591 @@ + +# AI ಜೊತೆ ಚಾಟ್ ಸಹಾಯಕನನ್ನು ನಿರ್ಮಿಸಿ + +ಸ್ಟಾರ್ ಟ್ರೆಕ್‌ನಲ್ಲಿ ಕ್ರೂ ಯಾವಾಗ ಹಡಗಿನ ಕಂಪ್ಯೂಟರ್ ಜೊತೆ ಸಹಜವಾಗಿ ಮಾತಾಡುತ್ತಿದ್ದರು, ಅದಕ್ಕೆ ಸಂಕೀರ್ಣ ಪ್ರಶ್ನೆಗಳನ್ನು ಕೇಳುತ್ತ ಮತ್ತು ಆಲೋಚನಾಶೀಲ ಉತ್ತರಗಳನ್ನು ಪಡೆಯುತ್ತಿದ್ದರು ಅನ್ನೋದು ನೆನಪಾಗಿದೆಯೇ? 1960ರ ದಶಕದಲ್ಲಿ ಅದು ಶುದ್ಧ ವೈಜ್ಞಾನಿಕ ಕತೆ ಅನ್ನಿಸಿಕೊಂಡಿದ್ದವು ಈಗ ನೀವು ಈಗಾಗಲೇ ತಿಳಿದಿರುವ ವೆಬ್ ತಂತ್ರಜ್ಞಾನಗಳನ್ನು ಉಪಯೋಗಿಸಿ ಬರುತ್ತದೆ. + +ಈ ಪಾಠದಲ್ಲಿ, ನಾವು HTML, CSS, ಜಾವಾಸ્ક್ರಿಪ್ಟ್ ಮತ್ತು ಕೆಲವು ಬ್ಯಾಕ್‌ಎಂಡ್ ಇಂಟಿಗ್ರೇಶನ್ ಬಳಸಿ AI ಚಾಟ್ ಸಹಾಯಕನನ್ನು ರಚಿಸುವುದು. ನೀವು ಈಗಾಗಲೇ ಕಲಿಯುತ್ತಿರುವ ಸೌಕర్యಗಳು ಶಕ್ತಿ ಹೊಂದಿದ AI ಸೇವೆಗಳೊಂದಿಗೆ ಹೇಗೆ ಸಂಪರ್ಕ ಹೊಂದುವುದನ್ನು ಕಂಡುಕೊಳ್ಳುತ್ತೀರಿ, ಅವು ಸಂಕೇತಾಂಶಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಮತ್ತು ಅರ್ಥಪೂರ್ಣ ಪ್ರತಿಕ್ರಿಯೆಗಳನ್ನು ಉತ್ಪಾದಿಸಲು ಸಾಧ್ಯವೆಂದು. + +AI ಅನ್ನು ಅದೃಷ್ಟಂತೆ ವೈಭವೀಯ ಗ್ರಂಥಾಲಯಕ್ಕೆ ಹೊಂದಿರುವಂತೆಯೆ ಕಲ್ಪಿಸಿಕೊಳ್ಳಿ, ಅದು ಕೇವಲ ಮಾಹಿತಿಯನ್ನು ಹುಡುಕುವುದಲ್ಲದೆ, ನಿಮ್ಮ ನಿರ್ದಿಷ್ಟ ಪ್ರಶ್ನೆಗಳಿಗೆ ಹೊಂದಿಕೊಳ್ಳುವ ಸಮಗ್ರ ಉತ್ತರಗಳನ್ನು ಸಂಶ್ಲೇಷಿಸುತ್ತದೆ. ಸಾವಿರಾರು ಪುಟಗಳ ಮೂಲಕ ಹುಡುಕುವುದನ್ನು ಬದಲು, ನೀವು ನೇರ, ಸಾಂಕೇತಿಕ ಉತ್ತರಗಳನ್ನು ಪಡೆಯುತ್ತೀರಿ. + +ಇಂಟಿಗ್ರೇಶನ್ ಪರಿಚಿತ ವೆಬ್ ತಂತ್ರಜ್ಞಾನಗಳ ಮೂಲಕ ನಡೆಯುತ್ತದೆ. HTML ಚಾಟ್ ಇಂಟರ್ಫೇಸ್ ಸೃಷ್ಟಿಸುತ್ತದೆ, CSS ದೃಶ್ಯ ವಿನ್ಯಾಸವನ್ನು ನಿಯಂತ್ರಿಸುತ್ತದೆ, ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಬಳಕೆದಾರರ ಮನೋಭಾವವನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು ಬ್ಯಾಕ್‌ಎಂಡ್ API ಎಲ್ಲವನ್ನೂ AI ಸೇವೆಗಳಿಗೆ ಸಂಪರ್ಕಗೊಳಿಸುತ್ತದೆ. ಇದು ವಾದ್ಯಮಾಲೆಯ ವಿವಿಧ ಭಾಗಗಳು ಒಟ್ಟಾಗಿ ಸಂಗೀತ ಸೃಷ್ಟಿಸುವಂತೆಯೇ. + +ನಾವು ಮೂಲತಃ ಪ್ರಾಕೃತಿಕ ಮಾನವ ಸಂವಹನ ಮತ್ತು ಯಂತ್ರ ಪ್ರಕ್ರಿಯೆ ಮಧ್ಯೆ ಸೇತುವೆಯನ್ನು ನಿರ್ಮಿಸುತ್ತಿದ್ದೇವೆ. ನೀವು AI ಸೇವೆಗಳ ಇಂಟಿಗ್ರೇಶನ್ ತಾಂತ್ರಿಕ ಜಾರಿಗೆ ಮತ್ತು ಸಂವಹನ ಎಷ್ಟರಮಟ್ಟಿಗೆ ಸಹಜವಾಗಿಯೇ ಅನಿಸುತ್ತೆಂಬಿಕೆ ವಿನ್ಯಾಸ ಮಾದರಿಗಳನ್ನು ಕಲಿಯುತ್ತೀರಿ. + +ಈ ಪಾಠದ ಕೊನಕ್ಕೆ, AI ಇಂಟಿಗ್ರೇಶನ್ ಗುಪ್ತ ಪ್ರಕ್ರಿಯೆ ಎಂಬುದಿಲ್ಲದೇ ಇನ್ನೊಂದು API ಅನ್ನು ಬಳಸುವಂತೆ ಅನುಭವವಾಗುವುದು. ನೀವು ChatGPT ಮತ್ತು Claude ಮುಂತಾದ ಈಗಿನ AI ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗೆ ಶಕ್ತಿಯನ್ನು ನೀಡುವ ಮೂಲಭೂತ ಮಾದರಿಗಳನ್ನು ವೆಬ್ ಅಭಿವೃದ್ಧಿ ತತ್ವಗಳೊಂದಿಗೆ ಅರ್ಥಮಾಡಿಕೊಳ್ಳುತ್ತೀರಿ. + +## ⚡ ಮುಂದಿನ 5 ನಿಮಿಷಗಳಲ್ಲಿ ನೀವು ಮಾಡಬಹುದು + +**ವ್ಯಸ್ತಿ ಅಭಿವೃದ್ಧಿಗಾರರಿಗಾಗಿ ತ್ವರಿತ ಆರಂಭ ಮಾರ್ಗ** + +```mermaid +flowchart LR + A[⚡ 5 ನಿಮಿಷಗಳು] --> B[GitHub ಟೋಕನ್ ಪಡೆಯಿರಿ] + B --> C[AI ಪ್ಲೇಗ್ರೌಂಡ್ ಪರೀಕ್ಷಿಸಿ] + C --> D[Python ಕೋಡ್ ನಕಲಿಸಿ] + D --> E[AI ಪ್ರತಿಕ್ರಿಯೆಗಳನ್ನು ನೋಡಿ] +``` +- **ಮೊದಲ 1 ನಿಮಿಷ**: [GitHub Models Playground](https://github.com/marketplace/models/azure-openai/gpt-4o-mini/playground) ವಿಸಿಟ್ ಮಾಡಿ ಮತ್ತು ವೈಯಕ್ತಿಕ ಪ್ರವೇಶ ಚಿಹ್ನೆಯನ್ನು ರಚಿಸಿ +- **ಎರಡನೇ 2ನೋ ನಿಮಿಷ**: ಪ್ಲೇಗ್ರೌಂಡ್ ಇಂಟರ್ಫೇಸ್ನಲ್ಲಿ ನೇರವಾಗಿ AI ಸಂವಹನವನ್ನು ಪರೀಕ್ಷಿಸಿ +- **ಮೂರು 3ನೋ ನಿಮಿಷ**: "Code" ಟ_TAB_ ಅನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ ಮತ್ತು ಪೈಥಾನ್ ಸಂಕ್ಷಿಪ್ತವನ್ನು ನಕಲುಮಾಡಿ +- **ನಾಲ್ಕು 4ನೋ ನಿಮಿಷ**: ನಿಮ್ಮ ಟೋಕನ್ ಜೊತೆ ಸ್ಥಳೀಯವಾಗಿ ಕೋಡ್ ಅನ್ನು ಚಲಿಸಿ: `GITHUB_TOKEN=your_token python test.py` +- **ಐದು 5ನೋ ನಿಮಿಷ**: ನಿಮ್ಮ ಮೊದಲ AI ಪ್ರತಿಕ್ರಿಯೆ ನಿಮ್ಮದೇ ಕೋಡಿನಿಂದ ಉತ್ಪಾದಿತವಾಗುವ ನೋಡಿ + +**ತ್ವರಿತ ಪರೀಕ್ಷಾ ಕೋಡ್**: +```python +import os +from openai import OpenAI + +client = OpenAI( + base_url="https://models.github.ai/inference", + api_key="your_token_here" +) + +response = client.chat.completions.create( + messages=[{"role": "user", "content": "Hello AI!"}], + model="openai/gpt-4o-mini" +) + +print(response.choices[0].message.content) +``` + +**ಇದಕ್ಕಾಗಿ ಏಕೆ ಮಹತ್ವವಿದೆ**: 5 ನಿಮಿಷಗಳಲ್ಲಿ ನೀವು ಕಾರ್ಯಕ್ರಮಾತ್ಮಕ AI ಸಂವಹನದ ಮಾಯಾಜಾಲವನ್ನು ಅನುಭವಿಸುವಿರಿ. ಇದು ನೀವು ಬಳಕೆಯಲ್ಲಿರುವ ಪ್ರತಿಯೊಂದು AI ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಶಕ್ತಿ ನೀಡುವ ಮೂಲ ಕಟ್ಟಡವನ್ನು ಪ್ರತಿಬಿಂಬಿಸುತ್ತದೆ. + +ನಿಮ್ಮ ಪೂರ್ಣಗೊಂಡ ಯೋಜನೆ ಹೀಗಿರಬಹುದು: + +![ವ್ಯವಸ್ಥಾಪಕರ ಮತ್ತು AI ಸಹಾಯಕರ ನಡುವೆ ಸಂಭಾಷಣೆಯನ್ನು ತೋರizingಾಗುವ ಚಾಟ್ ಅಪ್ಲಿಕೇಶನ್ ಇಂಟರ್ಫೇಸ್](../../../translated_images/screenshot.0a1ee0d123df681b.kn.png) + +## 🗺️ AI ಅಪ್ಲಿಕೇಶನ್ ಅಭಿವೃದ್ಧಿಯ ಮೂಲಕ ನಿಮ್ಮ ಕಲಿಕೆಯ ಪ್ರಯಾಣ + +```mermaid +journey + title ವೆಬ್ ಅಭಿವೃದ್ಧಿಯಿಂದ AI ಏಕೀಕರಣದವರೆಗೆ + section AI ನೆಲೆಯು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು + ನಿರ್ಮಾಣಾತ್ಮಕ AI ಸಂಪ್ರದಾಯಗಳನ್ನು ಕಂಡುಹಿಡಿಯಿರಿ: 4: You + GitHub ಮಾದರಿಗಳ ವೇದಿಕೆಯನ್ನು ಅನ್ವೇಷಿಸಿ: 6: You + AI ಪರಾಮಿತಿಗಳು ಮತ್ತು ಪ್ರಾಂಪ್ಟ್‌ಗಳನ್ನು ಪರಿಣತಗೊಳಿಸಿ: 8: You + section ಬ್ಯಾಕೆಂಡ್ ಏಕೀಕರಣ + Python API ಸರ್ವರ್ ನಿರ್ಮಿಸಿ: 5: You + AI ಕಾರ್ಯ ಕರೆಗಳನ್ನು ಜಾರಿಗೆ ತರುತ್ತದೆ: 7: You + ಅಸಿಂಕ್ರೊನಸ್ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ನಿರ್ವಹಿಸಿ: 8: You + section ಫ್ರಂಟ್‌ಎಂಡ್ ಅಭಿವೃದ್ಧಿ + ಆಧುನಿಕ ಚಾಟ್ ಇಂಟರ್ಪೇಸ್ ರಚಿಸಿ: 6: You + ನೈಜಕಾಲ ಸಂವಹನಗಳಲ್ಲಿ ಪರಿಣತಿ ಸಾಧಿಸಿ: 8: You + ಪ್ರತ್ಯುತ್ತರ ಸಮರ್ಥ ಬಳಕೆದಾರ ಅನುಭವವನ್ನು ನಿರ್ಮಿಸಿ: 9: You + section ವೃತ್ತಿಪರ ಅಪ್ಲಿಕೇಶನ್ + ಪೂರ್ಣ AI ವ್ಯವಸ್ಥೆಯನ್ನು ನಿಯೋಜಿಸಿ: 7: You + ಕಾರ್ಯಕ್ಷಮತೆ ಮಾದರಿಗಳನ್ನು ಧಾರಾಳಗೊಳಿಸಿ: 8: You + ಉತ್ಪಾದನಾ-ಸಿದ್ಧ ಅಪ್ಲಿಕೇಶನ್ ರಚಿಸಿ: 9: You +``` +**ನಿಮ್ಮ ಪ್ರಯಾಣ ಗುರಿ**: ಈ ಪಾಠದ ಕೊನೆಗೆ, ನೀವು ChatGPT, Claude ಮತ್ತು Google Bard ಮುಂತಾದ ಆಧುನಿಕ AI ಸಹಾಯಕರನ್ನು ಶಕ್ತಿಗೊಳಿಸುವ ವಂಶ, ತಂತ್ರಜ್ಞಾನ ಮತ್ತು ಮಾದರಿಗಳನ್ನು ಬಳಸಿ ಸಂಪೂರ್ಣ AI ಚಾಲಿತ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ನಿರ್ಮಿಸಿದ್ದಿರಿ. + +## AI ಅರ್ಥಮಾಡಿಕೊಳ್ಲುವುದು: ರಹಸ್ಯದಿಂದ ನಿಪುಣತೆಗೆ + +ಕೋಡಿನಲ್ಲಿ ಮುಳುಗದೆ ಮೊದಲು, ನಾವು ಯಾರು ಸೇರಿದ್ದಾರೆ ಅರ್ಥಮಾಡಿಕೊಳ್ಳೋಣ. ನೀವು APIಗಳನ್ನು ಮೊದಲು ಬಳಸಿದ್ರೆ, ಮೂಲತಃ ಕಾಪಿ ವಿನ್ಯಾಸ ತಿಳಿದಿರಬಹುದು: ವಿನಂತಿಯನ್ನು ಕಳುಹಿಸಿ, ಉತ್ತರವನ್ನು ಸ್ವೀಕರಿಸಿ. + +AI API ಗಳು ಸಮಾನ ರಚನೆ ತಾಳುತ್ತವೆ, ಆದರೆ ಡೇಟಾಬೇಸಿನಿಂದ ಪೂರ್ವ-ಸಂಗ್ರಹಿತ ಡೇಟಾವನ್ನು ಪಡೆಯುವುದನ್ನು ಬದಲಾಗಿ, ಅವು ವಿಮರ್ಶಿಸಿದ್ದ ಅಷ್ಟ ದೋಷಪಡುವಿಕೆಯ ಪಠ್ಯ ಬಳಸಿ ಹೊಸ ಉತ್ತರಗಳನ್ನು ಸೃಷ್ಟಿಸುತ್ತವೆ. ಅದನ್ನು ಗ್ರಂಥಾಲಯ ಕ್ಯಾಟಲೋಗ್ ವ್ಯವಸ್ಥೆ ಮತ್ತು ನೋಡಗರ ಪಲ್ಲಟಿಸುವ ಗ್ರಂಥಜ್ಞರ ನಡುವಿನ ಭೇದವಾಗಿ ಭಾವಿಸಿ. + +### "ಸೃಜನಶೀಲ AI" ಎಂದರೆ ಏನು? + +ರೋಸೆಟ್ಟಾ ಸ್ಟೋನ್ ಹೇಗೆ ಶಾಸ್ತ್ರಜ್ಞರು ಈಜಿಪ್ಷಿಯನ್ ಹೈರೋಗ್ಲಿಫ್ಸ್ ಅನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಪ್ರಜ್ಞೆ ನಿಯಮಗಳನ್ನು ಕಂಡುಕೊಂಡಿತು ಅನ್ನೋದನ್ನು ಗಮನಿಸಿ. AI ಮಾದರಿಗಳು ಸಹ ಹಾಗೆ ಕೆಲಸ ಮಾಡುತ್ತವೆ – ಅವು ಪದಗಳ ಗಣನೀಯ ಪ್ರಮಾಣದಲ್ಲಿ ನಿರಂತರವಾಗಿ ಉದಾಹರಣೆಗಳನ್ನು ಕಂಡು ಭಾಷೆಯ ಕಾರ್ಯವಿಧಾನವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುತ್ತವೆ ಮತ್ತು ಆ ನಿಯಮಗಳನ್ನು ಹೊಸ ಪ್ರಶ್ನೆಗಳಿಗೆ ಸೂಕ್ತ ಉತ್ತರಗಳನ್ನು ಸೃಷ್ಟಿಸಲು ಉಪಯೋಗಿಸುತ್ತವೆ. + +**ಸರಳ ಹೋಲಿಕೆಯನ್ನು ನೀಡುತ್ತೇನೆ:** +- **ಸಾಂಪ್ರದಾಯಿಕ ಡೇಟಾಬೇಸ್**: ನಿಮ್ಮ ಜನನ ಪ್ರಮಾಣಪತ್ರ ಕೇಳುವುದಂತೆ – ಪ್ರತಿಯೊಮ್ಮೆ ನಿಖರ ಅದೇ ಡಾಕ್ಯುಮೆಂಟ್ ದೊರೆಯುತ್ತದೆ +- **ಹುಡುಕು ಎಂಜಿನ್**: ಗ್ರಂಥಜ್ಞರನ್ನು ಪ್ರಾಣಿ ಪುಸ್ತಕಗಳನ್ನು ಹುಡುಕಲು ಕೇಳುವುದಂಥ – ಅವರು ಲಭ್ಯವಿರುವುದನ್ನು ತೋರಿಸುತ್ತಾರೆ +- **ಸೃಜನಶೀಲ AI**: ನಿಮ್ಮ ಅಂದುಕೊಂಡ ಪ್ರಾಣಿಗಳ ಬಗ್ಗೆ ತಿಳಿಯುವ ಸ್ನೇಹಿತನನ್ನು ಕೇಳುವುದಂಥ – ಅವರು ತಮ್ಮ ಸ್ವಂತ ಶಬ್ದಗಳಲ್ಲಿ ಆಸಕ್ತಿಕರ ವಿಷಯಗಳನ್ನು ಹೇಳುತ್ತಾರೆ, ನೀವು ತಿಳಿಯಬೇಕಾದ್ದಿಗೆ ಅನುಗುಣವಾಗಿ + +```mermaid +graph LR + A[ನಿಮ್ಮ ಪ್ರಶ್ನೆ] --> B[AI ಮಾದರಿ] + B --> C[ಪ್ಯಾಟರ್ನ್ ಗುರುತಿಸುವಿಕೆ] + C --> D[ವಿಷಯ ಸೃಷ್ಟಿ] + D --> E[ಸಂದರ್ಭಾಧಿಕೃತ ಪ್ರತಿಕ್ರಿಯೆ] + + F[ಪ್ರಶಿಕ್ಷಣ ಡೇಟಾ
ಪುಸ್ತಕಗಳು, ಲೇಖನಗಳು, ವೆಬ್] --> B +``` +### AI ಮಾದರಿಗಳು ಹೇಗೆ ಕಲಿಯುತ್ತವೆ (ಸರಳ ಆವೃತ್ತಿ) + +AI ಮಾದರಿಗಳು ಪುಸ್ತಕಗಳು, ಲೇಖನಗಳು, ಸಂಭಾಷಣೆಗಳ ಪಠ್ಯವನ್ನು ಒಳಗೊಂಡ ಭಾರಿ ಡೇಟಾಸೆಟ್ ಮೂಲಕ ಕಲಿಯುತ್ತವೆ. ಈ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ ಅವು ಕೆಳಗಿನ ನಿಯಮಗಳನ್ನು ಕಂಡುಹಿಡಿಯುತ್ತವೆ: +- ಬರಹದಲ್ಲಿ ಚಿಂತನೆಗಳು ಹೇಗೆ ರಚಿಸಲ್ಪಡುತ್ತವೆ +- ಯಾವ ಪದಗಳು ಸಾಮಾನ್ಯంగా ಒಂದೇ ಜೊತೆಯಲ್ಲಿ ಕಾಣುತ್ತವೆ +- ಸಂಭಾಷಣೆಯಾದರೆ ಸಾಮಾನ್ಯವಾಗಿ ಹೇಗೆ ಹರಿಯುತ್ತದೆ +- ಅಧಿಕೃತ ಮತ್ತು ಅನಧಿಕೃತ ಸಂವಹನದ ಸಾಂದರ್ಭಿಕ ವ್ಯತ್ಯಾಸಗಳು + +**ಇದು ಪ್ರಾಚೀನ ಭಾಷೆಗಳ ಶಾಸ್ತ್ರಜ್ಞಾನಿಗಳು ಹೇಗೆ ಭಾಷೆಯನ್ನು_decode_ಮಾಡುತ್ತಾರೆ ಹಾಗೇ**: ಅವರು ಸಾವಿರಾರು ಉದಾಹರಣೆಗಳನ್ನು ವಿಶ್ಲೇಷಿಸಿ ವ್ಯಾಕರಣ, ಪದಕೋಶ ಮತ್ತು ಸಾಂಸ್ಕೃತಿಕ ಸಾಂದರ್ಭಿಕತೆಯನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುತ್ತಾರೆ; ನಂತರ ಆ ಕಲಿತ ನಿಯಮಗಳಿಂದ ಹೊಸ ಪಠ್ಯಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ತಾರೆ. + +### GitHub Models ಯಾಕೆ? + +ನಾವು GitHub Models ಬಳಸುತ್ತಿರುವುದು ತಾರ್ಕಿಕ ಕಾರಣಕ್ಕೆ – ನಮಗೆ AI ಸ್ಥಾಪನೆ ಮಾಡದೆ ಉದ್ಯಮ ಮಟ್ಟದ AI ಪಡೆಯಲು ಅವಕಾಶ ನೀಡುತ್ತದೆ (ನಿಮಗೆ ತಿಳಿದಂತೆ, ಈಗಲೇ ನೀವು ಅದನ್ನು ಮಾಡಲು ಇಚ್ಛಿಸುವುದಿಲ್ಲ!). ನೀವು ಎಲ್ಲೆಡೆ ಹವಾಮಾನ API ಬಳಸಿಕೊಂಡು ಹವಾಮಾನ ನುಡಿದಂತೆ ಕಲ್ಪಿಸಿ. + +ಇದು ಮೂಲತಃ "AI-ಆಸ್-ಸರ್ವಿಸ್", ಮತ್ತು ಉತ್ತಮ ಭಾಗ? ಪ್ರಾರಂಭಿಸಲು ಉಚಿತವಾಗಿದೆ, ಆದ್ದರಿಂದ ನೀವು ಪ್ರಯೋಗ ಶೂನ್ಯ ಖರ್ಚಿನಿಂದ ಮಾಡಬಹುದು. + +```mermaid +graph LR + A[ಮುಂಭಾಗದ ಚಾಟ್ UI] --> B[ನಿಮ್ಮ ಬ್ಯಾಕ್‌ಎಂಡ್ API] + B --> C[GitHub ಮಾದರಿ API] + C --> D[AI ಮಾದರಿ ಪ್ರಕ್ರಿಯೆ] + D --> C + C --> B + B --> A +``` +ನಾವು GitHub Models ಅನ್ನು ಬ್ಯಾಕ್‌ಎಂಡ್ ಇಂಟಿಗ್ರೇಶನ್‌ಗೆ ಬಳಸುತ್ತೇವೆ, ಇದು ವೃತ್ತಿಪರ-ಮಟ್ಟದ AI ಸಾಮರ್ಥ್ಯಗಳನ್ನು ಡೆವಲಪರ್ ಸ್ನೇಹಿ ಇಂಟರ್ಫೇಸಿನ ಮೂಲಕ ಒದಗಿಸುತ್ತದೆ. [GitHub Models Playground](https://github.com/marketplace/models/azure-openai/gpt-4o-mini/playground) ವಿವಿಧ AI ಮಾದರಿಗಳನ್ನು ಪರೀಕ್ಷಿಸಲು ಮತ್ತು ಅವುಗಳ ಸಾಮರ್ಥ್ಯವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಸಹಾಯ ಮಾಡುವ ಪರೀಕ್ಷಾ ವಾತಾವರಣ. + +## 🧠 AI ಅಪ್ಲಿಕೇಶನ್ ಅಭಿವೃದ್ಧಿ ಪರಿಸರ + +```mermaid +mindmap + root((AI Development)) + Understanding AI + Generative Models + Pattern Recognition + Content Generation + Context Understanding + Response Synthesis + AI Parameters + Temperature Control + Token Limits + Top-p Filtering + System Prompts + Backend Architecture + API Integration + GitHub Models + Authentication + Request Handling + Error Management + Python Infrastructure + FastAPI Framework + Async Operations + Environment Security + CORS Configuration + Frontend Experience + Chat Interface + Real-time Updates + Message History + User Feedback + Loading States + Modern Web Tech + ES6 Classes + Async/Await + DOM Manipulation + Event Handling + Professional Patterns + Security Best Practices + Token Management + Input Validation + XSS Prevention + Error Boundaries + Production Readiness + Performance Optimization + Responsive Design + Accessibility + Testing Strategies +``` +**ಮೂಲತತ್ವ**: AI ಅಪ್ಲಿಕೇಶನ್ ಅಭಿವೃದ್ಧಿ ಸಾಂಪ್ರದಾಯಿಕ ವೆಬ್ ಅಭಿವೃದ್ಧಿ ಕೌಶಲ್ಯಗಳನ್ನು AI ಸೇವೆಗಳ ಇಂಟಿಗ್ರೇಶನ್ ಜೊತೆಗೆ ಸಂಯೋಜಿಸಿ ಬಳಕೆದಾರರಿಗೆ ಸಹಜ ಮತ್ತು ಸ್ಪಂದನಶೀಲ ಬಗೆಯ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ರಚಿಸುತ್ತದೆ. + +![GitHub Models AI Playground ಇಂಟರ್ಫೇಸ್ ಮಾದರಿ ಆಯ್ಕೆ ಮತ್ತು ಪರೀಕ್ಷಾ ಪ್ರದೇಶವನ್ನು ತೋರಿಸುವುದು](../../../translated_images/playground.d2b927122224ff8f.kn.png) + +**ಪ್ಲೇಗ್ರೌಂಡ್ ಉಪಕಾರ ಮಾಡುವ ಕೆಲವು ಅಂಶಗಳು:** +- GPT-4o-mini, Claude ಮತ್ತು ಇತರ ವಿವಿಧ AI ಮಾದರಿಗಳನ್ನು ಪ್ರಯತ್ನಿಸಿ (ಎಲ್ಲವೂ ಉಚಿತ!) +- ನೀವು ಬರೆಯುವ ಮೊದಲು ನಿಮ್ಮ ಕಲ್ಪನೆಗಳು ಮತ್ತು ಪ್ರಾಂಪ್ಟ್‌ಗಳನ್ನು ಪರೀಕ್ಷಿಸಿ +- ನೀವು ಬಯಸುವ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯಲ್ಲಿ ತಕ್ಷಣ ಬಳಸಬಹುದಾದ ಕೋಡ್ ಉದಾಹರಣೆಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಿ +- ಸೃಜನಶೀಲತೆ ಮಟ್ಟ ಮತ್ತು ಪ್ರತಿಕ್ರಿಯೆ ಉದ್ದದಂತಹ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ತಿದ್ದುಪಡಿ ಮಾಡಿ ಅವು ಔಟ್‌ಪುಟ್‌ ಮೇಲೆ ಹೇಗೆ ಪರಿಣಾಮ ಬೀರುತ್ತದೆ ನೋಡಿ + +ಸ್ವಲ್ಪ ಪ್ರಯೋಗಮಾಡಿದ ಮೇಲೆ "Code" ಟ್ಯಾಬ್ ಕ್ಲಿಕ್ ಮಾಡಿ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯನ್ನು ಆಯ್ಕೆಮಾಡಿ ಅವಶ್ಯವಾದ ಜಾರಿಗೆ ಕೋಡ್ ಪಡೆಯಿರಿ. + +![ಪ್ಲೇಗ್ರೌಂಡ್ ಆಯ್ಕೆ ವಿವಿಧ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳಿಗಾಗಿ ಕೋಡ್ ತಯಾರಿಕೆಯ ಆಯ್ಕೆಯೊಂದಿಗೆ](../../../translated_images/playground-choice.1d23ba7d407f4758.kn.png) + +## ಪೈಥಾನ್ ಬ್ಯಾಕ್‌ಎಂಡ್ ಇಂಟಿಗ್ರೇಶನ್ ವ್ಯವಸ್ಥೆಗೊಳಿಸುವುದು + +ಹೀಗಿರುವಾಗ AI ಇಂಟಿಗ್ರೇಶನ್ ಅನ್ನು ಪೈಥಾನ್ ಬಳಸಿಕೊಂಡು ಜಾರಿಮಾಡೋಣ. ಪೈಥಾನ್ ಸರಳ ಸಿಂಟ್ಯಾಕ್ಸ್ ಮತ್ತು ಬಲವಂತದ ಗ್ರಂಥಾಲಯಗಳ ಕಾರಣ AI ಅಪ್ಲಿಕೇಶನ್ಗೆ ಅತ್ಯುತ್ತಮ. ನಾವು GitHub Models ಪ್ಲೇಗ್ರೌಂಡ್‌ನಿಂದ ಕೋಡ್ ತೆಗೆದು ನಂತರ ಅದನ್ನು ಮರುರಚಿಸಿ ಪುನಃ ಉಪಯೋಗಿಸಲು ಯೋಗ್ಯ ಮತ್ತು ಉತ್ಪಾದನಾ-ತಯಾರಿರುವ ಫಂಕ್ಷನ್‌ಗೆ ಪರಿವರ್ತಿಸುವೆವು. + +### ಮೂಲ ಜಾರಿಗೆ ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು + +ನೀವು ಪ್ಲೇಗ್ರೌಂಡ್‌ನಿಂದ ಪೈಥಾನ್ ಕೋಡ್ ತೆಗೆದುಕೊಂಡಾಗ, ಹೀಗೊಂದು ಕಡೆಯಾಗಿರುತ್ತದೆ. ಮೊದಲಿಗೆ ಹೆಚ್ಚು ಲೆಕ್ಕ ಬದುಕಲು ಭಯಪಡಬೇಡಿ – ಹಂತ ಹಂತವಾಗಿ ಪರಿಶೀಲಿಸೋಣ: + +```python +"""Run this model in Python + +> pip install openai +""" +import os +from openai import OpenAI + +# ಮಾದರಿಯೊಂದಿಗೆ ಪ್ರಮಾಣೀಕರಿಸಲು ನೀವು ನಿಮ್ಮ GitHub ಸೆಟ್ಟಿಂಗ್ಸ್‌ನಲ್ಲಿ ವೈಯಕ್ತಿಕ ಪ್ರವೇಶ ಟೋಕನ್ (PAT) ಅನ್ನು ರಚಿಸಬೇಕಾಗುತ್ತದೆ. +# ನಿಮ್ಮ PAT ಟೋಕನನ್ನು ರಚಿಸಲು ಇಲ್ಲಿ ನೀಡಲಾದ ಸೂಚನೆಗಳನ್ನು ಅನುಸರಿಸಿ: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens +client = OpenAI( + base_url="https://models.github.ai/inference", + api_key=os.environ["GITHUB_TOKEN"], +) + +response = client.chat.completions.create( + messages=[ + { + "role": "system", + "content": "", + }, + { + "role": "user", + "content": "What is the capital of France?", + } + ], + model="openai/gpt-4o-mini", + temperature=1, + max_tokens=4096, + top_p=1 +) + +print(response.choices[0].message.content) +``` + +**ಈ ಕೋಡ್‌ನಲ್ಲಿ ಏನಾಗುತ್ತಿದ್ದುದು ಯಾಕೆ:** +- **ನಾವು ಇಂಪೋರ್ಟ್ ಮಾಡುತ್ತೇವೆ** ಅಗತ್ಯವಿರುವ ಉಪಕರಣಗಳು: ಪರಿಸರ ಚರಗಳನ್ನು ಓದಲು `'os'`, AI ಜೊತೆ ಮಾತಾಡಲು `'OpenAI'` +- **ನಾವು ವ್ಯವಸ್ಥೆ ಮಾಡುತ್ತೇವೆ** OpenAI ಕ್ಲೈಂಟ್ GitHub ನ AI ಸರ್ವರ್‌ಗಳ ಕಡೆ ಸೂಚಿಸಲು ಬದಲಾಗಿ OpenAI ನೇರವಾಗಿ +- **ನಾವು ಪ್ರমাণೀಕರಿಸುತ್ತೇವೆ** ವಿಶೇಷ GitHub ಟೋಕನ್ ಬಳಸಿ (ಇದಕ್ಕೆ ಸ್ವಲ್ಪ ಬಳಿಕ!) +- **ನಾವು ರಚಿಸುತ್ತೇವೆ** ಬಿಂಚಿನ "ರೋಲ್ಸ್" ಬಳಸಿ our ಸಂಭಾಷಣೆಯನ್ನು – ನಾಟಕದ ದೃಶ್ಯಸ್ಥಳವನ್ನು ಹೊಂದಿಸುವಂತೆಯೇ +- **ನಾವು ಕಳುಹಿಸುತ್ತೇವೆ** AI ಗೆ ವಿನಂತಿಯನ್ನು ಕೆಲ ಸೂಕ್ಷ್ಮ ಪ್ಯಾರಾಮೀಟರ್‌ಗಳೊಂದಿಗೆ +- **ನಾವು ಎಳೆಯುತ್ತೇವೆ** ಎಲ್ಲ ಡೇಟಾದಿಂದ ವಾಸ್ತವಿಕ ಪ್ರತಿಕ್ರಿಯೆ ಪಠ್ಯವನ್ನು + +### ಸಂದೇಶ ರೋಲ್ಸ್ ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು: AI ಸಂಭಾಷಣಾ ರೂಪರೇಖೆ + +AI ಸಂಭಾಷಣೆಗಳು ವಿಭಿನ್ನ "ರೋಲ್ಸ್" ಬಳಸಿ ನಿರ್ದಿಷ್ಟ ಉದ್ದೇಶಗಳನ್ನು ಹೊಂದಿರುತ್ತವೆ: + +```python +messages=[ + { + "role": "system", + "content": "You are a helpful assistant who explains things simply." + }, + { + "role": "user", + "content": "What is machine learning?" + } +] +``` + +**ನಾಟಕ ನಿರ್ದೇಶನದಂತೆ ಭಾವಿಸಿ:** +- **ಸಿಸ್ಟಮ್ ರೋಲ್**: ನಟನ ನಿರ್ದೇಶಗಳು – AI ಹೇಗೆ ವರ್ತಿಸಬೇಕು, ಯಾವ ವ್ಯಕ್ತಿತ್ವ ಹೊಂದಬೇಕು ಮತ್ತು ಹೇಗೆ ಪ್ರತಿಕ್ರಿಯಿಸಬೇಕು ಎಂದು ಹೇಳುತ್ತದೆ +- **ಬಳಕೆದಾರ ರೋಲ್**: ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಬಳಸುವ ವ್ಯಕ್ತಿಯ ನಿಜವಾದ ಪ್ರಶ್ನೆ ಅಥವಾ ಸಂದೇಶ +- **ಸಹಾಯಕ ರೋಲ್**: AI ನ ಉತ್ತರ (ನೀವು ಕಳುಹಿಸುವುದಿಲ್ಲ, ಆದರೆ ಸಂಭಾಷಣಾ ಇತಿಹಾಸದಲ್ಲಿ ಕಾಣಸಿಗುತ್ತದೆ) + +**ವಾಸ್ತವ ಜಗತ್ತಿನ ಉದಾಹರಣೆ**: ನೀವು ಪಕ್ಷಿ ಪಾರ್ಟಿಯಲ್ಲಿ ಗೆಳೆಯನ ಪರಿಚಯ ಮಾಡಿಸುತ್ತಿದ್ದೀರಿ ಅನ್ನೋಣ: +- **ಸಿಸ್ಟಮ್ ಸಂದೇಶ**: “ಇವರು ನನ್ನ ಗೆಳೆಯ ಸರಾ, ಅವರು ವೈದ್ಯರು ಮತ್ತು ವೈದ್ಯಕೀಯ ತತ್ವಗಳನ್ನು ಸರಳ ಭಾಷೆಯಲ್ಲಿ ಅರ್ಥಮಾಡಿಸುವರು” +- **ಬಳಕೆದಾರ ಸಂದೇಶ**: “ನೀವು ಲಸಿಕೆಗಳು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ ಎಂದು ವಿವರಿಸಬಹುದುವೇ?” +- **ಸಹಾಯಕ ಪ್ರತಿಕ್ರಿಯೆ**: ಸರಾ ಸ್ನೇಹಪರ ವೈದ್ಯರಾಗಿಯೇ ಪ್ರತಿಕ್ರಿಯಿಸುತ್ತಾರೆ, ವಕೀಲ ಅಥವಾ ಶೆಫ್ ಆಗಿ ಅಲ್ಲ + +### AI ಪ್ಯಾರಾಮೀಟರ್ಗಳ ಅರ್ಥ: ಪ್ರತಿಕ್ರಿಯೆ ನಡವಳಿಕೆ ಸುಧಾರಣೆ + +AI API ಕರೆಗಳಲ್ಲಿ ಸಂಖ್ಯಾತ್ಮಕ ಪ್ಯಾರಾಮೀಟರ್ಗಳು ಮಾದರಿ ಪ್ರತಿಕ್ರಿಯೆಗಳನ್ನು ಹೇಗೆ ಸೃಷ್ಟಿಸುತ್ತದೆ ಎನ್ನುವುದನ್ನು ನಿಯಂತ್ರಿಸುತ್ತವೆ. ಆ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಬದಲಾಯಿಸಿ ನೀವು AI ನ ನಡವಳಿಕೆಯನ್ನು ಬೇರೆ ಬೇರೆ ಬಳಕೆಯ ಪ್ರಕಾರ ಹೊಂದಿಸಬಹುದು: + +#### ತಾಪಮಾನ (0.0 ರಿಂದ 2.0): ಸೃಜನಶೀಲತೆ ಡೈಯಲ್ + +**ಇದು ಮಾಡುವುದು**: AI ಪ್ರತಿಕ್ರಿಯೆಗಳ ಸೃಜನಶೀಲತೆ ಅಥವಾ പ്രവಚನೀಯತೆ ಮಟ್ಟವನ್ನು ನಿಯಂತ್ರಿಸುವುದು. + +**ಇದನ್ನು ಜ್ಯಾಜ್ ವಾದಕನ ಸುಗಮರೀತಿ ತರಗೆಣಿಸುವಂತೆ ಭಾವಿಸಿ:** +- **Temperature = 0.1**: ಪ್ರತಿಯೊಮ್ಮೆ ಅಂದಾಜು ಹೆಚ್ಚು ಇರದಂತೆ ನಿಜವಾದ ಅದೇ ಮೇಳೋಡಿಯನ್ನು ನುಡಿಸುವುದು (ಅತ್ಯಂತ ನಿರೀಕ್ಷಿತ) +- **Temperature = 0.7**: ಗುರುತಿಸುವಂತೆಯೇ ಸಾಂದರ್ಭಿಕ ಬದಲಾವಣೆಗಳನ್ನು ಸೇರಿಸುವುದು (ಸಮತೋಲನಸಿದ್ದ ಸೃಜನಶೀಲತೆ) +- **Temperature = 1.5**: ಒಂದೇಬಗೆಯಲ್ಲದ ಪೂರ್ಣ ಪ್ರಯೋಗాత್ಮಕ ಜ್ಯಾಜ್, ಅಪೇಕ್ಷಿತವಲ್ಲದ ತಿರುವುಗಳೊಂದಿಗೆ (ಅತ್ಯಂತ ಅಸಂಭವ) + +```python +# ತುಂಬಾ ಊಹಿಸಬಹುದಾದ ಉತ್ತರಗಳು (ವಾಸ್ತವಿಕ ಪ್ರಶ್ನೆಗಳಿಗೆ ಉತ್ತಮ) +response = client.chat.completions.create( + messages=[{"role": "user", "content": "What is 2+2?"}], + temperature=0.1 # ಬಹುಶಃ ಯಾವಾಗಲೂ "4" ಎಂದು ಹೇಳುವುದು +) + +# ಸೃಜನಶೀಲ ಉತ್ತರಗಳು (ಒಳಗೊಳ್ಳಲು ಒಳ್ಳೆಯದು) +response = client.chat.completions.create( + messages=[{"role": "user", "content": "Write a creative story opening"}], + temperature=1.2 # ಅನನ್ಯ, ಅಪೇಕ್ಷಿಸಲ್ಪಟ್ಟ ಕಥೆಗಳನ್ನು ರಚಿಸುವುದು +) +``` + +#### ಗರಿಷ್ಟ ಟೋಕೆನ್ಸ್ (1 ರಿಂದ 4096+): ಪ್ರತಿಕ್ರಿಯೆ ಉದ್ದ ನಿಯಂತ್ರಕ + +**ಇದು ಮಾಡುವುದು**: AI ಪ್ರತಿಕ್ರಿಯೆ ಎಷ್ಟು ಉದ್ದವಾಗಬಹುದು ಎಂದು ಮಿತಿ ನಿಗದಿಪಡಿಸುವುದು. + +**ಟೋಕೆನ್ಸ್ ಅನ್ನು ಸುಮಾರು ಪದಗಳಿಗೆ ಸಮನ್ವಯ ಎಣಿಸಬಹುದು** (1 ಟೋಕೆನ್ ಅಂದಾಜು 0.75 ಪದಗಳು ಇಂಗ್ಲಿಷ್‌ನಲ್ಲಿ): +- **max_tokens=50**: ಚುಟುಕು ಮತ್ತು ಮಧುರ (ಟೆಕ್ಸ್ಟ್ ಸಂದೇಶದಂತೆ) +- **max_tokens=500**: ಒಳ್ಳೆಯ ಪ್ಯಾರಾಗ್ರಾಫ್ ಅಥವಾ ಎರಡು +- **max_tokens=2000**: ಉದಾಹರಣೆಯೊಂದಿಗೆ ಸಂಪೂರ್ಣ ವಿವರಣೆ + +```python +# ಸಂಕ್ಷಿಪ್ತ, ಸಲ್ಪ ವಿವರಗಳ ಉತ್ತರಗಳು +response = client.chat.completions.create( + messages=[{"role": "user", "content": "Explain JavaScript"}], + max_tokens=100 # ಸಂಕ್ಷಿಪ್ತ ವಿವರಣೆಗಾಗಿ ಬಲವಂತಪಡಿಸುತ್ತದೆ +) + +# ವಿವರವಾದ, ಸಂಪೂರ್ಣ ಉತ್ತರಗಳು +response = client.chat.completions.create( + messages=[{"role": "user", "content": "Explain JavaScript"}], + max_tokens=1500 # ಉದಾಹರಣೆಗಳೊಂದಿಗೆ ವಿವರವಾದ ವಿವರಣೆಗಳಿಗೆ ಅವಕಾಶ ನೀಡುತ್ತದೆ +) +``` + +#### top_p (0.0 ರಿಂದ 1.0): ಕೇಂದ್ರೀಕರಣ ಪ್ಯಾರಾಮೀಟರ್ + +**ಇದು ಮಾಡುವುದು**: AI ಅತ್ಯಂತ ಸಾಧ್ಯತೆ ಇರುವ ಪದಗಳ ಮೇಲೆ ಎಷ್ಟು ಕೇಂದ್ರೀಕರಿಸಬೇಕು ಎಂದು ನಿಯಂತ್ರಿಸುವುದು. + +**AI ಜ್ಞಾಪಕದಲ್ಲಿ ದೊಡ್ಡ ಪದಸಂಗ್ರಹ ಇದೆಯೆಂದು ಭಾವಿಸಿ, ಪದಗಳನ್ನು ಸಾಧ್ಯತೆ ಕ್ರಮದಲ್ಲಿ ಮೌಲ್ಯಮಾಪನ ಮಾಡಲಾಗುತ್ತದೆ**: +- **top_p=0.1**: ಅತ್ಯುಚ್ಚ 10% ಸಾಧ್ಯತೆ ಪದಗಳನ್ನು ಮಾತ್ರ ಪರಿಗಣಿಸುತ್ತದೆ (ತೀವ್ರ ಕೇಂದ್ರೀಕೃತ) +- **top_p=0.9**: 90% ಸಾಧ್ಯತೆ ಇರುವ ಪದಗಳನ್ನು ಪರಿಗಣಿಸುತ್ತದೆ (ಹೆಚ್ಚು ಸೃಜನಶೀಲ) +- **top_p=1.0**: ಎಲ್ಲ ಪದಗಳನ್ನು ಪರಿಗಣಿಸುತ್ತದೆ (ಅತ್ಯುತ್ತಮ ವೈವಿಧ್ಯ) + +**ಉದಾಹರಣೆ**: ನೀವು ಕೇಳಿದರೆ "ಆಕಾಶ ಸಹಜವಾಗಿ..." +- **ಕಡಿಮೆ top_p**: ಬಹುಶಃ "ನೀಲಿ" ಅನ್ನು ಹೇಳುತ್ತದೆ +- **ಹೆಚ್ಚು top_p**: ಸಾಧ್ಯವಾಗಿ "ನೀಲಿ", "ಮೇಘ", "ವಿಸ್ತಾರ", "ಬದಲಾಗುತ್ತಿದೆ", "ಸುಂದರ" ಮುಂತಾದ ಪದಗಳನ್ನು ಹೇಳಬಹುದು + +### ಎಲ್ಲವನ್ನೂ ಒಟ್ಟುಗೂಡಿಸುವುದು: ವಿವಿಧ ಬಳಕೆಗಳಿಗಾಗಿ ಪ್ಯಾರಾಮೀಟರ್ ಸಂಯೋಜನೆಗಳು + +```python +# ವಾಸ್ತವಿಕ, ಸತತ ಉತ್ತರಗಳಿಗಾಗಿ (ಎಂತಹ ದಾಖಲೆ ಬೊಟ್) +factual_params = { + "temperature": 0.2, + "max_tokens": 300, + "top_p": 0.3 +} + +# ಸೃಜನಾತ್ಮಕ ಬರವಣಿಗೆ ಸಹಾಯಕ್ಕಾಗಿ +creative_params = { + "temperature": 1.1, + "max_tokens": 1000, + "top_p": 0.9 +} + +# ಸಂಭಾಷಣಾತ್ಮಕ, ಸಹಾಯಕ ಪ್ರತ್ಯುತ್ತರಗಳಿಗಾಗಿ (ಸಮತೋಲನ) +conversational_params = { + "temperature": 0.7, + "max_tokens": 500, + "top_p": 0.8 +} +``` + +```mermaid +quadrantChart + title ಎಐ ಪರಿಮಿತಿ ಸುಧಾರಣಾ ಮ್ಯಾಟ್ರಿಕ್ಸ್ + x-axis ಕಡಿಮೆ ಸೃಜನಶೀಲತೆ --> ಹೆಚ್ಚು ಸೃಜನಶೀಲತೆ + y-axis ಕಡಿಮೆ ಪ್ರತಿಕ್ರಿಯೆ --> ಹೆಚ್ಚು ಪ್ರತಿಕ್ರಿಯೆ + + quadrant-1 ಸೃಜನಾತ್ಮಕ ವಿಷಯ + quadrant-2 ವಿವರವಾದ ವಿಶ್ಲೇಷಣೆ + quadrant-3 ವೇಗದ ಮಾಹಿತಿ + quadrant-4 ಸಂಭಾಷಣಾತ್ಮಕ ಎಐ + + Documentation Bot: [0.2, 0.3] + Customer Service: [0.4, 0.4] + General Assistant: [0.7, 0.5] + Creative Writer: [0.9, 0.9] + Brainstorming Tool: [0.8, 0.8] +``` +**ಈ ಪ್ಯಾರಾಮೀಟರ್ಗಳ ಮಹತ್ವ ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು**: ಭಿನ್ನ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗೆ ಬೇರೆ ಬೇರೆ ಬಗೆಯ ಉತ್ತರಗಳು ಆವಶ್ಯಕ. ಗ್ರಾಹಕ ಸೇವಾ ಬಾಟ್ ಸ್ಥಿರ ಮತ್ತು ವಾಸ್ತವಮೂಲಕವಾಗಿರಬೇಕು (ತಾಪಮಾನ ಕಡಿಮೆ), ಸೃಜನಶೀಲ ಬರವಣಿಗೆಯ ಸಹಾಯಕ ಕಲ್ಪನೆಗಳು ಹಾಗೂ ಬದಲಾವಣೆಗಾಗಿ(ತಾಪಮಾನ ಹಚ್ಚು). ಈ ಪ್ಯಾರಾಮೀಟರ್‌ಗಳೊಂದಿಗೆ ನೀವು AI ವ್ಯಕ್ತಿತ್ವ ಮತ್ತು ನಡವಳಿಕೆಯನ್ನು ನಿಯಂತ್ರಿಸಬಹುದು. +``` + +**Here's what's happening in this code:** +- **We import** the tools we need: `os` for reading environment variables and `OpenAI` for talking to the AI +- **We set up** the OpenAI client to point to GitHub's AI servers instead of OpenAI directly +- **We authenticate** using a special GitHub token (more on that in a minute!) +- **We structure** our conversation with different "roles" – think of it like setting the scene for a play +- **We send** our request to the AI with some fine-tuning parameters +- **We extract** the actual response text from all the data that comes back + +> 🔐 **Security Note**: Never hardcode API keys in your source code! Always use environment variables to store sensitive credentials like your `GITHUB_TOKEN`. + +### Creating a Reusable AI Function + +Let's refactor this code into a clean, reusable function that we can easily integrate into our web application: + +```python +import asyncio +from openai import AsyncOpenAI + +# Use AsyncOpenAI for better performance +client = AsyncOpenAI( + base_url="https://models.github.ai/inference", + api_key=os.environ["GITHUB_TOKEN"], +) + +async def call_llm_async(prompt: str, system_message: str = "You are a helpful assistant."): + """ + Sends a prompt to the AI model asynchronously and returns the response. + + Args: + prompt: The user's question or message + system_message: Instructions that define the AI's behavior and personality + + Returns: + str: The AI's response to the prompt + """ + try: + response = await client.chat.completions.create( + messages=[ + { + "role": "system", + "content": system_message, + }, + { + "role": "user", + "content": prompt, + } + ], + model="openai/gpt-4o-mini", + temperature=1, + max_tokens=4096, + top_p=1 + ) + return response.choices[0].message.content + except Exception as e: + logger.error(f"AI API error: {str(e)}") + return "I'm sorry, I'm having trouble processing your request right now." + +# Backward compatibility function for synchronous calls +def call_llm(prompt: str, system_message: str = "You are a helpful assistant."): + """Synchronous wrapper for async AI calls.""" + return asyncio.run(call_llm_async(prompt, system_message)) +``` + +**ಈ ಸುಧಾರಿತ ಫಂಕ್ಷನ್ ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು:** +- ಬಳಕೆದಾರರ ಪ್ರಾಂಪ್ಟ್ ಮತ್ತು ಐಚ್ಛಿಕ ಸಿಸ್ಟಮ್ ಸಂದೇಶ ಎರಡು ಪ್ಯಾರಾಮೀಟರ್‌ಗಳನ್ನು ಅಂಗೀಕರಿಸುತ್ತದೆ +- ಸಾಮಾನ್ಯ ಸಹಾಯಕ ನಡವಳಿಕೆಗೆ ಡಿಫಾಲ್ಟ್ ಸಿಸ್ಟಮ್ ಸಂದೇಶ ಒದಗಿಸುತ್ತದೆ +- ಉತ್ತಮ ಕೋಡ್ ದಾಖಲಾತಿಗಾಗಿ ಪೈಥಾನ್ ಟೈಪ್ ಸೂಚನೆಗಳನ್ನು ಬಳಸುತ್ತದೆ +- ಫಂಕ್ಷನ್ ಉದ್ದೇಶ ಮತ್ತು ಪ್ಯಾರಾಮೀಟರ್‌ಗಳ ವಿವರಣೆಗಾಗಿ ವಿಶದ ಡಾಕ್ಸ್ಟ್ರಿಂಗ್ ಸೇರಿದೆ +- ಪ್ರತಿಕ್ರಿಯೆಯ ವಿಷಯವನ್ನು ಮಾತ್ರ ಹಿಂತಿರುಗಿಸುತ್ತದೆ, ವೆಬ್ API ಗೆ ಬಳಸಲು ಸುಲಭವಾಗಿದೆ +- ಸತತ AI ನಡವಳಿಕೆಗೆ ಒಂದೇ ಮಾದರಿ ಪ್ಯಾರಾಮೀಟರ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ + +### ಸಿಸ್ಟಮ್ ಪ್ರಾಂಪ್ಟ್ಗಳ ಮಾಯಾಜಾಲ: AI ವ್ಯಕ್ತಿತ್ವ ಪ್ರೋಗ್ರಾಮ್ಮಿಂಗ್ + +ಪ್ಯಾರಾಮೀಟರ್‌ಗಳು AI ಯ ಯೋಚಿಸುವ ರೀತಿಯನ್ನು ನಿಯಂತ್ರಿಸುವಾಗ, ಸಿಸ್ಟಮ್ ಪ್ರಾಂಪ್ಟ್‌ಗಳು AI ಯ ಯಾರು ಎಂದು ನಿರ್ಧರಿಸುತ್ತವೆ. ಇದು ಐಎಸ್ ಒಂದರಲ್ಲಿ ಅತ್ಯಂತ ಕುತೂಹಲಕಾರಿ ಭಾಗ: ನೀವು AI ಗೆ ಪೂರಕ ವ್ಯಕ್ತಿತ್ವ, ಪರಿಣತಿ ಮಟ್ಟ ಮತ್ತು ಸಂವಹನ ಶೈಲಿಯನ್ನು ನೀಡುತ್ತೀರಿ. + +**ವಿಭಿನ್ನ ಪಾತ್ರಗಳಿಗೆ ವಿಭಿನ್ನ ನಟರನ್ನು ಆಯ್ಕೆ ಮಾಡುವಂತೆ ಸಿಸ್ಟಮ್ ಪ್ರಾಂಪ್ಟ್‌ಗಳನ್ನು ಭಾವಿಸಿ**: ಒಂದೇ ಸಾಮಾನ್ಯ ಸಹಾಯಕನ ಹೊರತಾಗಿ ನೀವು ವಿಭಿನ್ನ ಹುದ್ದೆಗಳಿಗಾಗಿ ವಿಶೇಷಜ್ಞರನ್ನು ರಚಿಸಬಹುದು. ಸಹನೆಪ್ರವೃತ್ತಿ ಶಿಕ್ಷಕನ ಅಗತ್ಯವಿದೆಯೇ? ಸೃಜನಶೀಲ ಮನಃಪೂರ್ವಕ ಸಹಫೋಲಕ? ಗಂಭೀರ ವ್ಯವಹಾರ ಸಲಹೆಗಾರ? ಕೇವಲ ಸಿಸ್ಟಮ್ ಪ್ರಾಂಪ್ಟ್ ಬದಲಿಸಿ! + +#### ಸಿಸ್ಟಮ್ ಪ್ರಾಂಪ್ಟ್‌ಗಳು ಏಕೆ ಶಕ್ತಿಶಾಲಿ + +ಇಲ್ಲಿ ಆಸಕ್ತಿದಾಯಕ ಭಾಗ: AI ಮಾದರಿಗಳನ್ನು ಲಕ್ಷಾಂತರ ಸಂಭಾಷಣೆಗಳಲ್ಲಿ ತರಬೇತಿ ಮಾಡಲಾಗಿದೆ, ಅಲ್ಲಿ ಜನರು ವಿಭಿನ್ನ ಪಾತ್ರ ಮತ್ತು ಪರಿಣತಿ ಮಟ್ಟಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತಾರೆ. ನೀವು AI ಗೆ ನಿರ್ದಿಷ್ಟ ಪಾತ್ರ ನೀಡಿದರೆ, ಅದು ಕಲಿತ ನಿಯಮಗಳ ಎಲ್ಲ ನಡವಳಿಕೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುವ ಸ್ವಿಚ್‌ ಅಥವಾ ಬಟನ್‌ನಂತಿದೆ. + +**ಇದು AI ನಿಗಾಗಿ ಮೆಥಡ್ ನಟನೆಯಂತೆ**: ನಟನಿಗೆ "ನೀವು ಜ್ಞಾನವಂತ ಹಳೆಯ ಪ್ರಾಧ್ಯಾಪಕರಾಗಿದ್ದೀರಿ" ಎಂದರೆ ಅವರು ತಕ್ಷಣ ತಮ್ಮ ದೈಹಿಕ ಭಂಗಿಮೆಗಳು, ಪದಕೋಶ ಮತ್ತು ಅಭಿವ್ಯಕ್ತಿಗಳನ್ನು ಹೊಂದಿಸಿಕೊಂಡಿದ್ದಾರೆ. AI ಸಹ ಭಾಷಾ ಮಾದರಿಗಳೊಂದಿಗೆ ಅದೇ ರೀತಿಯಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. + +#### ಪರಿಣಾಮಕಾರಿ ಸಿಸ್ಟಮ್ ಪ್ರಾಂಪ್ಟ್ ರಚನೆ: ಕಲಾ ಮತ್ತು ವಿಜ್ಞಾನ + +**ಉತ್ತಮ ಸಿಸ್ಟಮ್ ಪ್ರಾಂಪ್ಟ್ ರಚನೆಯ ಅಂಗಾಂಗಗಳು:** +1. **ಪಾತ್ರ/ಗುಣಧರ್ಮ**: AI ಯಾರು? +2. **ಪರಿಣತಿ**: ಅವರು ಏನು ತಿಳಿಯುತ್ತಾರೆ? +3. **ಸಂವಹನ ಶೈಲಿ**: ಹೇಗೆ ಮಾತಾಡುತ್ತಾರೆ? +4. **ನಿಖರ ನಿರ್ದೇಶನಗಳು**: ಏನು ಗಮನCentered +ಅವಕಾಷಿಸಬೇಕು? + +```python +# ❌ ಅಸ್ಪಷ್ಟ ವ್ಯವಸ್ಥೆಯ ಸೂಚನೆ +"You are helpful." + +# ✅ ವೈವಿಧ್ಯಮಯ, ಪರಿಣಾಮಕಾರಿ ವ್ಯವಸ್ಥೆಯ ಸೂಚನೆ +"You are Dr. Sarah Chen, a senior software engineer with 15 years of experience at major tech companies. You explain programming concepts using real-world analogies and always provide practical examples. You're patient with beginners and enthusiastic about helping them understand complex topics." +``` + +#### ಸಿಸ್ಟಮ್ ಪ್ರಾಂಪ್ಟ್ ಉದಾಹರಣೆಗಳು ಮತ್ತು ಸಾಂದರ್ಭಿಕತೆ + +ವಿಭಿನ್ನ ಸಿಸ್ಟಮ್ ಪ್ರಾಂಪ್ಟ್‌ಗಳು ಹೇಗೆ ಸಂಪೂರ್ಣ ವಿಭಿನ್ನ AI ವ್ಯಕ್ತಿತ್ವಗಳನ್ನು ರಚಿಸುತ್ತವೆ ನೋಡೋಣ: + +```python +# ಉದಾಹರಣೆ 1: ಸಹನೆಯ ಶಿಕ್ಷಕ +teacher_prompt = """ +You are an experienced programming instructor who has taught thousands of students. +You break down complex concepts into simple steps, use analogies from everyday life, +and always check if the student understands before moving on. You're encouraging +and never make students feel bad for not knowing something. +""" + +# ಉದಾಹರಣೆ 2: ಸೃಜನಾತ್ಮಕ ಸಹಯೋಗಿ +creative_prompt = """ +You are a creative writing partner who loves brainstorming wild ideas. You're +enthusiastic, imaginative, and always build on the user's ideas rather than +replacing them. You ask thought-provoking questions to spark creativity and +offer unexpected perspectives that make stories more interesting. +""" + +# ಉದಾಹರಣೆ 3: ತಂತ್ರಜ್ಞಾನದ ವ್ಯಾಪಾರ ಸಲಹೆಗಾರ +business_prompt = """ +You are a strategic business consultant with an MBA and 20 years of experience +helping startups scale. You think in frameworks, provide structured advice, +and always consider both short-term tactics and long-term strategy. You ask +probing questions to understand the full business context before giving advice. +""" +``` + +#### ಸಿಸ್ಟಮ್ ಪ್ರಾಂಪ್ಟ್‌ಗಳು ಕಾರ್ಯಾಚರಣೆಯಲ್ಲಿ ನೋಡುವುದು + +ಒಂದೇ ಪ್ರಶ್ನೆಯನ್ನು ವಿವಿಧ ಸಿಸ್ಟಮ್ ಪ್ರಾಂಪ್ಟ್‌ಗಳೊಂದಿಗೆ ಪರೀಕ್ಷಿಸಿ ಭಿನ್ನತೆಯನ್ನು ನೋಡಿ: + +**ಪ್ರಶ್ನೆ**: "ನನ್ನ ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್‌ನಲ್ಲಿ ಬಳಕೆದಾರ ಸರ್ಟಿಫಿಕೇಶನ್ ಅನ್ನು ಹೇಗೆ ನಿರ್ವಹಿಸಬಹುದು?" + +```python +# ಶಿಕ್ಷಕರ ಪ್ರಾಂಪ್ಟ್ ಜೊತೆ: +teacher_response = call_llm( + "How do I handle user authentication in my web app?", + teacher_prompt +) +# ಸಾಮಾನ್ಯ ಪ್ರತಿಕ್ರಿಯೆ: "ಅತಿದೊಡ್ಡ ಪ್ರಶ್ನೆ! ಪ್ರವೇಶ ಪರಿಶೀಲನೆಯನ್ನು ಸರಳ ಹಂತಗಳಲ್ಲಿ ವಿಭಾಗಿಸೋಣ. +# ಅದನ್ನು ಇಡೀ ನೈಟ್‌ಕ್ಲಬ್ ಬೌನ್ಸರ್ ಐಡಿ ಪರಿಶೀಲಿಸುತ್ತಿರುವಂತೆ ಕಲ್ಪಿಸಿಕೊಳ್ಳಿ..." + +# ವ್ಯವಹಾರ ಪ್ರಾಂಪ್ಟ್ ಜೊತೆ: +business_response = call_llm( + "How do I handle user authentication in my web app?", + business_prompt +) +# ಸಾಮಾನ್ಯ ಪ್ರತಿಕ್ರಿಯೆ: "ವ್ಯೂಹಾತ್ಮಕ ದೃಷ್ಟಿಕೋಣದಿಂದ, ಪ್ರವೇಶ ಪರಿಶೀಲನೆ ಬಳಕೆದಾರರ +# ವಿಶ್ವಾಸ ಮತ್ತು ನಿಯಮ ಸಂವಿಧಾನದ ಪಾಲನೆಗೆ ಅತ್ಯಂತ ಮುಖ್ಯವಾಗಿದೆ. ಸುರಕ್ಷತೆ, +# ಬಳಕೆದಾರ ಅನುಭವ ಮತ್ತು ವಿಸ್ತರಣೆ ಸಾಧ್ಯತೆಯನ್ನು ಪರಿಗಣಿಸಿ ಒಂದು ರೂಪರೇಖೆ ನೀಡಲು ಅನುಮತಿಸಿ..." +``` + +#### ಸುಧಾರಿತ ಸಿಸ್ಟಮ್ ಪ್ರಾಂಪ್ಟ್ ತಂತ್ರಗಳು + +**1. ಸಾಂದರ್ಭಿಕ ಭೂಮಿ ಒದಗಿಸುವುದು**: AI ಗಾಗಿ ಹಿನ್ನೆಲೆ ಮಾಹಿತಿಯನ್ನು ನೀಡಿ +```python +system_prompt = """ +You are helping a junior developer who just started their first job at a startup. +They know basic HTML/CSS/JavaScript but are new to backend development and databases. +Be encouraging and explain things step-by-step without being condescending. +""" +``` + +**2. output formāṭiṅg**: AIige uttaragaḷannu eṅgaṭṭu raṭṭisu beku antu heḷi +```python +system_prompt = """ +You are a technical mentor. Always structure your responses as: +1. Quick Answer (1-2 sentences) +2. Detailed Explanation +3. Code Example +4. Common Pitfalls to Avoid +5. Next Steps for Learning +""" +``` + +**3. constraint setting**: AI yenu māḍabēḍa entu niyamisi +```python +system_prompt = """ +You are a coding tutor focused on teaching best practices. Never write complete +solutions for the user - instead, guide them with hints and questions so they +learn by doing. Always explain the 'why' behind coding decisions. +""" +``` + +#### nim'ma cāṭ asisṭaṇṭigagi idu yēninda mukhya + +vaṇṇaneya sambandha system promptsannu artha mādikoḷḷuvudu nim'mage pariśiṣṭa AI asisṭaṇṭugaḷannu sṛṣṭisalu bhāri shakti koḍuttade: +- **grahāka seve bota**: upakāraka, dheyāri, nīti-āmˊsakr̥ta +- **adhyāyana śikṣaka**: hosa hēḷagalu, taragaṇagaḷalli kāyasu, artha māḍikoḷḷuva nīgaraṇe +- **śṛjanātmakasaha\-sāhāyaka**: kalpanātmakate, vicāragḷalalli nirmāṇa māḍuva, "yādi" eMba prashne keḷuva +- **tākhanika viśēṣajña**: sūkṣmavāda, vicitravāda, surakṣita cittavāgi + +**pradhāna artha**: niṅgaḷu kevala AI API na kareyuvudilla – niṅgaḷu niṅgaḷa viśiṣṭa upayōgakē seva mādūva svatantra AI vyaktitva racisuttiddīri. idu ādhunika AI anukramaṇikeya upayōgagaḷannu sādhanavāgiyu upayōgakaḷige mailāgi māḍuttade. + +### 🎯 śikṣaṇīya nīgaraṇe: AI vyaktitva kāryakrama + +**nilasi cintisi**: nīvu hecchu AI vyaktitvagaḷannu system prompts mūlake kāryakrama māḍuva kalike tegedukoṇḍiddīri. idu ādhunika AI anukramaṇika abhivr̥ddhiyalli mūlakamaṇa kāryakṣētram. + +**chikkana svayam-mūlyāmāna**: +- system prompts yella saadhāraṇa upayōgakartṛ sandeśagaḷinda hege vividha? +- temperature mattu top_p parimāṇagaḷa vicēda yāke? +- nīnu hege viśiṣṭa upayōgakēge system prompt racisuvudu? (udāharaṇegāgi kodina śikṣaka) + +**vāstavika sambandha**: nīvu kalitukoṇḍa system prompt naipunya ellā pratishṭhita AI anukramaṇika gaḷalli upayōgisalāgide – GitHub Copilot codinḡ sahāya, ChatGPT sambhāṣaṇa anukramaṇike. niṅgaḷu e māṇḍala AI utpādakagaḷa upayōgisuva rīti tantra kalitiddīri. + +**pratibandhaka prashne**: hēge vividha upayōgakarigaḷige (ārambhaka matthu viśēṣajña) vividha AI vyaktitvagaḷannu racisabahudu? adu hege oMde AI māḍela vividha pramukha darśakara upayōgada mattu prōmpt enjinīyaringa mūlake sādhisabahudu? + +## fastapi mūlakavāgi web API racane: nim'ma ati-pātradāyakavāda AI sancharanā kendra + +īga nāvu frontend mattu AI sevegala naḷavāguva backend na racisuvudakke barutiddīvi. nāvu FastAPI na upayōgisuttivi, oMde ādhunika Python mārgaḍhaṭi AI anukramaṇikege APIgaḷannu tayārisuvudakkaḷuge uttama. + +FastAPI illā project ge bere bēlakke sūcanegaḷu koḍuttade: bayatakālika ārjakate, svayaṃkṛta API darśanagaḷa sṛṣṭi, hosa sāramshada balavantate. nim'ma FastAPI server frontend inda bāgata anoḷagina AI sevegala mūlake karyakrama hoḍeyutade mattu rūpavān uttara koḍuttade. + +### AI anukramaṇikege FastAPI yāke? + +niṅgaḷu cintisuttiddīri: "heladiddare nīvu frontend JavaScript inda AI na nirakṣisi kareyabahuda?" athavā "FastAPI yāke Flask athavā Django badalige?" +sariduddēsha prashnegaḷu! + +**FastAPI ēke nāvu irodu upayōgisuve:** + +- **modalu async**: anēka AI āvedanegaḷannu oTuTx anukramadiyu oḷavaṇeyinda naḍedukoḷḷabahudu +- **svayaṃkṛta darśana**: `/docs` ge hoḍi adu sundara mattu antargṛhīta API darśanada tāri +- **built-in pariśīlane**: tappugaḷannu adaralli gāḍeyāgi toḷagi hākuvudu +- **ati vegavāgi**: oMde vegavanta Python mārgaḍhaṭigaḷalli oMdu +- **ādhunika Python**: hosa Python viśēṣategaḷannu migilu upayōga māḍuva + +**matte backend beka yāke:** + +**surakṣā**: nim'ma AI API keṭa password hāgide – yādarinda nivege atte frontend JavaScript ge idannu ididdare, nim'ma vebasāiṭina mūla kodu opipisuvavaru adannu Heḷida mahaḍada māḍi nim'ma AI credits upayōgisabahudu. backend taṇṇagege joṭṭisalidiruvudu. + +**mātrā niyantraṇe mattu nīgaraṇe**: backend nīvu yelli matthu śīghra āvedanegaḷannu māḍabahudu, upayōgakartṛccinmaṭṭu sahīti maḍabahudu. + +**dātā saṃpādaneya niyamana**: samvāda nivaḍi irabahudu, apatyakāra sāmagrigaḷan Thessī mārkavelu, hēcchadyanta AI sevegaḷannu saṅkaḷisuva. + +**samācāra chuṛumeraḍu tantara:** + +- **frontend**: upayōgakartṛ muhūrtaphurti +- **backend API**: āvedaneya pariśīlane mattu mārgaṇe +- **AI seve**: bāhya gaṇanādi mattu uttara racane +- **paryāvaraṇa māpaka**: surakṣita sācive mattu sujñā dhāraṇe + +### āvedane-uttara pravāha artha māḍikoḷḷuvudu + +upayōgakartṛ sandeśa koḍuvaga yenu naḍeyutte anta noḍona: + +```mermaid +sequenceDiagram + participant User as 👤 ಬಳಕೆದಾರ + participant Frontend as 🌐 ಮುಂಭಾಗ + participant API as 🔧 ಫಾಸ್ಟ್‌ಎಪಿಐ ಸರ್ವರ್ + participant AI as 🤖 ಏಐ ಸೇವೆ + + User->>Frontend: ಟೈಪ್ ಮಾಡುತ್ತಾ "ಹಲೋ ಏಐ!" + Frontend->>API: POST /hello {"message": "ಹಲೋ ಏಐ!"} + Note over API: ವಿನಂತಿಯನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ
ಸಿಸ್ಟಮ್ ಪ್ರಂಪ್ಟ್ ಸೇರುತ್ತದೆ + API->>AI: ಸ್ವರೂಪಗೊಳ್ಳಿಸಿದ ವಿನಂತಿ ಕಳುಹಿಸುತ್ತದೆ + AI->>API: ಏಐ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಕಳುಹಿಸುತ್ತದೆ + Note over API: ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುತ್ತದೆ
ಸಂವಾದದ ಲಾಗ್ ಮಾಡುತ್ತದೆ + API->>Frontend: {"response": "ಹಲೋ! ನಾನು ಹಾಯ್ ಹೇಗೆ ಸಹಾಯ ಮಾಡಬಹುದು?"} + Frontend->>User: ಏಐ ಸಂದೇಶ್ ಪ್ರದರ್ಶನ ಮಾಡುತ್ತದೆ +``` +**prati padavannu artha māḍikoḷḷuva hāge:** +1. **upayōgakartṛ hāgāḍuvike**: vyakti cāṭ interface nalli type māḍuttaḍe +2. **frontend pariśīlane**: JavaScript data na grahisi JSON rītige rūpāntaṛisuttade +3. **API pariśīlane**: FastAPI kevala Pydantic taraha modelgaḷinda āvedanegaḷannu pariśīlisuttade +4. **AI saṅkalana**: backend sandarbha (system prompt) koṭṭu AI sevegala na kareyuttade +5. **uttara nivaṛane**: API AI na uttara paḍedukoḷḷi avashyakathe iddare badalāyisuva +6. **frontend pradarśana**: JavaScript adakke uttara cāṭ interface nalli māḍuttade + +### API saṃrachaneya arthakikr̥ti + +```mermaid +sequenceDiagram + participant Frontend + participant FastAPI + participant AI Function + participant GitHub Models + + Frontend->>FastAPI: POST /hello {"message": "ನಮಸ್ಕಾರ AI!"} + FastAPI->>AI Function: call_llm(message, system_prompt) + AI Function->>GitHub Models: API request + GitHub Models->>AI Function: AI response + AI Function->>FastAPI: response text + FastAPI->>Frontend: {"response": "ನಮಸ್ಕಾರ! ನಾನು ಹೇಗೆ ಸಹಾಯ ಮಾಡಬಹುದು?"} +``` +```mermaid +flowchart TD + A[ಬಳಕೆದಾರ ನುಡಿಗಳು] --> B[ಮುಂಬಡಿಭಾಗ ಮಾನ್ಯತೆ] + B --> C[HTTP POST ವಿನಂತಿ] + C --> D[ಫಾಸ್ಟ್API ರೌಟರ್] + D --> E[ಪಿಡ್ಯಾಂಟಿಕ್ ಮಾನ್ಯತೆ] + E --> F[ಎಐ ಕಾರ್ಯ ಕರೆಯುವುದು] + F --> G[GitHub ಮಾದರಿಗಳು API] + G --> H[ಪ್ರತಿಕ್ರಿಯೆ ಪ್ರಕ್ರಿಯೆ] + H --> I[JSON ಪ್ರತಿಕ್ರಿಯೆ] + I --> J[ಮುಂಭಡಿಭಾಗ ನವೀಕರಣ] + + subgraph "ಸುರಕ್ಷತೆ ಪದರ" + K[CORS ಮಧ್ಯಂತರ ಸಾಫ್ಟ್‌ವೇರ್] + L[ಪರಿಸರ ಚರ] + M[ದೋಷ ನಿರ್ವಹಣೆ] + end + + D --> K + F --> L + H --> M +``` +### FastAPI kāryakrama racane māḍuvudu + +nam'ma API na taragatē taragatē racisona. `api.py` anta hesarina oMdu file na FastAPI koḍige racisi: + +```python +# api.py +from fastapi import FastAPI, HTTPException +from fastapi.middleware.cors import CORSMiddleware +from pydantic import BaseModel +from llm import call_llm +import logging + +# ಲಾಗಿಂಗ್ ಅನ್ನು ಸಂರಚಿಸಿ +logging.basicConfig(level=logging.INFO) +logger = logging.getLogger(__name__) + +# ಫಾಸ್ಟ್ API ಅಪ್ಲಿಕೇಶನ್ ರಚಿಸಿ +app = FastAPI( + title="AI Chat API", + description="A high-performance API for AI-powered chat applications", + version="1.0.0" +) + +# CORS ಅನ್ನು ಸಂರಚಿಸಿ +app.add_middleware( + CORSMiddleware, + allow_origins=["*"], # ಉತ್ಪಾದನೆಗಾಗಿ ಸೂಕ್ತವಾಗಿ ಸಂರಚಿಸಿ + allow_credentials=True, + allow_methods=["*"], + allow_headers=["*"], +) + +# ವಿನಂತಿ/ಪ್ರತಿಕ್ರಿಯೆ ಮಾನ್ಯತೆಗಾಗಿ ಪೈಡಾಂಟಿಕ್ ಮಾದರಿಗಳು +class ChatMessage(BaseModel): + message: str + +class ChatResponse(BaseModel): + response: str + +@app.get("/") +async def root(): + """Root endpoint providing API information.""" + return { + "message": "Welcome to the AI Chat API", + "docs": "/docs", + "health": "/health" + } + +@app.get("/health") +async def health_check(): + """Health check endpoint.""" + return {"status": "healthy", "service": "ai-chat-api"} + +@app.post("/hello", response_model=ChatResponse) +async def chat_endpoint(chat_message: ChatMessage): + """Main chat endpoint that processes messages and returns AI responses.""" + try: + # ಸಂದೇಶವನ್ನು ತೆಗೆಯಿರಿ ಮತ್ತು ಮಾನ್ಯತೆ ಮಾಡಿರಿ + message = chat_message.message.strip() + if not message: + raise HTTPException(status_code=400, detail="Message cannot be empty") + + logger.info(f"Processing message: {message[:50]}...") + + # AI ಸೇವೆಯನ್ನು ಕರೆಮಾಡಿ (ನೋಟ್: ಉತ್ತಮ ಕಾರ್ಯಕ್ಷಮತೆಗಾಗಿ call_llm ಅನ್ನು ಅಸಿಂಕ್ರೋನಸ್ ಮಾಡಬೇಕು) + ai_response = await call_llm_async(message, "You are a helpful and friendly assistant.") + + logger.info("AI response generated successfully") + return ChatResponse(response=ai_response) + + except HTTPException: + raise + except Exception as e: + logger.error(f"Error processing chat message: {str(e)}") + raise HTTPException(status_code=500, detail="Internal server error") + +if __name__ == "__main__": + import uvicorn + uvicorn.run(app, host="0.0.0.0", port=5000, reload=True) +``` + +**FastAPI pariṣkaraṇeya artha māḍikoḷḷuvudu:** +- **import** māḍuttade FastAPI mattu Pydantic na pariśīlanege +- **tāyārisuttade** svayaṁkṛta API darśanagaḷa (server naḍeyuvāga `/docs` nalli) +- **sampādisuttade** CORS madhyamavāhini frontend inda vividha laikāḷadinda āvedanegaḷannu anumatisuva +- **vikalpa** māḍuttade Pydantic modeli āvedane/uttara pariśīlane mattu darśana savalpa +- **upayōga māḍuttade** async endpointgaḷannu sariyāgi pariśīlane mattu uttama kāryakṣamatege +- **iruvudu** sarīya HTTP sthiti koḍugaḷu mattu tappina samādhāna HTTPException jothege +- **saha** rūpagaḷalli loggaḷannu koduttade nīgaraṇeya maddi mattu pariśīlanege +- **koduttade** svāsthya pariśīlane endpointu, sevā sthiti heḷuvudu + +**paramparāgata frameworkgaḷa mēle FastAPI pramukha viśēṣategaḷu:** +- **svayaṁkṛta pariśīlane**: Pydantic modeli dātā nirvāhane māṭṭuvaruvudu +- **antarvartīya darśana**: `/docs` ge hogaḷuva svayaṃkṛta, pariśīlitavāda API darśana +- **type surakṣā**: Python kelavu rīti saṁketa yōjane koda tappugaḷannu nivaŕtisuva +- **async sahāya**: anēka AI āvedanegaḷannu oMde samayadalli niravadhisuva +- **kāryakṣamate**: satyavāgi requestgaḷa rīti pariśīlane atiyuttama + +### CORS annodannu artha māḍikoḷḷuvudu: web surakṣā carita + +CORS (Cross-Origin Resource Sharing) oMdu surakṣaka digavāhna hāgide, yārendare binna maṭṭalāḍu māḍalu anumati koḍuvudāgi nōḍuttade. idu yāke mukhya mattu nim'ma anukramaṇikeyalli yenu pāthrapāḍuttade anta tilidukoḷḷona. + +#### CORS yenu mattu idu yāke irutē? + +**saṁśaya**: yāvudādaru vebasāiṭu nim'ma hesarinda nim'ma bēlige āvedanegaḷannu māḍabahuda endare? adu surakṣā maḍuvala! baḍigegaḷu "same-origin policy" mūlake īdannu avarjemge niveyuttade. + +**same-origin policy**: baḍige nīvu pagege tindi āḍida domain, port mattu protocol nalli mātra āvedanegaḷannu mōḍvatte. + +**vāstavika udāharaṇa**: oMdu apartment bhavana surakṣaka – kevala nivāsigaḷu (same origin) bhavana koḍalāgide. nīvu obba mitra (binnā origin) barediḍa kareyalu surakṣakanu toḷaguvudu. + +#### nim'ma abhivr̥ddhi parisaradalli CORS + +abhivr̥ddhi shēṣa nim'ma frontend mattu backend vividha ports nalli naḍeyuttade: +- frontend: `http://localhost:3000` (athavā HTML sīdhāgi teredaga `file://`) +- backend: `http://localhost:5000` + +iduvu oMde kaṇṇuhāṇḍa nīḍuvudilla yāvaḍe avantara! + +```python +from fastapi.middleware.cors import CORSMiddleware + +app = FastAPI(__name__) +CORS(app) # ಇದು ಬ್ರೌಸರ್ ಗಳಿಗೆ ಹೇಳುತ್ತದೆ: "ಇತರೆ ಮೌಲುಗಳಿಂದ ಈ API ಗೆ ವಿನಂತಿಗಳನ್ನು ಮಾಡುವುದು ಸಮಸ್ಯೆಯಿಲ್ಲ" +``` + +**CORS paricaya yeda prakara:** +- **ADD māḍuttade** vishēṣa HTTP headers jothege API uttaragaḷige, idu baḍigege "ī binna origin āvedane anumatide" antu heḷidda +- **pālgottade** "prāraṃbhika" āvedanegaḷu (baḍigegaḷu modala kārya keḷabekādare nivu parīkṣeya māḍuttade) +- **nivārisuttade** "CORS nīti dvara baḍiga nivāda" anta brauzar console dalli tappu + +#### CORS surakṣā: abhivr̥ddhi vs utpādan + +```python +# 🚨 ಅಭಿವೃದ್ಧಿ: ಎಲ್ಲಾ ಮೂಲಗಳನ್ನು ಅನುಮತಿಸುತ್ತದೆ (ಸರಳ ಆದರೆ ಸುರಕ್ಷಿತವಲ್ಲ) +CORS(app) + +# ✅ ಉತ್ಪಾದನೆ: ನಿಮ್ಮ ನಿರ್ದಿಷ್ಟ ಫ್ರಂಟ್‌ಎಂಡ್ ಡೊಮೈನ್ ಅನ್ನು ಮಾತ್ರ ಅನುಮತಿಸಿ +CORS(app, origins=["https://yourdomain.com", "https://www.yourdomain.com"]) + +# 🔒 ಉನ್ನತ: ವಿಭಿನ್ನ ವಾತಾವರಣಗಳಿಗೆ ವಿಭಿನ್ನ ಮೂಲಗಳು +if app.debug: # ಅಭಿವೃದ್ಧಿ ಮೋಡ್ + CORS(app, origins=["http://localhost:3000", "http://127.0.0.1:3000"]) +else: # ಉತ್ಪಾದನೆ ಮೋಡ್ + CORS(app, origins=["https://yourdomain.com"]) +``` + +**idu yāke mukhya**: abhivr̥ddhi nalli `CORS(app)` nim'ma mūkaḷuvina hatadiṭṭu – sulabhavāgi kottade, ādare surakṣita alla. utpādanadalli tappadanta websitegaḷu nim'ma API nalli ḍāka koḍuttade endu niyamisabekāguttade. + +#### sāmānya CORS paristhitigalu mattu pariṣkāragaḷu + +| paristhiti | samasya | pariṣkāra | +|---------------------|-------------------------|------------------------------------| +| **sthala abhivr̥ddhi** | frontend backendge sigalilla | FastAPI ge CORSMiddleware seerisuvudu | +| **GitHub Pages + Heroku** | utpādita frontend APIge sigalilla | nim'ma GitHub Pages URL na CORS dvara seerisu | +| **viśiṣṭa ḍomēn** | utpādanadalli CORS tappugaḷu | CORS dvara nim'ma domainge anurūpa māḍi | +| **moḍi apilikeśan** | apile Web API sigalilla | nim'ma app-ina domain athavā `*`niyama savalaṅkita rūpadiṁda upayōga + +**uttama sūtra**: nim'ma brauzar developer tools nalli Network tab nūḍi CORS headergaḷannu noḍabahudu. erada uttarada Access-Control-Allow-Origin jothege header eṣṭu iddēnte noḍi. + +### tappugaḷannu niyantaraṇe mattu pariśīlane + +nim'ma API elli sarīya tappu niyama māḍida noḍi: + +```python +# ನಮಗೆ ಸಂದೇಶವು ಬಂದಿದೆಯೆಂದು ಪರಿಶೀಲಿಸಿ +if not message: + return jsonify({"error": "Message field is required"}), 400 +``` + +**pramukha pariśīlane sid'dhānta:** +- āvedana mūlagāgi āvashyaka māṭugaḷannu pariśīlade +- artha purṇavāda tappina sandeśagaḷu JSON rītige koḍuttade +- sārthaka HTTP sthiti codegaḷu hākuva (400 tappu āvedanegaḷige) +- frontend abhivr̥ddhakaḷige spashṭa pariśōdhane sahāya koḍuvudu + +## nim'ma backend na set up māḍuvudu mattu naḍeyuvudu + +īga nāvu AI saṅkalana mattu FastAPI server tayār māḍiddāre, ellāvanḷḷi naḍeyalu beku. setup prakriye Python avashyakagaḷannu iruvisuvudu, parisaravagi bēḍikegaḷannu sheṭṭu māḍuvudu, mattu abhivr̥ddhi server na pampiṭṭu. + +### Python parisarada sādhane + +nim'ma Python abhivr̥ddhi parisara na set up māḍona. Virtual environments hāge bāvariyuta ide – yāva projejkṭu adhika sthāna paricālana māduttade (cada one hosa sāmagrigaḷu mattu avashyakagaḷu jothege, paraspara sāhasasamarthakathe illa). + +```bash +# ನಿಮ್ಮ ಬ್ಯಾಕೆಂಡ್ ಡೈರೆಕ್ಟರಿಗೆ ನ್ಯಾವಿಗೇಟ್ ಮಾಡಿ +cd backend + +# ವರ್ಚುವಲ್ ಪರಿಸರವನ್ನು ರಚಿಸಿ (ನಿಮ್ಮ ಪ್ರಾಜೆಕ್ಟ್‌ಗಾಗಿ ಸ್ವಚ್ಚ ಕೊಠಡಿಯನ್ನು ರಚಿಸುವಂತೆ) +python -m venv venv + +# ಅದನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ (ಲಿನಕ್ಸ/ಮ್ಯಾಕ್) +source ./venv/bin/activate + +# ವಿಂಡೋಸ್‌ನಲ್ಲಿ, ಬಳಸಿ: +# venv\Scripts\activate + +# ಉತ್ತಮ ವಸ್ತುಗಳನ್ನು ಸ್ಥಾಪಿಸಿ +pip install openai fastapi uvicorn python-dotenv +``` + +**nāvu hege māḍiddēve:** +- oMdu nim'ma mōṭṭu Python hākuge, yāvudakke bere yāvude aśraya māḍuvudilla +- activate mādide heḷuvudu terminal alli idu kārya mādutte anta +- avashyakagaḷu install māḍide: OpenAI AI aṣṭiraśakti ge, FastAPI web API ge, Uvicorn aṅga server ge mattu python-dotenv gupta māḍalu + +**pramukha āvaśyakagaḷu vivaravāgi**: +- **FastAPI**: ādhunika, vegavanta Web framework svayaṁkṛta API darśana sahita +- **Uvicorn**: vegavāgi FastAPI anukramaṇika naḍeyuva ASGI server +- **OpenAI**: GitHub Models mattu OpenAI API jothege adhikārika pustaka +- **python-dotenv**: .env file galinda surakṣita parisaravagi parivartisuva + +### parisaravagi samayōjana: guptagaḷannu surakṣita māḍuvudu + +API na prārambhamāḍuva munnaṭa, ondhu atiyavashyaka web abhivr̥ddhi paṭaṇike - nim'ma guptagaḷannu yāke surakṣita māḍabēku anta. parisaravagi samayōjana hāge oMdu rakṣita vāśi vikeśa – kevala nim'ma app ge use maduva hakku ide. + +#### parisaravagi samayōjana yenu? + +**parisaravagi samayōjana na`nn guptākaḷa dhanāvarṇiḍi ghāṭaka** – nīvu heḷuva mūlya vastuḷannu adaralli horuvarisuvudu matte nim'ma (matte nim'ma app) mātra tannadu koḷḷuttade. sīdhāgirisi guptavāgada māḍuvaru kode inside idde (ellavārigū noḍabahudu) avaru kuri noḍuva maniṣṭada bhāga. + +**iduvudake paryāyatmaka:** +- **tappu mārga**: nim'ma password sticky note alli baredu monitor mele hākida heḷuvudu +- **sariyāgi mārga**: password nim'ma surakṣita password menējaraḷḷi iruvudu + +#### parisaravagi samayōjaneya mukhyate + +```python +# 🚨 ಎಂದಿಗೂ ಇದು ಮಾಡಬೇಡಿ - API ಕೀ ಎಲ್ಲರಿಗೂ ಕಾಣುವಂತೆ ಇಡುವುದು +client = OpenAI( + api_key="ghp_1234567890abcdef...", # ಇದನ್ನು ಯಾರಾದರೂ ಕದಿಯಬಹುದು! + base_url="https://models.github.ai/inference" +) + +# ✅ ಇದನ್ನು ಮಾಡಿ - API ಕೀ ಸುರಕ್ಷಿತವಾಗಿ ಸಂಗ್ರಹಿಸು +client = OpenAI( + api_key=os.environ["GITHUB_TOKEN"], # ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಮಾತ್ರ ಇದನ್ನು ಪ್ರವೇಶಿಸಬಹುದು + base_url="https://models.github.ai/inference" +) +``` + +**nim'ma guptagaḷu hardcode māḍuva samayadalli:** +1. **version control prākaṭya**: nim'ma git repository yārigē access ide avaru nim'ma API key nōḍabahudu +2. **sarvajana repository**: GitHub ge push māḍiddare key sampūrṇavāgi prakaṭa +3. **team hēḷuva**: bere developergaḷu nim'ma API key upayōgisuva +4. **surakṣā bhanga**: yāradaru nim'ma API key kaVcukoNDare adannu upayōgisuva AI creditgala haṇḍādare + +#### nim'ma environment file na set māḍuvudu + +backend directory nalli `.env` file tayār māḍi. ivasthu nim'ma guptagaḷu sthaḷīya rakṣaṇeyalli iruvudakke: + +```bash +# .env ಫೈಲ್ - ಇದನ್ನು Git ಗೆ ಎಂದಿಗೂ ಕಮಿಟ್ ಮಾಡಬಾರದು +GITHUB_TOKEN=your_github_personal_access_token_here +FASTAPI_DEBUG=True +ENVIRONMENT=development +``` + +**.env file artha māḍikoḷḷuvudu:** +- **oMdu rahasya pratyēka kēlinalilx** `KEY=value` mārgaḍalli +- **samakṣepiNAre** illa `=` choṭṭalalli +- **koti cita** illa mūlyagaḷa āsapāsa (āmumaṭe) +- **ṭippaṇigaḷu** `#` inda ārambhamāḍuva + +#### nim'ma GitHub vyakti gatāvaiyāyuṭa token tayārisuvudu + +nim'ma GitHub token nim'ma app ge GitHub AI sevagaḷannu upayōgisuva adhikāra niḍuva hēgagāgiruttade: + +**tera mārga kramayāvaḷi:** +1. **GitHub Setṭingsge hoḍi** → Developer settings → Personal access tokens → Tokens (classic) +2. **"Generate new token (classic)" nalilc lābhyamāḍi state** +3. **samāpti samaaya niḍu** (30 dino parīkṣaṇege, hecchu kālagaḷakke sthāyi) +4. **adhikāragaḷannu tīḷiyiri**: "repo" mattu bere sādhyateya nirūpaṇa mēle tikki +5. **token tayārisu** mattu turuntu copy māḍi (mati noḍalu sādhyavilla!) +6. **.env file ge oḷage olidisiri** + +```bash +# ನಿಮ್ಮ ಟೋಕನ್ ಹೇಗಿರುತ್ತದೆ ಎಂಬ ಉದಾಹರಣೆ (ಇದು ನಕಲಿ!) +GITHUB_TOKEN=ghp_1A2B3C4D5E6F7G8H9I0J1K2L3M4N5O6P7Q8R +``` + +#### Python nalli parisaravagi samayōjanagaḷannu hākuvudu + +```python +import os +from dotenv import load_dotenv + +# .env ಫೈಲ್‌ನಿಂದ ಪರಿಸರ ಚರಗಳನ್ನು ಲೋಡ್ ಮಾಡಿ +load_dotenv() + +# ಈಗ ನೀವು ಅವುಗಳನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಪ್ರವೇಶಿಸಬಹುದು +api_key = os.environ.get("GITHUB_TOKEN") +if not api_key: + raise ValueError("GITHUB_TOKEN not found in environment variables!") + +client = OpenAI( + api_key=api_key, + base_url="https://models.github.ai/inference" +) +``` + +**ī koḍu yenu māḍuttade:** +- nim'ma .env file na load māḍi parisaravagi samayōjanagaḷannu Python ge anukūḷa māḍuttade +- āvedavalada API key iddēnte anta pariśīlane māḍuttade (sarala tappina nirīkṣe) +- token illa iddare heḷuva tappu baruttade +- token na surakṣita vagadāda upayōga māḍuttade, koḍina bāgaṁdu parigaṇisuva illa + +#### Git surakṣā: `.gitignore` file + +nim'ma `.gitignore` file Git ge yaava filegaḷannu anusarisuva illa endu heḷuttade: + +```bash +# .gitignore - ಈ ಸಾಲುಗಳನ್ನು ಸೇರಿಸಿ +.env +*.env +.env.local +.env.production +__pycache__/ +venv/ +.vscode/ +``` + +**īdara mukhyate**: `.env` ge `.gitignore` seerisi, Git nīvu niyamita kramadalli nim'ma guptagaḷannu GitHub ge accidental hākuvudakkiro naḍeyuvudilla. + +#### vividha parisaragaḷu, vividha guptagaḷu + +vṛddhānta padavīya appgaḷu vividha parisaragaḷige vividha API keys na upayōgisuttave: + +```bash +# .env.ಅಭಿವೃದ್ಧಿ +GITHUB_TOKEN=your_development_token +DEBUG=True + +# .env.ಉತ್ಪಾದನೆ +GITHUB_TOKEN=your_production_token +DEBUG=False +``` + +**ekuvala mukhyate**: abhivr̥ddhige nim'ma anubravaṇe nim'ma utpādanā IC upayōga mattu surakṣā māta matthu vividha parisaragaḷige vividha surakṣā tarāgalannu bhinnamāḍabeku. + +### nim'ma abhivr̥ddhi server na prārambha māḍuvudu: nim'ma FastAPI ge prāṇadāna koḍuvudu +ಇದೀಗ रोमಾಂಚಕ ಕ್ಷಣ — ನಿಮ್ಮ FastAPI ಅಭಿವೃದ್ಧಿ ಸರ್ವರ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಿ ಮತ್ತು ನಿಮ್ಮ AI ಎಂಕೋಮಿಗೇಶನ್ ಜೀವಂತವಾಗಿರುವುದನ್ನು ನೋಡಿರಿ! FastAPI Uvicorn ಅನ್ನು ಉಪಯೋಗಿಸುತ್ತದೆ, ಇದು ಅತಿವ್ಯಾಪಕವಾಗಿ ವೇಗದ ASGI ಸರ್ವರ್ ಆಗಿದ್ದು, ವಿಶೇಷವಾಗಿ ಅಸಿಂಕ್ರೋನಸ್ ಪೈಥಾನ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗಾಗಿ ವಿನ್ಯಾಸಗೊಳ್ಳಲಾಗಿದೆ. + +#### FastAPI ಸರ್ವರ್ ಪ್ರಾರಂಭ ಪ್ರಕ್ರಿಯೆಯ ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು + +```bash +# ವಿಧಾನ 1: ನೇರ ಪೈಥಾನ್ ಕಾರ್ಯಾಚರಣೆ (ಸ್ವಯಂ-ಪುನಃಲೋಡ್ ಸಹಿತ) +python api.py + +# ವಿಧಾನ 2: ಯೂವಿಕೋರ್ನ್ ನೇರವಾಗಿ ಬಳಸುವುದು (ಹೆಚ್ಚು ನಿಯಂತ್ರಣ) +uvicorn api:app --host 0.0.0.0 --port 5000 --reload +``` + +ನೀವು ಈ ಕಮಾಂಡ್ ಅನ್ನು ಓಡಿಸಿದಾಗ, ಹಿಂಭಾಗದಲ್ಲಿ ಈ ಕೆಳಗಿನ ಘಟನೆಗಳು ಸಂಭವಿಸುತ್ತವೆ: + +**1. ಪೈಥಾನ್ ನಿಮ್ಮ FastAPI ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಲೋಡ್ ಮಾಡುತ್ತದೆ**: +- ಅಗತ್ಯವಿರುವ ಎಲ್ಲಾ ಲೈಬ್ರರಿಗಳನ್ನು ಆಮದು ಮಾಡಿಕೊಳ್ಳುತ್ತದೆ (FastAPI, Pydantic, OpenAI ಮುಂತಾದವು) +- ನಿಮ್ಮ `.env` ಕಡತದಿಂದ ಪರಿಸರ ವೈಯರಿಯಬಲ್ಗಳನ್ನು ಲೋಡ್ ಮಾಡುತ್ತದೆ +- ಸ್ವಯಂಚಾಲಿತ ದಾಖಲೆಗಳೊಂದಿಗೆ FastAPI ಅಪ್ಲಿಕೇಶನ್ ಉದಾಹರಣೆಯನ್ನು ರಚಿಸುತ್ತದೆ + +**2. Uvicorn ASGI ಸರ್ವರ್ ಅನ್ನು ಸಂರಚಿಸುತ್ತದೆ**: +- ಅಸಿಂಕ್ರೋನಸ್ ವಿನಂತಿ ನಿರ್ವಹಣೆಯೊಂದಿಗೆ ಪೋರ್ಟ್ 5000 ಗೆ ಬಾಂಧುತ್ತದೆ +- ಸ್ವಯಂಚಾಲಿತ ಮಾನ್ಯತೆ ಹೊಂದಿದ ವಿನಂತಿ ಮಾರ್ಗನಿರ್ದೇಶನವನ್ನು ಸ್ಥಾಪಿಸುತ್ತದೆ +- ಅಭಿವೃದ್ಧಿಗಾಗಿ ಹಾಟ್ ರಿಲೋಡ್ ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ (ಕಡತ ಬದಲಾವಣೆಗಳಿಗೆ ಮರುಪ್ರಾರಂಭ) +- ತಂತ್ರಜ್ಞಾನಾತ್ಮಕ API ದಾಖಲೆಗಳನ್ನು ರಚಿಸುತ್ತದೆ + +**3. ಸರ್ವರ್ ಕೇಳಲು ಪ್ರಾರಂಭಿಸುತ್ತದೆ**: +- ನಿಮ್ಮ ಟರ್ಮಿನಲ್‌ನಲ್ಲಿ ಪ್ರದರ್ಶಿಸುತ್ತದೆ: `INFO: Uvicorn running on http://0.0.0.0:5000` +- ಸರ್ವರ್ ಹಲವಾರು ಸಮಕಾಲೀನ AI ವಿನಂತಿಗಳನ್ನು ನಿರ್ವಹಿಸಬಹುದು +- ನಿಮ್ಮ API ಸಿದ್ದವಾಗಿದೆ ಸ್ವಯಂಚಾಲಿತ ದಾಖಲೆಗಳೊಂದಿಗೆ `http://localhost:5000/docs` ನಲ್ಲಿ + +#### ಎಲ್ಲವೂ ಸರಿಯಾಗಿ ನಡೆದಾಗ ನೀವು ಏನು ನೋಡಬೇಕು + +```bash +$ python api.py +INFO: Will watch for changes in these directories: ['/your/project/path'] +INFO: Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit) +INFO: Started reloader process [12345] using WatchFiles +INFO: Started server process [12346] +INFO: Waiting for application startup. +INFO: Application startup complete. +``` + +**FastAPI output ಅನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು:** +- **ಮಾರ್ಪಾಡುಗಳಿಗಾಗಿ ನೋಡಲಿದೆ**: ಅಭಿವೃದ್ಧಿಗಾಗಿ ಸ್ವಯಂ ರಿಲೋಡ್ ಸಕ್ರಿಯವಾಗಿದೆ +- **Uvicorn ಚಾಲನೆಯಲ್ಲಿದೆ**: ಹೆಚ್ಚಿನವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ASGI ಸರ್ವರ್ ಸಕ್ರಿಯವಾಗಿದೆ +- **ರಿಲೋಡರ್ ಪ್ರಕ್ರಿಯೆ ಪ್ರಾರಂಭವಾಯಿತು**: ಸ್ವಯಂ ಮರುಪ್ರಾರಂಭಕ್ಕಾಗಿ ಕಡತ ವೀಕ್ಷಕ +- **ಅಪ್ಲಿಕೇಶನ್ ಪ್ರಾರಂಭ ಸಂಪೂರ್ಣ**: FastAPI ಅಪ್ಲಿಕೇಶನ್ ಯಶಸ್ವಿಯಾಗಿ ಆರಂಭವಾಗಿದೆ +- **ಪರಸ್ಪರ ಕ್ರಿಯಾಶೀಲ ದಾಖಲೆಗಳು ಲಭ್ಯ**: API ಡಾಕ್ಯುಮೆಂಟೇಶನ್‌ಗೆ `/docs` ತೆರೆಯಿರಿ + +#### ನಿಮ್ಮ FastAPI ನ ಪರೀಕ್ಷೆ: ಹಲವು ಶಕ್ತಿಶಾಲೀ ವಿಧಾನಗಳು + +FastAPI ಸ್ವಯಂಚಾಲಿತ ಪರಸ್ಪರ ಕ್ರಿಯಾಶೀಲ ಡಾಕ್ಯುಮೆಂಟೇಶನ್ ಸೇರಿ ಹಲವಾರು ಅನುಕೂಲಕರ API ಪರಿಶೀಲನಾ ವಿಧಾನಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ: + +**ವಿಧಾನ 1: ಪರಸ್ಪರ ಕ್ರಿಯಾಶೀಲ API ಡಾಕ್ಯುಮೆಂಟೇಶನ್ (ಶಿಫಾರಸ್ಸು)** +1. ನಿಮ್ಮ ಬ್ರೌಸರ್ ತೆರೆಯಿರಿ ಮತ್ತು `http://localhost:5000/docs` ಗೆ ಹೋಗಿ +2. ನಿಮ್ಮ ಎಲ್ಲಾ ಎಂಡ್ಫಾಯಿಂಟ್‌ಗಳ ದಾಖಲೆಗಳೊಂದಿಗೆ Swagger UI ಕಾಣಿಸುತ್ತವೆ +3. `/hello` ಮೇಲೆ ಕ್ಲಿಕ್ ಮಾಡಿ → "Try it out" → ಪರೀಕ್ಷಾ ಸಂದೇಶವನ್ನು ನಮೂದಿಸಿ → "Execute" +4. ಸರಿಯಾದ ವಿನ್ಯಾಸದಲ್ಲಿ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ನೇರವಾಗಿ ಬ್ರೌಸರ್ ನಲ್ಲಿ ನೋಡಿ + +**ವಿಧಾನ 2: ಮೂಲ ಬ್ರೌಸರ್ ಪರೀಕ್ಷೆ** +1. ರೂಟ್ ಎಂಡ್ಪಾಯಿಂಟ್‌ಗೆ `http://localhost:5000` ಗೆ ಹೋಗಿ +2. ಸರ್ವರ್ ಆರೋಗ್ಯವನ್ನು ಪರಿಶೀಲಿಸಲು `http://localhost:5000/health` ಗೆ ಹೋಗಿ +3. ಇದು ನಿಮ್ಮ FastAPI ಸರ್ವರ್ ಸರಿಯಾಗಿ ಚಾಲನೆಯಲ್ಲಿದೆ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ + +**ವಿಧಾನ 2: ಕಮಾಂಡ್ ಲೈನ್ ಪರೀಕ್ಷೆ (ಮುಂದಿನ ಮಟ್ಟ)** +```bash +# curls (ಸಿಗುತ್ತದೆ ಎಂದು ಹೀಗಿದ್ದರೆ) ಮೂಲಕ ಪರೀಕ್ಷಿಸಿ +curl -X POST http://localhost:5000/hello \ + -H "Content-Type: application/json" \ + -d '{"message": "Hello AI!"}' + +# ನಿರೀಕ್ಷಿತ ಪ್ರತಿಕ್ರಿಯೆ: +# {"response": "ನಮಸ್ಕಾರ! ನಾನು ನಿಮ್ಮ ಎಐ ಸಹಾಯಕನಾಗಿದ್ದೇನೆ. ನಾನು ಇಂದು ನಿಮಗೆ ಹೇಗೆ ಸಹಾಯ ಮಾಡಬಹುದು?"} +``` + +**ವಿಧಾನ 3: ಪೈಥಾನ್ ಪರೀಕ್ಷಾ ಸ್ಕ್ರಿಪ್ಟ್** +```python +# test_api.py - ನಿಮ್ಮ API ಅನ್ನು ಪರೀಕ್ಷಿಸಲು ಈ ಫೈಲ್ ಅನ್ನು ರಚಿಸಿ +import requests +import json + +# API ಎಂಡ್‌ಪಾಯಿಂಟ್ ಅನ್ನು ಪರೀಕ್ಷಿಸಿ +url = "http://localhost:5000/hello" +data = {"message": "Tell me a joke about programming"} + +response = requests.post(url, json=data) +if response.status_code == 200: + result = response.json() + print("AI Response:", result['response']) +else: + print("Error:", response.status_code, response.text) +``` + +#### ಸಾಮಾನ್ಯ ಪ್ರಾರಂಭ ಸಮಸ್ಯೆಗಳ ಪರಿಹಾರ + +| ದೋಷ ಸಂದೇಶ | ಅರ್ಥ | ಹೇಗೆ ಸರಿಪಡಿಸಲು | +|---------------|---------------|------------| +| `ModuleNotFoundError: No module named 'fastapi'` | FastAPI ಇನ್‌ಸ್ಟಾಲ್ ಆಗಿಲ್ಲ | ನಿಮ್ಮ ವರ್ಚುವಲ್ ಎನ್ವಿರಾನ್‌ಮೆಂಟ್‌ನಲ್ಲಿ `pip install fastapi uvicorn` ರನ್ ಮಾಡಿ | +| `ModuleNotFoundError: No module named 'uvicorn'` | ASGI ಸರ್ವರ್ ಇನ್‌ಸ್ಟಾಲ್ ಆಗಿಲ್ಲ | ನಿಮ್ಮ ವರ್ಚುವಲ್ ಎನ್ವಿರಾನ್‌ಮೆಂಟ್‌ನಲ್ಲಿ `pip install uvicorn` ರನ್ ಮಾಡಿ | +| `KeyError: 'GITHUB_TOKEN'` | ಪರಿಸರ ವ್ಯತ್ಯಾಸ ಸಿಗಲಿಲ್ಲ | ನಿಮ್ಮ `.env` ಕಡತ ಮತ್ತು `load_dotenv()` ಕಾಲ್ ಅನ್ನು ಪರಿಶೀಲಿಸಿ | +| `Address already in use` | ಪೋರ್ಟ್ 5000 ಬ್ಯುಸಿ ಇದೆ | 5000 ಪೋರ್ಟ್ ಬಳಸುತ್ತಿರುವ ಇತರ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ಕೊಲ್ಲಿರಿ ಅಥವಾ ಪೋರ್ಟ್ ಬದಲಾಯಿಸಿ | +| `ValidationError` | ವಿನಂತಿ ಡೇಟಾ Pydantic ಮಾದರಿಯನ್ನು ಹೊಂದುವುದಿಲ್ಲ | ನಿಮ್ಮ ವಿನಂತಿ ಫಾರ್ಮೆಟ್ ನಿರೀಕ್ಷಿಸಲಾದ ಸ್ಕೀಮಾಕ್ಕೆ ಹೊಂದಿಕೊಳಗು | +| `HTTPException 422` | ಪ್ರಕ್ರಿಯೆಗೆ ಸಾಧ್ಯವಿಲ್ಲದ ಘಟಕ | ವಿನಂತಿ ಮಾನ್ಯತೆ ವಿಫಲವಾಗಿದೆ, ಸರಿಯಾದ ಫಾರ್ಮೆಟ್ ಇಲ್ಲದಿದ್ದರೆ `/docs` ಪರಿಶೀಲಿಸಿ | +| `OpenAI API error` | AI ಸೇವೆ ದೃಢೀಕರಣ ವಿಫಲ | ನಿಮ್ಮ GitHub ಟೋಕನ್ ಸರಿಯಿದೆ ಮತ್ತು ಹೊಂದಾಣಿಕೆಯ ಅನುಮತಿಗಳು ಇವೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ | + +#### ಅಭಿವೃದ್ಧಿ ಉತ್ತಮ ಅನುಸರಣೆಗಳು + +**ಹಾಟ್ ರಿಲೋಡಿಂಗ್**: ನಿಮ್ಮ ಪೈಥಾನ್ ಕಡತಗಳಲ್ಲಿ ಬದಲಾವಣೆಗಳನ್ನು ಉಳಿಸಿದಾಗ FastAPI ಮತ್ತು Uvicorn ಸ್ವಯಂಚಾಲಿತ ಮರುಪ್ರಾರಂಭವನ್ನು ಒದಗಿಸುತ್ತವೆ. ಇದರಿಂದ ನಿಮ್ಮ ಕೋಡ್ ತಕ್ಷಣ ತಿದ್ದುಪಡಿ ಮಾಡಿ ಪರೀಕ್ಷೆ ಮಾಡಲು ಸಾಧ್ಯ, ಕೈದಿಂದ ಮನುಯಲ್ ಮರುಪ್ರಾರಂಭ ಅಗತ್ಯವಿಲ್ಲ. + +```python +# ಹಾಟ್ ರೀಲುಡಿಂಗ್ ಅನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಸಕ್ರಿಯಗೊಳಿಸಿ +if __name__ == "__main__": + app.run(host="0.0.0.0", port=5000, debug=True) # debug=True ಹಾಟ್ ರೀಲುಡ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ +``` + +**ಅಭಿವೃದ್ಧಿಗಾಗಿ ಲಾಗಿಂಗ್**: ಏನಾಗುತ್ತಿದೆ ಎಂದು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಲಾಗಿಂಗ್ ಸೇರಿಸಿ: + +```python +import logging + +# ಲಾಗಿಂಗ್ ಅನ್ನು ಹೊಂದಿಸಿ +logging.basicConfig(level=logging.INFO) +logger = logging.getLogger(__name__) + +@app.route("/hello", methods=["POST"]) +def hello(): + data = request.get_json() + message = data.get("message", "") + + logger.info(f"Received message: {message}") + + if not message: + logger.warning("Empty message received") + return jsonify({"error": "Message field is required"}), 400 + + try: + response = call_llm(message, "You are a helpful and friendly assistant.") + logger.info(f"AI response generated successfully") + return jsonify({"response": response}) + except Exception as e: + logger.error(f"AI API error: {str(e)}") + return jsonify({"error": "AI service temporarily unavailable"}), 500 +``` + +**ಲಾಗಿಂಗ್ ಸಹಾಯವೆಲ್ಲಿ**: ಅಭಿವೃದ್ಧಿಯಲ್ಲಿ ನೀವು ಬರುವ ವಿನಂತಿಗಳನ್ನು, AI ಉತ್ತರಿಸುವ ವಿಷಯಗಳನ್ನು ಮತ್ತು ದೋಷಗಳು ಎಲ್ಲಿದೆ ಎಂದು ನಿಖರವಾಗಿ ನೋಡಬಹುದು. ಇದರಿಂದ ದೋಷಗಳ ಪರಿಹಾರ ವೇಗವಾಗಿ ಸಾಧ್ಯವಾಗುತ್ತದೆ. + +### GitHub Codespaces ನಿಗಾಗಿ ಸಂರಚನೆ: ಕ್ಲೌಡ್ ಅಭಿವೃದ್ಧಿ ಸುಲಭವಾಗಿಸಿದವು + +GitHub Codespaces ಎಂದರೆ ಕ್ಲೌಡ್‌ನಲ್ಲಿ ಶಕ್ತಿಶಾಲಿ ಅಭಿವೃದ್ಧಿ ಕಂಪ್ಯೂಟರ್ ಇದಾಗಿದೆ, ನೀವು ಯಾವುದೇ ಬ್ರೌಸರ್‌ನಿಂದ ತಲುಪಬಹುದು. ನೀವು Codespaces ನಲ್ಲಿ ಕೆಲಸ ಮಾಡುತ್ತಿದ್ದರೆ, ನಿಮ್ಮ ಬ್ಯಾಕೆಂಡ್ ನಿಮ್ಮ ಫ್ರಂಟ್‌ಎಂಡ್‌ಗೆ ಲಭ್ಯವಿರುವಂತೆ ಮಾಡಲು ಕೆಲವು ಹೆಚ್ಚುವರಿ ಹಂತಗಳಿವೆ. + +#### Codespaces ನೆಟ್ವರ್ಕಿಂಗ್ ಅನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು + +ಸ್ಥಳೀಯ ಅಭಿವೃದ್ಧಿ ಪರಿಸರದಲ್ಲಿ ಎಲ್ಲವೂ ಒಂದೇ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ ಓಡುತ್ತದೆ: +- ಬ್ಯಾಕೆಂಡ್: `http://localhost:5000` +- ಫ್ರಂಟ್‌ಎಂಡ್: `http://localhost:3000` (ಅಥವಾ file://) + +Codespaces ನಲ್ಲಿ ನಿಮ್ಮ ಅಭಿವೃದ್ಧಿ ಪರಿಸರ GitHub ಸರ್ವರ್‌ಗಳ ಮೇಲೆ ಓಡುತ್ತದೆ, ಆದ್ದರಿಂದ "localhost"ನ ಅರ್ಥ ವಿಭಿನ್ನ. GitHub ನಿಮ್ಮ ಸೇವೆಗಳಿಗೆ ಸಾರ್ವಜನಿಕ URLಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ರಚಿಸುತ್ತದೆ, ಆದರೆ ನೀವು ಸರಿಯಾಗಿ ಸಂರಚಿಸಬೇಕಾಗುತ್ತದೆ. + +#### ಹಂತ-ಪ್ರತಿ-ಹಂತ Codespaces ಸಂರಚನೆ + +**1. ನಿಮ್ಮ ಬ್ಯಾಕೆಂಡ್ ಸರ್ವರ್ ಪ್ರಾರಂಭಿಸಿ**: +```bash +cd backend +python api.py +``` + +ನೀವು ಪರಿಚಿತ FastAPI/Uvicorn ಪ್ರಾರಂಭ ಸಂದೇಶವನ್ನು ನೋಡುತ್ತೀರಿ, ಆದರೆ ಅದು Codespace ಪರಿಸರದ ಒಳಗೆ ಓಡುತ್ತಿದೆ. + +**2. ಪೋರ್ಟ್ ದೃಶ್ಯತೆಯನ್ನು ಸಂರಚಿಸಿ**: +- VS Code ಕೆಳಗಿನ ಫಲಕದಲ್ಲಿ "Ports" ಟ್ಯಾಬ್ ನೋಡಿ +- ಪೋರ್ಟ್ 5000 ಅನ್ನು ಪಟ್ಟಿ ಯಲ್ಲಿ ಹುಡುಕಿ +- ಪೋರ್ಟ್ 5000 ಮೇಲೆ ರೈಟ್-ಕ್ಲಿಕ್ ಮಾಡಿ +- "Port Visibility" → "Public" ಆಯ್ಕೆಮಾಡಿ + +**ಸಾರ್ವಜನಿಕ ಮಾಡಲು ಏಕೆ?** ನಿರ್ದಿಷ್ಟವಾಗಿ Codespace ಪೋರ್ಟ್‌ಗಳು ಖಾಸಗಿ (ನೀವು ಮಾತ್ರ ಪ್ರವೇಶಿಸಬಹುದಾಗಿದೆ). ಪೋರ್ಟ್ ಅನ್ನು ಸಾರ್ವಜನಿಕ ಮಾಡಿದರೆ, ನಿಮ್ಮ ಫ್ರಂಟ್‌ಎಂಡ್ (ಬ್ರೌಸರ್‌ನಲ್ಲಿ ಓಡುತ್ತಿದೆ) ಬ್ಯಾಕೆಂಡ್ ಜೊತೆ ಸಂವಹನ ನಡೆಸಬಹುದು. + +**3. ನಿಮ್ಮ ಸಾರ್ವಜನಿಕ URL ಪಡೆಯಿರಿ**: +ಪೋರ್ಟ್ ಅನ್ನು ಸಾರ್ವಜನಿಕ ಮಾಡಿದ ಮೇಲೆ ಈ ರೀತಿಯ URL ಇರುತ್ತದೆ: +``` +https://your-codespace-name-5000.app.github.dev +``` + +**4. ನಿಮ್ಮ ಫ್ರಂಟ್‌ಎಂಡ್ ಸಂರಚನೆಯನ್ನು ನವೀಕರಿಸಿ**: +```javascript +// ನಿಮ್ಮ ಫ್ರಂಟ್‌ಎಂಡ್ app.js ನಲ್ಲಿ, BASE_URL ಅನ್ನು ನವೀಕರಿಸಿ: +this.BASE_URL = "https://your-codespace-name-5000.app.github.dev"; +``` + +#### Codespace URL ಗಳ ಅರ್ಥ + +Codespace URL ಗಳಿಗೆ ನಿರೀಕ್ಷಿಸಲಾದ ಮಾದರಿ ಇದೆ: +``` +https://[codespace-name]-[port].app.github.dev +``` + +**ಈ ಹಂಚಿಕೆ**: +- `codespace-name`: ನಿಮ್ಮ Codespace ಗಾಗಿ ಅನನ್ಯ ಗುರುತಿನ ಹೆಸರು (ಸಾಮಾನ್ಯವಾಗಿ ನಿಮ್ಮ ಬಳಕೆದಾರಹೆಸರು ಒಳಗೊಂಡಿದೆ) +- `port`: ನಿಮ್ಮ ಸೇವೆ ನಡೆಯುತ್ತಿರುವ ಪೋರ್ಟ್ ಸಂಖ್ಯೆ (ನಮ್ಮ FastAPI ಅಪ್ಲಿಕೇಶನ್ ಗಾಗಿ 5000) +- `app.github.dev`: GitHub ನ Codespace ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗೆ ವಿಶೇಷ ಡೊಮೇನ್ + +#### ನಿಮ್ಮ Codespace ಸೆಟಪ್ ಅನ್ನು ಪರಿಶೀಲಿಸುವುದು + +**1. ಬ್ಯಾಕೆಂಡನ್ನು ನೇರವಾಗಿ ಪರೀಕ್ಷಿಸಿ**: +ನಿಮ್ಮ ಸಾರ್ವಜನಿಕ URL ಅನ್ನು ಹೊಸ ಬ್ರೌಸರ್ ಟ್ಯಾಬ್‌ನಲ್ಲಿ ತೆರೆಯಿರಿ. ನೀವು ನೋಡಬಹುದು: +``` +Welcome to the AI Chat API. Send POST requests to /hello with JSON payload containing 'message' field. +``` + +**2. ಬ್ರೌಸರ್ ಡೆವಲಪರ್ ಟೂಲ್ಸ್ ಬಳಸಿಕೊಂಡು ಪರೀಕ್ಷಿಸಿ**: +```javascript +// ಬ್ರೌಸರ್ ಕನಸೋಲ್ ತೆರೆಯಿರಿ ಮತ್ತು ನಿಮ್ಮ API ನ್ನು ಪರೀಕ್ಷಿಸಿ +fetch('https://your-codespace-name-5000.app.github.dev/hello', { + method: 'POST', + headers: {'Content-Type': 'application/json'}, + body: JSON.stringify({message: 'Hello from Codespaces!'}) +}) +.then(response => response.json()) +.then(data => console.log(data)); +``` + +#### Codespaces ವಿರುದ್ಧ ಸ್ಥಳೀಯ ಅಭಿವೃದ್ಧಿ + +| پہلو | ಸ್ಥಳೀಯ ಅಭಿವೃದ್ಧಿ | GitHub Codespaces | +|--------|-------------------|-------------------| +| **ಸೆಟಪ್ ಸಮಯ** | ಹೆಚ್ಚು (ಪೈಥಾನ್, ಅವಲಂಬನೆಗಳು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಬೇಕಾದುದು) | ಕ್ಷಣಾರ್ಧದಲ್ಲಿ (ಮುಗ್ಧಗೊಂಡ ಪರಿಸರ) | +| **URL ಸೇರ್ಪಡೆ** | `http://localhost:5000` | `https://xyz-5000.app.github.dev` | +| **ಪೋರ್ಟ್ ಸಂರಚನೆ** | ಸ್ವಯಂಚಾಲಿತ | ಕೈಗಾರಿಕೆ (ಪೋರ್ಟುಗಳನ್ನು ಸಾರ್ವಜನಿಕ ಮಾಡಬೇಕು) | +| **ಫೈಲ್ ಸಂರಕ್ಷಣಾ** | ಸ್ಥಳೀಯ ಯಂತ್ರ | GitHub ಸಂಗ್ರಹಾಲಯ | +| **ಸಹಯೋಗ** | ಪರಿಸರ ಹಂಚಿಕೊಳ್ಳಲು ಕಷ್ಟ | Codespace ಲಿಂಕ್ ಹಂಚಿಕೊಳ್ಳಲು ಸುಲಭ | +| **ಇಂಟರ್ನೆಟ್ ಅವಲಂಬನೆ** | ಕೇವಲ AI API ಕರೆಗಳಿಗೆ | ಎಲ್ಲದರಿಗೂ ಅಗತ್ಯ | + +#### Codespace ಅಭಿವೃದ್ಧಿ ಸಲಹೆಗಳು + +**Codespaces ನಲ್ಲಿ ಪರಿಸರ ವ್ಯತ್ಯಾಸಗಳು**: +ನಿಮ್ಮ `.env` ಕಡತ Codespaces ನಲ್ಲಿ ಅದೇ ರೀತಿಯಲ್ಲಿಲೇ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ, ಆದರೆ ನೀವು Codespace ಒಳಗೆ ನೇರವಾಗಿ ಪರಿಸರ ವ್ಯತ್ಯಾಸಗಳನ್ನು ಕೂಡ ಸೆಟ್ ಮಾಡಬಹುದು: + +```bash +# ಪ್ರಸ್ತುತ ಸೆಷನ್‌ಗೆ ಪರಿಸರ ಚರವನ್ನು ಸೆಟ್ ಮಾಡಿ +export GITHUB_TOKEN="your_token_here" + +# ಅಥವಾ ಕಾಯ್ದಿರಿಸಲು ನಿಮ್ಮ .bashrc ಗೆ ಸೇರಿಸಿ +echo 'export GITHUB_TOKEN="your_token_here"' >> ~/.bashrc +``` + +**ಪೋರ್ಟ್ ನಿರ್ವಹಣೆ**: +- Codespaces ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಪೋರ್ಟ್ ಮೇಲೆ ಕೇಳಲು ಪ್ರಾರಂಭಿಸಿದಾಗ ಅದನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಪತ್ತೆಹಚ್ಚುತ್ತದೆ +- ನೀವು ಏಕಕಾಲದಲ್ಲಿ ಹಲವಾರು ಪೋರ್ಟುಗಳನ್ನು ಫಾರ್ವರ್ಡ್ ಮಾಡಬಹುದು (ನಂತರ ಡೇಟಾಬೇಸ್ ಸೇರಿಸಿದಾಗ ಉಪಯುಕ್ತ) +- ನಿಮ್ಮ Codespace ನಡೆದುいるವರೆಗೆ ಪೋರ್ಟುಗಳು ಪ್ರವೇಶಿಸಬಹುದಾಗಿರುತ್ತವೆ + +**ಅಭ್ಯರ್ಥನಾ ಕೆಲಸದ ಕ್ರಮ**: +1. VS Code ನಲ್ಲಿ ಕೋಡ್ ಬದಲಾವಣೆ ಮಾಡಿ +2. FastAPI ಸ್ವಯಂಚಾಲಿತ ಮರುಹಚ್ (Uvicorn ರಿಲೋಡ್ ಮೋಡ್ ಧನ್ಯವಾದಗಳು) +3. ಬದಲಾವಣೆಗಳನ್ನು ಸಕಾಲಿಕವಾಗಿ ಸಾರ್ವಜನಿಕ URL ಮೂಲಕ ಪರೀಕ್ಷಿಸಿ +4. ಸಿದ್ದವಾದಾಗ ಕಮಿಟ್ ಮಾಡಿ ಪುಶ್ ಮಾಡಿ + +> 💡 **ಪರಿಪೂರ್ಣ ಸಲಹೆ**: ಅಭಿವೃದ್ಧಿಯ ಸಂದರ್ಭದಲ್ಲಿ ನಿಮ್ಮ Codespace ಬ್ಯಾಕೆಂಡ್ URL ಅನ್ನು ಬುಕ್‌ಮಾರ್ಕ್ ಮಾಡಿ. Codespace ಹೆಸರಗಳು ಸ್ಥಿರವಾಗಿರುವುದರಿಂದ ನೀವು ಅದೇ Codespace ಬಳಸುತ್ತಿರುವಲ್ಲಿ URL ಬದಲಾಗುವುದಿಲ್ಲ. + +## ಫ್ರಂಟ್‌ಎಂಡ್ ಚಾಟ್ ಇಂಟರ್ಫೇಸ್ ಸೃಷ್ಟಿಸೋಣ: ಸ್ಥಳವು ಹೊಸಮನುಷ್ಯರು AI ಜೊತೆಗೆ ಸಂವಾದಿಸುವಲ್ಲಿ + +ಇದೀಗ ನಾವು ಬಳಕೆದಾರ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ನಿರ್ಮಿಸಲು ಹೋಗುತ್ತಿದ್ದೇವೆ — ಇದು ನೀವು ನಿಮ್ಮ AI ಸಹಾಯಕನೊಂದಿಗೆ ಹೇಗೆ ಸಂವಹನ ಮಾಡಬೋದು ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ. ಮೊದಲು iPhone ಇಂಟರ್ಫೇಸ್ ವಿನ್ಯಾಸದಂತೆ, ನಾವು ಸಾಂದರ್ಭಿಕ ತಂತ್ರಜ್ಞಾನವನ್ನು ನೈಸರ್ಗಿಕ ಮತ್ತು ಸಾಮಾನ್ಯವಾಗಿ ಉಪಯೋಗಿಸಬಹುದಾದಂತೆ ಮಾಡಿ. + +### ಆಧುನಿಕ ಫ್ರಂಟ್‌ಎಂಡ್ ವಾಸ್ತುಶಿಲ್ಪವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು + +ನಮ್ಮ ಚಾಟ್ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು "ಸಿಂಗಲ್ ಪೇಜ್ ಅಪ್ಲಿಕೇಶನ್" ಅಥವಾ SPA ಎಂದು ಕರೆಸಿಕೊಳ್ಳುತ್ತೇವೆ. ಹಳೆಯ ಶೈಲಿಯಂತೆ ಪ್ರತಿಯೊಂದು ಕ್ಲಿಕ್ ಹೊಸ ಪುಟವನ್ನು ಲೋಡ್ ಮಾಡುವ ಬದಲು, ನಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ನೀರಸವಾಗಿ ಮತ್ತು ತಕ್ಷಣ ಇಂದೇ ಅಪ್‌ಡೇಟ್ ಆಗುತ್ತದೆ: + +**ಹಳೆಯ ವೆಬ್‌ಸೈಟ್‌ಗಳು**: ಭೌತಿಕ ಪುಸ್ತಕ ಓದುವಂತೆ — ನೀವು ಸಂಪೂರ್ಣ ಹೊಸ ಪುಟಗಳಿಗೆ ಹಾರಿ +**ನಮ್ಮ ಚಾಟ್ ಆಪ್**: ನಿಮ್ಮ ಫೋನ್ ಬಳಸುವಂತೆ — ಎಲ್ಲವೂ ನಿಧಾನವಾಗಿ ಹರಿದು ಹೊಸತಾಗಿ ನವೀಕರಿಸಿ + +```mermaid +graph TD + A[ಬಳಕೆದಾರ ಸಂದೇಶವನ್ನು ಟೈಪ್ ಮಾಡುತ್ತಾನೆ] --> B[JavaScript ಇನ್‌ಪುಟ್ ಅನ್ನು ಸೆರೆಹಿಡಿಯುತ್ತದೆ] + B --> C[ಡೇಟಾವನ್ನು ಪರಿಶೀಲಿಸಿ ಮತ್ತು ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಿ] + C --> D[ಬ್ಯಾಕೆಂಡ್ API ಗೆ ಕಳುಹಿಸಿ] + D --> E[ಲೋಡಿಂಗ್ ಸ್ಥಿತಿಯನ್ನು ತೋರಿಸು] + E --> F[AI ಪ್ರತಿಕ್ರಿಯೆ પ્રાપ્તಿ] + F --> G[ಚಾಟ್ ಇಂಟರ್ಫೇಸ್ ನವೀಕರಿಸಿ] + G --> H[ಮುಂದಿನ ಸಂದೇಶಕ್ಕೆ ಸಿದ್ಧ] +``` +```mermaid +classDiagram + class ChatApp { + +ಸಂದೇಶಗಳು: HTMLElement + +ಫಾರ್ಮ್: HTMLElement + +ಇನ್ಪುಟ್: HTMLElement + +ಸೇಂಡ್ ಬಟನ್: HTMLElement + +ಮೂಲ_URL: string + +API_ಎಂಡ್ಪಾಯಿಂಟ್: string + + +ರಚನೆ() + +ಇವೆಂಟ್_ಶ್ರೋತರು_ಪ್ರಾರಂಭಿಸು() + +ಹ್ಯಾಂಡಲ್_ಸಬ್ಮಿಟ್(ಹUBA) + +ಕಾಲ್_API(ಸಂದೇಶ) + +ಸಂದೇಶವನ್ನು ಸೇರಿಸಿ(ಪಠ್ಯ, ಪಾತ್ರ) + +ಹೆಚ್ಟಿಎಂಎಲ್_ಒಳಚೆ() + +ಕೆಳಭಾಗಕ್ಕೆ ಸ್ಕ್ರೋಲ್ ಮಾಡಿ() + +ಲೋಡ್ ಆಗುತ್ತಿದೆ ಎಂದು ಸೆಟ್ ಮಾಡಿ(ಲೋಡ್ ಆಗುತ್ತಿದೆ) + } + + ChatApp --> DOM : ಪರಿಣತ + ChatApp --> FastAPI : ವಿನಂತಿಗಳನ್ನು ಕಳುಹಿಸುತ್ತದೆ +``` +### ಫ್ರಂಟ್‌ಎಂಡ್ ಅಭಿವೃದ್ಧಿಯ ಮೂರು ಸ್ತಂಭಗಳು + +ಪ್ರತಿ ಫ್ರಂಟ್‌ಎಂಡ್ ಅಪ್ಲಿಕೇಶನ್ — ಸರಳ ವೆಬ್‌ಸೈಟ್‌ಗಳಿಂದ Discord ಅಥವಾ Slack ಜತೆಗೆ ಸಂಕೀರ್ಣ ಆಪ್ಸ್ ತನಕ — ಮೂರು ಕೋರ ತಂತ್ರಜ್ಞಾನಗಳ ಮೇಲೆ ನಿರ್ಮಿಸಲಾಗಿದೆ. ಇವು ನಿಮ್ಮ ವೆಬ್‌ನಲ್ಲಿ ನೀವು ನೋಡುತ್ತಿರುವ ಮತ್ತು ಸಂವಹನ ಮಾಡುತ್ತಿರುವ ಪ್ರತಿಯೊಂದು ಆಧಾರಗಳು: + +**HTML (ಸಂರಚನೆ)**: ಇದು ನಿಮ್ಮ ಆಧಾರ +- ಯಾವ ಅಂಶಗಳು ಇರುವುದೆಂದು ನಿರ್ಧರಿಸುತ್ತದೆ (ಬಟನ್‌ಗಳು, ಪಠ್ಯ ಪ್ರದೇಶಗಳು, ಕಾಂಟೈನ್‌ರ್‌ಗಳು) +- ವಿಷಯಕ್ಕೆ ಅರ್ಥ ನೀಡುತ್ತದೆ (ಇದು ಹೆಡರ್, ಇದು ಫಾರ್ಮ್ ಮುಂತಾದವು) +- ಬೇರೆ ಎಲ್ಲವೂ ಅದರಲ್ಲಿ ನಿರ್ಮಿಸಲ್ಪಡುವ ಮೂಲ ರಚನೆ ಸೃಷ್ಟಿ + +**CSS (ಪ್ರಸ್ತುತಿಕೆಯ)**: ಇದು ನಿಮ್ಮ ಒಳಭಾಗ ವಿನ್ಯಾಸಕಾರ +- ಎಲ್ಲವನ್ನೂ ಸುಂದರವಾಗಿ ಕಾಣುವಂತೆ ಮಾಡುತ್ತದೆ (ಬಣ್ಣಗಳು, ಫಾಂಟ್ಸ್, ವಿನ್ಯಾಸ) +- ವಿಭಿನ್ನ ಪರದೆ ಗಾತ್ರಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ (ಫೋನ್, ಲ್ಯಾಪ್‌ಟಾಪ್, ಟ್ಯಾಬ್ಲೆಟ್) +- ಮೃದುವಾದ ಅನಿಮೆಷನು ಮತ್ತು ದೃಶ್ಯ ಪ್ರಸಕ್ತಿಕರಣಗಳನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ + +**JavaScript (ನಡತ)**: ಇದು ನಿಮ್ಮ ಮೆದುಳು +- ಬಳಕೆದಾರರ ಕ್ರಿಯೆಗಳಿಗೆ ಪ್ರತಿಕ್ರಿಯಿಸುತ್ತದೆ (ಕ್ಲಿಕ್, ಟೈಪಿಂಗ್, ಸ್ಕ್ರೋಲ್) +- ನಿಮ್ಮ ಬ್ಯಾಕೆಂಡ್ ಜೊತೆ ಮಾತನಾಡಿ ಪುಟವನ್ನು ನವೀಕರಿಸುತ್ತದೆ +- ಎಲ್ಲವನ್ನೂ ಪರಸ್ಪರ ಕ್ರಿಯಾಶೀಲ ಮತ್ತು ಗತಿಶೀಲ ಮಾಡುತ್ತದೆ + +**ಇದನ್ನು ವಾಸ್ತುಶಿಲ್ಪ ವಿನ್ಯಾಸದಂತೆ ಭಾವಿಸಿ**: +- **HTML**: ರಚನಾತ್ಮಕ ಬ್ಲೂಪ್ರಿಂಟ್‌(ಏರೀಯಾಗಳು ಮತ್ತು ಸಂಬಂಧಗಳನ್ನು ನಿರ್ಧರಿಸುವುದು) +- **CSS**: ಆಕರ್ಷಕ ಮತ್ತು ಪರಿಸರ ವಿನ್ಯಾಸ (ದೃಶ್ಯ ಶೈಲಿ ಮತ್ತು ಬಳಕೆದಾರ ಅನುಭವ) +- **JavaScript**: ಯಾಂತ್ರಿಕ ವ್ಯವಸ್ಥೆಗಳು (ಕಾರ್ಯನಿರ್ವಹಣೆ ಮತ್ತು ಪರಸ್ಪರ ಕ್ರಿಯಾಶೀಲತೆ) + +### ಆಧುನಿಕ JavaScript ವಾಸ್ತುಶಿಲ್ಪದ ಮಹತ್ವ + +ನಮ್ಮ ಚಾಟ್ ಅಪ್ಲಿಕೇಶನ್ ವೃತ್ತಿಪರ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಲ್ಲಿ ಕಾಣುವ ಆಧುನಿಕ JavaScript ಮಾದರಿಗಳನ್ನು ಉಪಯೋಗಿಸುತ್ತದೆ. ಈ ಕಲ್ಪನೆಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದರಿಂದ ನೀವು ಅಭಿವೃದ್ಧಿಪಕರಾಗುವಾಗ ಸಹಾಯವಾಗುತ್ತದೆ: + +**ವರ್ಗಾಧಾರಿತ ವಾಸ್ತುಶಿಲ್ಪ**: ನಾವು ನಮ್ಮ ಕೋಡ್ ಅನ್ನು ವರ್ಗಗಳಲ್ಲಿ ಆಯೋಜಿಸೋಣ, ಅವು ಅವುಗಳ ಬ್ಲೂಪ್ರಿಂಟ್‌ಗಳಂತೆ +**Async/Await**: ಸಮಯ ಪಡೆಯುವ ಕಾರ್ಯಗಳನ್ನು ಕೈಗೊಳ್ಳಲು ಆಧುನಿಕ ವಿಧಾನ (API ಕರೆಗಳು ಮುಂತಾದವು) +**ಇವೆಂಟ್ ಚಾಲಿತ ಪ್ರೋಗ್ರಾಮಿಂಗ್**: ನಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಬಳಕೆದಾರರ ಕ್ರಿಯೆಗಳಿಗೆ ಪ್ರತಿಕ್ರಿಯಿಸುತ್ತದೆ (ಕ್ಲಿಕ್, ಕೀಪ್ರೆಸು ಮುಂತಾದವು), ಲೂಪ್‌ನಲ್ಲಿ ಓಡುವುದಿಲ್ಲ +**DOM ಮ್ಯಾನಿಪ್ಯುಲೇಶನ್**: ಬಳಕೆದಾರ ಸಂವಹನ ಮತ್ತು API ಒಳಗೂಡು ಆಧಾರದ ಮೇಲೆ ವೆಬ್ ಪುಟ ವಿಷಯವನ್ನು ಡೈನಾಮಿಕ್ ಆಗಿ ನವೀಕರಿಸುವುದು + +### ಪ್ರಾಜೆಕ್ಟ್ ರಚನೆ ಸಂರಚನೆ + +ಈ ಕಟ್ಟಟವಾದ ರಚನೆಳ್ಳ frontend ಡೈರೆಕ್ಟರಿಯೊಂದನ್ನು ರಚಿಸಿ: + +```text +frontend/ +├── index.html # Main HTML structure +├── app.js # JavaScript functionality +└── styles.css # Visual styling +``` + +**ವಾಸ್ತುಶಿಲ್ಪವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು:** +- ಸಂರಚನೆ (HTML), ನಡತೆ (JavaScript) ಮತ್ತು ಪ್ರದರ್ಶನ (CSS) ನಡುವಿನ ತಾತ್ವಿಕ ವಿಭಜನೆ +- ಸರಳ ಕಡತ ರಚನೆ ಇರುತ್ತದೆ, ಇದು ಸುಲಭವಾಗಿ ನಾವಿಗೇಟ್ ಮತ್ತು ಬದಲಾಯಿಸಬಹುದಾಗಿದೆ +- ವೆಬ್ ಅಭಿವೃದ್ಧಿಯ ಉತ್ತಮಚಾರಿಕೆ ಅನುಸರಣೆಗಳಂತೆ ಆಯೋಜನೆ ಮತ್ತು ನಿರ್ವಹಣೆ + +### HTML ಮೂಲವನ್ನು ನಿರ್ಮಿಸುವುದು: ಪ್ರವೇಶಾಸಾಧ್ಯತೆಗಾಗಿ ಸಾಂದರ್ಭಿಕ ರಚನೆ + +ನಾವು HTML ರಚನೆಯಿಂದ ಪ್ರಾರಂಭಿಸೋಣ. ಆಧುನಿಕ ವೆಬ್ ಅಭಿವೃದ್ಧಿ "ಸಾಂದರ್ಭಿಕ HTML" ಮೇಲೆ ಗಮನ ಹರಿಸುತ್ತದೆ — ಅಂಶಗಳು فقط ಅವರ ರೂಪದ ಕೈಗೆ ತೆಗೆದು ಪಾತ್ರವನ್ನು ವಿವರಿಸುತ್ತವೆ. ಇದು ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಸ್ಕ್ರೀನ್ ರೀಡರ್‌ಗಳು, ಹುಡುಕಾಟೇಂಜಿನ್‌ಗಳು ಮತ್ತು ಇತರೆ ಉಪಕರಣಗಳಿಗೆ ಪ್ರವೇಶಾಸಾಧ್ಯ ಮಾಡಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ. + +**ಸಾಂದರ್ಭಿಕ HTML ಮಹತ್ವವೇನು**: ನಿಮ್ಮ ಚಾಟ್ ಆ್ಯಪ್ ಅನ್ನು ಯಾರಿಗಾದರೂ ಫೋನಿನಲ್ಲಿ ವಿವರಿಸುತ್ತಿದ್ದೀರಿ ಎಂದು ಭಾವಿಸಿ. ನೀವು ಹೇಳುತ್ತೀರಾ "ಅಲ್ಲಿ ಶೀರ್ಷಿಕೆ ಮತ್ತು ವಿವರಣೆಯಿರುವ ಹೆಡರ್ ಇದೆ, ಸಂಭಾಷಣೆ ನಡೆಯುವ ಮುಖ್ಯ ಪ್ರದೇಶ ಇದೆ, ಮತ್ತು ಸಂದೇಶಗಳನ್ನು ಟೈಪ್ ಮಾಡುವುದಕ್ಕಾಗಿ ಕೆಳದಲ್ಲಿ ಫಾರ್ಮ್ ಇದೆ." ಸಾಂದರ್ಭಿಕ HTML ಈ ಸಹಜ ವಿವರಣೆಗೆ ಹೊಂದುವ ಅಂಶಗಳನ್ನು ಬಳಸುತ್ತದೆ. + +`index.html` ಅನ್ನು ಈ ಸೂಕ್ಷ್ಮವಾಗಿ ವಿನ್ಯಾಸಗೊಳಿಸಿದ ಗುರುತಿನೊಂದಿಗೆ ರಚಿಸಿ: + +```html + + + + + + AI Chat Assistant + + + +
+
+

AI Chat Assistant

+

Ask me anything!

+
+ +
+ +
+ +
+
+ + +
+
+
+ + + +``` + +**ಪ್ರತಿ HTML ಅಂಶ ಮತ್ತು ಅದರ ಉದ್ದೇಶವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು:** + +#### ಡಾಕ್ಯುಮೆಂಟ್ ರಚನೆ +- **``**: ಬ್ರೌಸರ್‌ಗಿಗೆ ಇದು ಆಧುನಿಕ HTML5 ಎಂದು ತಿಳಿಸುವುದು +- **``**: ಸ್ಕ್ರೀನ್ ರೀಡರ್‌ಗಳಿಗೆ ಮತ್ತು ಭಾಷಾಂತರ ಸಾಧನಗಳಿಗೆ ಪುಟ ಭಾಷೆಯನ್ನು ಸೂಚಿಸುವುದು +- **``**: ಅಂತಾರಾಷ್ಟ್ರೀಯ ಪಠ್ಯಕ್ಕೆ ಸರಿಯಾದ ಅಕ್ಷರ ಸಂಕೋಚನೆಯನ್ನು ಖಚಿತಪಡಿಸುವುದು +- **``**: ಪುಟವನ್ನು ಮೊಬೈಲ್ ಸೂಕ್ತವಾಗಿ ಸ್ಕೇಲ್ ಮತ್ತು ಜೂಮ್‌ವವಿಕೆ ನಿಯಂತ್ರಿಸುವುದು + +#### ಸಾಂದರ್ಭಿಕ ಅಂಶಗಳು +- **`
`**: ಶೀರ್ಷಿಕೆ ಮತ್ತು ವಿವರಣೆಯೊಂದಿಗೆ ಮೇಲ್ಭಾಗವನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಗುರುತಿಸುವುದು +- **`
`**: ಮುಖ್ಯ ವಿಷಯ ಪ್ರದೇಶ (ಸಂಭಾಷಣೆಗಳು ನಡೆಯುವ ಸ್ಥಳ) ಆದರ್ಶಗೊಳಿಸುವುದು +- **`
`**: ಬಳಕೆದಾರ ಇನ್‌ಪುಟ್‌ಗಾಗಿ ಸಾಂದರ್ಭಿಕವಾಗಿ ಸರಿಯಾದ ರೂಪ, ಸರಿಯಾದ ಕೀಬೋರ್ಡ್ ನ್ಯಾವಿಗೇಶನ್ ಒದಗಿಸುವುದು + +#### ಪ್ರವೇಶಾಸಾಧ್ಯತೆ ವಿಜ್ಞಾನಗಳು +- **`role="log"`**: ಸ್ಕ್ರೀನ್ ರೀಡರ್‌ಗಳಿಗೆ ಈ ಪ್ರದೇಶವು ಕಾಲಾನುಗತ ಸಂದೇಶಗಳ ಲಾಗ್ ಎಂದೂ ತಿಳಿಸುವುದು +- **`aria-live="polite"`**: ಸ್ಕ್ರೀನ್ ರೀಡರ್‌ಗಳಿಗೆ ಅಡ್ಡದಾಡದೆ ಹೊಸ ಸಂದೇಶಗಳನ್ನು ಘೋಷಿಸುವುದು +- **`aria-label`**: ಫಾರ್ಮ್ ನಿಯಂತ್ರಣಗಳಿಗೆ ವಿವರಣಾತ್ಮಕ ಲೇಬಲ್ಗಳನ್ನು ಒದಗಿಸುವುದು +- **`required`**: ಬಳಕೆದಾರರು ಸಂದೇಶವನ್ನು ಕಳುಹಿಸುವ ಮೊದಲು ನಮೂದಿಸುವಂತೆ ಬ್ರೌಸರ್ ಮಾನ್ಯತೆ ನೀಡುವುದು + +#### CSS ಮತ್ತು JavaScript ಸಂಯೋಜನೆ +- **`class` ಗುಣಲಕ್ಷಣಗಳು**: CSS ಕ್ಕೆ ಶೈಲಿನ ಹೊತ್ತಿಕೊಡುವುದು (`chat-container`, `input-group` ಮುಂತಾದವು) +- **`id` ಗುಣಲಕ್ಷಣಗಳು**: JavaScript ప్రత్యేక ಅಂಶಗಳನ್ನು ಹುಡುಕಲು ಮತ್ತು ನಿರ್ವಹಿಸಲು +- **ಸ್ಕ್ರಿಪ್ಟ್ ಸ್ಥಾಪನೆ**: HTML ಮೊದಲಿಗೆ ಲೋಡ್ ಆಗುವಂತೆ ನಂತರ JavaScript ಕಡತಗಳು ಲೋಡ್ ಆಗುವಂತೆ ಮಾಡಲಾಗಿದೆ + +**ಈ ರಚನೆ ಯಾಕೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ:** +- **ತಾರ್ಕಿಕ ಕ್ರಮ**: ಹೆಡರ್ → ಮುಖ್ಯ ವಿಷಯ → ಇನ್‌ಪುಟ್ ಫಾರ್ಮ್ ಸಹಜ ಓದುವ ಆದೇಶಕ್ಕೆ ಹೊಂದಿಕೊಳ್ಳುತ್ತದೆ +- **ಕೀಬೋರ್ಡ್ ಪ್ರವೇಶಾಸಾಧ್ಯತೆ**: ಬಳಕೆದಾರರು ಎಲ್ಲಾ ಪರಸ್ಪರಕ್ರಿಯಾಶೀಲ ಅಂಶಗಳ ಮೂಲಕ ಟ್ಯಾಬ್ ಮೂಲಕ ಹೋಗಬಹುದು +- **ಸ್ಕ್ರೀನ್ ರೀಡರ್ ಸ್ನೇಹಿ**: ದೃಷ್ಟಿಬಾಧಿತ ಬಳಕೆದಾರರಿಗೆ ಸ್ಪಷ್ಟ ಸೀಮಾಕ್ಷೇತ್ರ ಮತ್ತು ವಿವರಣೆಗಳು +- **ಮೊಬೈಲ್ ಸೂಕ್ತತೆ**: viewport ಮೆಟಾ ಟ್ಯಾಗ್ ಪ್ರತಿಕ್ರಿಯಾಶೀಲ ವಿನ್ಯಾಸಕ್ಕೆ ಅವಕಾಶ ನೀಡುತ್ತದೆ +- **ಪ್ರಗತಿಶೀಲ ಬಲವರ್ಧನೆ**: CSS ಅಥವಾ JavaScript ಲೋಡ್ ಆಗದಿದ್ದ ಶ್ರೇಣಿಗಲ್ಲದೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ + +### ಪರಸ್ಪರ ಕ್ರಿಯಾಶೀಲ JavaScript ಸೇರ್ಪಡೆ: ಆಧುನಿಕ ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ ಲಾಜಿಕ್ + +Translation for chunk 4 of 'README.md' skipped due to timeout. +- **ಸಂಭಾಷಣೆ ವಿಷಯ** ಆಧರಿಸಿ ಸ್ಮಾರ್ಟ್ ಸಲಹೆಗಳನ್ನು **ನಿರ್ವಹಿಸಿ** +- ಸಾಮಾನ್ಯ ಪ್ರಶ್ನೆಗಳಿಗೆ ತ್ವರಿತ ಪ್ರತಿಕ್ರಿಯೆ ಬಟನ್‌ಗಳನ್ನು **ಸೃಷ್ಟಿಸಿ** + +> 🎯 **ಕಲಿಕೆಯ ಗುರಿ**: ಈ ಬೋನಸ್ ಸವಾಲುಗಳು ನಿಮ್ಮನ್ನು ಆಧುನಿಕ ವೆಬ್ ಅಭಿವೃದ್ಧಿ ಮಾದರಿಗಳನ್ನು ಮತ್ತು ಉತ್ಪಾದನಾ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಲ್ಲಿ ಬಳಸುವ AI ಏಕೀಕರಣ ತಂತ್ರಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಸಹಾಯ ಮಾಡುತ್ತವೆ. + +## ಸಾರಾಂಶ ಮತ್ತು ಮುಂದಿನ ಹೆಜ್ಜೆಗಳು + +ಅಭಿನಂದನೆಗಳು! ನೀವು ಶೂನ್ಯದಿಂದಲೇ ಸಂಪೂರ್ಣ AI ಚಾಲಿತ ಚಾಟ್ ಸಹಾಯಕವನ್ನು ಯಶಸ್ವಿಯಾಗಿ ನಿರ್ಮಿಸಿದ್ದಾರೆ. ಈ ಯೋಜನೆಯು ನಿಮಗೆ ಆಧುನಿಕ ವೆಬ್ ಅಭಿವೃದ್ಧಿ ತಂತ್ರಜ್ಞಾನಗಳು ಮತ್ತು AI ಏಕೀಕರಣದಲ್ಲಿ ಪ್ರಾಯೋಗಿಕ ಅನುಭವವನ್ನು ನೀಡಿದೆ – ಇದು ಇಂದಿನ ತಂತ್ರಜ್ಞಾನ ಕ್ಷೇತ್ರದಲ್ಲಿ ಹೆಚ್ಚುತ್ತಿಹುದಾದ ಕೌಶಲ್ಯಗಳು. + +### ನೀವು ಸಾಧಿಸಿದವು ಏನು + +ಈ ಪಾಠದ ಮೊದಲಿನಿಂದಲೇ ನೀವು ಹಲವಾರು ಪ್ರಮುಖ ತಂತ್ರಜ್ಞಾನಗಳು ಮತ್ತು ಸಂಪ್ರದಾಯಗಳನ್ನು ಪರಿಣಸ್ಕರಿಸಿದ್ದೀರಿ: + +**ಬ್ಯಾಕ್‌ಎಂಡ್ ಅಭಿವೃದ್ಧಿ:** +- AI ಕಾರ್ಯಕ್ಷಮತೆಯಿಗಾಗಿ GitHub Models API ಜೊತೆಗೆ **ಸಂಯೋಜಿಸಲಾಗಿದೆ** +- ಸರಿಯಾದ ದೋಷ ನಿರ್ವಹಣೆಯೊಂದಿಗೆ Flask ಬಳಸಿ RESTful API ಅನ್ನು **ನಿರ್ಮಿಸಿಕೊಂಡಿದೆ** +- ಪರಿಸರ ಚರಗಳ ಮೂಲಕ ಸುರಕ್ಷಿತ ಪ್ರಮಾಣೀಕರಣವನ್ನು **ಅಳವಡಿಸಿದೆ** +- ಮುಂಭಾಗ ಮತ್ತು ಪಶ್ಚಾತ್ ಭಾಗದ ನಡುವೆ ಕ್ರಾಸ್-ಓರಿಜಿನ್ ವಿನಂತಿಗಳಿಗೆ CORS ಅನ್ನು **ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾಗಿದೆ** + +**ಮುಂಭಾಗ ಅಭಿವೃದ್ಧಿ:** +- ಅರ್ಥಪೂರ್ಣ HTML ಬಳಸಿ ಪ್ರತಿಕ್ರಿಯಾಶೀಲ ಚಾಟ್ ಇಂಟರ್‌ಫೇಸ್ ಅನ್ನು **ರಚಿಸಲಾಗಿದೆ** +- async/await ಮತ್ತು ವರ್ಗ ಆಧಾರಿತ ರಚನೆಯೊಂದಿಗೆ ಆಧುನಿಕ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು **ಅಳವಡಿಸಲಾಗಿದೆ** +- CSS Grid, Flexbox, ಮತ್ತು ಅನಿಮೇಶನ್‌ಗಳೊಂದಿಗೆ ಆಕರ್ಷಕ ಬಳಕೆದಾರ ಇಂಟರ್‌ಫೇಸ್ ಅನ್ನು **ರೂ ಆದರೆ ಮಾಡಿ** +- ಪ್ರವೇಶಾಯಕತೆ ಲಕ್ಷಣಗಳು ಮತ್ತು ಪ್ರತಿಕ್ರಿಯಾಶೀಲ ವಿನ್ಯಾಸ ತत्त्वಗಳನ್ನು **ಸೇರಿಸಲಾಗಿದೆ** + +**ಸಂಪೂರ್ಣ-ಸ್ಟಾಕ್ ಏಕೀಕರಣ:** +- HTTP API ಕರೆಗಳ ಮೂಲಕ ಮುಂಭಾಗ ಮತ್ತು ಪಶ್ಚಾತ್ ಭಾಗಗಳನ್ನು **ಸಂಪರ್ಕಿಸಲಾಗಿದೆ** +- ನೈಜ-ಕಾಲ ಬಳಕೆದಾರ ಸಂವಹನ ಮತ್ತು ಅಸಿಂಕ್ರೋನಸ್ ದತ್ತಾಂಶ ಹರಿವನ್ನು **ನಿಭಾಯಿಸಲಾಗಿದೆ** +- ಅನ್ವಯಿಕೆಯಲ್ಲಿ ದೋಷ ನಿರ್ವಹಣೆ ಮತ್ತು ಬಳಕೆದಾರ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು **ಅಳವಡಿಸಲಾಗಿದೆ** +- ಬಳಕೆದಾರ ಇನ್‌ಪುಟ್ ನಿಂದ AI ಪ್ರತಿಕ್ರಿಯೆಯವರೆಗಿನ ಸಂಪೂರ್ಣ ಅಪ್ಲಿಕೇಶನ್ ಕಾರ್ಯಪ್ರವಾಹವನ್ನು **ಪರೀಕ್ಷಿಸಲಾಗಿದೆ** + +### ಪ್ರಮುಖ ಕಲಿಕೆಯ ಫಲಿತಾಂಶಗಳು + +```mermaid +mindmap + root((AI ಚಾಟ್ ಆಪ್ ಕೌಶಲ್ಯಗಳು)) + API Integration + Authentication + Error Handling + Async Programming + Web Development + HTML5 Semantics + Modern CSS + ES6+ JavaScript + User Experience + Responsive Design + Accessibility + Real-time Interaction + AI Understanding + Prompt Engineering + Model Parameters + Conversation Flow +``` +ಈ ಯೋಜನೆಯು AI ಚಾಲಿತ ಅಪ್ಲಿಕೇಶನ್ನಗಳನ್ನು ರಚಿಸುವ ಮೂಲತತ್ವಗಳನ್ನು ನಿಮಗೆ ಪರಿಚಯಿಸಿದ್ದು, ಇದು ವೆಬ್ ಅಭಿವೃದ್ಧಿಯ ಭವಿಷ್ಯವನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ. ನೀವು ಈಗ AI ಸಾಮರ್ಥ್ಯಗಳನ್ನು ಪರಂಪರাগত ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗೆ ಏಕೀಕರಿಸುವುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಂಡಿದ್ದು, ಬುದ್ಧಿವಂತ ಮತ್ತು ತ್ವರಿತ ಪ್ರತಿಕ್ರಿಯಿಸುವ ಬಳಕೆದಾರ ಅನುಭವಗಳನ್ನು ಸೃಷ್ಟಿಸುತ್ತೀರಿ. + +### ವೃತ್ತಿಪರ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು + +ಈ ಪಾಠದಲ್ಲಿ ನೀವು ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ ಕೌಶಲ್ಯಗಳು ನೇರವಾಗಿ ಆಧುನಿಕ ಸಾಫ್ಟ್‌ವೇರ್ ಅಭಿವೃದ್ಧಿ ಕಾರ್‍ಯಗಳಲ್ಲಿ ಅನ್ವಯವಾಗುತ್ತವೆ: + +- ಆಧುನಿಕ ಫ್ರೇಮ್ವರ್ಕ್‌ಗಳು ಮತ್ತು APIಗಳೊಂದಿಗೆ **ಸಂಪೂರ್ಣ-ಸ್ಟಾಕ್ ವೆಬ್ ಅಭಿವೃದ್ಧಿ** +- ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಮತ್ತು ಮೊಬೈಲ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಲ್ಲಿ **AI ಏಕೀಕರಣ** +- ಮೈಕ್ರೋಸರ್ವೀಸ್ ವಾಸ್ತುಶಿಲ್ಪಗಳಿಗಾಗಿ **API ವಿನ್ಯಾಸ ಮತ್ತು ಅಭಿವೃದ್ಧಿ** +- ಪ್ರವೇಶಾಯಕತೆ ಮತ್ತು ಪ್ರತಿಕ್ರಿಯಾಶೀಲ ವಿನ್ಯಾಸಕ್ಕೆ ಹೊಣೆಗಾರಿಕೆಯೊಂದಿಗೆ **ಬಳಕೆದಾರ ಇಂಟರ್‌ಫೇಸ್ ಅಭಿವೃದ್ಧಿ** +- ಪರಿಸರ ಕಾನ್ಫಿಗರೇಶನ್ ಮತ್ತು ನಿಯೋಜನೆ ಸೇರಿದಂತೆ **DevOps ಅಭ್ಯಾಸಗಳು** + +### ನಿಮ್ಮ AI ಅಭಿವೃದ್ಧಿ ಯಾತ್ರೆಯನ್ನು ಮುಂದುವರಿಸುವುದು + +**ಮುಂದಿನ ಕಲಿಕೆಯ ಹೆಜ್ಜೆಗಳು:** +- ಹೆಚ್ಚು ಆಧುನಿಕ AI ಮಾದರಿ ಮತ್ತು APIಗಳನ್ನು **ಅನುಷ್ಠಾನಗೊಳ್ಳಿ** (GPT-4, Claude, Gemini) +- ಉತ್ತಮ AI ಪ್ರತಿಕ್ರಿಯೆಗಾಗಿ ಪ್ರಾಂಪ್ಟ್ ಇಂಜಿನಿಯರಿಂಗ್ ತಂತ್ರಗಳನ್ನು **ಕಲಿಯಿರಿ** +- ಸಂಭಾಷಣೆಯ ವಿನ್ಯಾಸ ಮತ್ತು ಚಾಟ್‌ಬಾಟ್ ಬಳಕೆದಾರ ಅನುಭವ ತತ್ವಗಳನ್ನು **ಅಧ್ಯಯನ ಮಾಡಿ** +- AI ಭದ್ರತೆ, ನೈತಿಕತೆ ಮತ್ತು ಜವಾಬ್ದಾರಿತ್ವ AI ಅಭಿವೃದ್ಧಿ ಅಭ್ಯಾಸಗಳನ್ನು **ಪರಿಶೀಲಿಸಿ** +- ಸಂಭಾಷಣೆ ನೆನಪಿನ ಮತ್ತು ಪ್ರ_CONTEXT ಅರಿವು ಹೊಂದಿದ್ದ ಹೆಚ್ಚಿನ ಸಂಕೀರ್ಣ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು **ನಿರ್ಮಿಸಿ** + +**ಆಧುನಿಕ ಯೋಜನೆ ಯೋಚನೆಗಳು:** +- ಬಹು ಬಳಕೆದಾರರ ಚಾಟ್ ರೂಮ್‌ಗಳು AI ಮಧ್ಯಸ್ಥಿಕೆಯಿಂದ +- AI ಚಾಲಿತ ಗ್ರಾಹಕ ಸೇವಾ ಚಾಟ್‌ಬಾಟ್‌ಗಳು +- ವೈಯಕ್ತಿಕೃತ ಕಲಿಕೆಯೊಂದಿಗೆ ಶೈಕ್ಷಣಿಕ ಟ್ಯೂಟರ್ ಸಹాయకರು +- ವಿಭಿನ್ನ AI ವೈಯಕ್ತಿಕತೆಗಳೊಂದಿಗೆ ಸೃಜನಾತ್ಮಕ ಬರವು ಸಹೋದ್ಯೋಗಿಗಳು +- ಅಭಿವೃದ್ಧಿಪಡողների ಗಾಗಿ ತಾಂತ್ರಿಕ ದಾಖಲಾತಿ ಸಹಾಯಕರು + +## GitHub Codespaces ಯೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸುವುದು + +ನೀವು ಈ ಯೋಜನೆಯನ್ನು ಕ್ಲೌಡ್ ಅಭಿವೃದ್ಧಿ ಪರಿಸರದಲ್ಲಿ ಪ್ರಯತ್ನಿಸಲು ಇಚ್ಛಿಸುವಿರಾ? GitHub Codespaces ನಿಮ್ಮ ಬ್ರೌಸರ್‌ನಲ್ಲಿ ಸಂಪೂರ್ಣ ಅಭಿವೃದ್ಧಿ ಸಜ್ಜುವಿಕೆಯನ್ನು ಒದಗಿಸುತ್ತದೆ, ಸ್ಥಳೀಯ ಸಜ್ಜುವಿಕೆ ಅಗತ್ಯವಿಲ್ಲದೆ AI ಅಪ್ಲಿಕೇಶನಗಳೊಂದಿಗೆ ಪ್ರಯೋಗಮಾಡಲು ಸರಿಹೊಂದುತ್ತದೆ. + +### ನಿಮ್ಮ ಅಭಿವೃದ್ಧಿ ಪರಿಸರವನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುವುದು + +**ಹೆಜ್ಜೆ 1: ಟೆಂಪ್ಲೇಟ್‌ನಿಂದ ರಚಿಸಿ** +- [Web Dev For Beginners repository](https://github.com/microsoft/Web-Dev-For-Beginners) ಗೆ **ನೌಯಿಗೇಟ್ ಮಾಡಿ** +- ಮೇಲೆ-ಬಲ ದೇವರದಲ್ಲಿ "Use this template" ಕ್ಲಿಕ್ ಮಾಡಿ (ನೀವು GitHub ನಲ್ಲಿ ಲಾಗಿನ್ ಆಗಿರಬೇಕು) + +![Create from template interface showing the green "Use this template" button](../../../translated_images/template.67ad477109d29a2b.kn.png) + +**ಹೆಜ್ಜೆ 2: Codespaces ಪ್ರಾರಂಭಿಸಿ** +- ನಿಮ್ಮ ಹೊಸ ರೆಪೊ ತೆರೆಯಿರಿ +- ಹಸಿರು "Code" ಬಟನ್ ಕ್ಲಿಕ್ ಮಾಡಿ ಮತ್ತು "Codespaces" ಆಯ್ಕೆ ಮಾಡಿ +- ನಿಮ್ಮ ಅಭಿವೃದ್ಧಿ ಪರಿಸರವನ್ನು ಪ್ರಾರಂಭಿಸಲು "Create codespace on main" ಆಯ್ಕೆಮಾಡಿ + +![Create codespace interface with options for launching cloud development environment](../../../translated_images/codespace.bcecbdf5d2747d3d.kn.png) + +**ಹೆಜ್ಜೆ 3: ಪರಿಸರ ಕಾನ್ಫಿಗರೇಶನ್** +ನೀವು Codespace ತೆರೆಯುತ್ತಿದ್ದಂತೆ, ನಿಮಗೆ ಲಭ್ಯವಾಗಲಿದೆ: +- ಮುಂದಿನ ಸಿದ್ಧ ಸ್ಥಿತಿಯಲ್ಲಿ Python, Node.js ಮತ್ತು ಎಲ್ಲಾ ಅಗತ್ಯ ವಿಕಸದ ಸಾಧನಗಳು +- ವೆಬ್ ಅಭಿವೃದ್ಧಿಗೆ VS Code ಇಂಟರ್‌ಫೇಸ್ ಮತ್ತು ಎಕ್ಸ್ಟೆನ್ಶನ್‌ಗಳು +- ಬ್ಯಾಕ್‌ಎಂಡ್ ಮತ್ತು ಮುಂಭಾಗ ಸರ್ವರ್‌ಗಳನ್ನು ಚಲಿಸಲು ಟರ್ಮಿನಲ್ ಪ್ರವೇಶ +- ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಪರೀಕ್ಷಿಸಲು ಪೋರ್ಟ್ ಫಾರ್ವಾರ್ಡಿಂಗ್ + +**Codespaces ನೀಡುವುದು:** +- ಸ್ಥಳೀಯ ಪರಿಸರ ಸಜ್ಜುವಿಕೆ ಮತ್ತು ಕಾನ್ಫಿಗರೇಶನ್ ಸಮಸ್ಯೆಗಳನ್ನು **ನಿರಾಕರಿಸುತ್ತದೆ** +- ವಿವಿಧ ಸಾಧನಗಳಲ್ಲಿ ಸಹಜವಾಗಿಯೇ ಸुसಂಗತ ವಿಕಸನ ಪರಿಸರವನ್ನು **ಪ್ರದಾನಿಸುತ್ತದೆ** +- ವೆಬ್ ಅಭಿವೃದ್ಧಿಗೆ ಪೂರ್ವ-ಕಾನ್ಫಿಗರ್ ಸಾಧನಗಳು ಮತ್ತು ಎಕ್ಸ್ಟೆನ್ಶನ್‌ಗಳನ್ನು **ಒದಗಿಸುತ್ತದೆ** +- GitHub ಜೊತೆ ಸಂಸ್ಕರಣಾ ನಿಯಂತ್ರಣ ಮತ್ತು ಸಹಯೋಗಕ್ಕಾಗಿ ಸೌಮ್ಯ ಏಕೀಕರಣವನ್ನು **ಕೊಡುತ್ತದೆ** + +> 🚀 **ಪ್ರೊ ಟಿಪ್**: Codespaces ಗಳು AI ಅಪ್ಲಿಕೆಶನ್‌ಗಳು ಕಲಿಯಲು ಮತ್ತು ಪ್ರೋಟೋಟೈಪಿಂಗ್ ಮಾಡಲು ಅತ್ಯುತ್ತಮವಾಗಿದೆ ಏಕೆಂದರೆ ಇದು ಎಲ್ಲಾ ಸಂಕೀರ್ಣ ಪರಿಸರ ಸಜ್ಜುವಿಕೆಗಳನ್ನು ತಾನಾಗಿಯೇ ನಿರ್ವಹಿಸುತ್ತದೆ, ನೀವು ನಿರ್ವಹಣೆ ದೋಷ ಪರಿಹಾರ ಬದಲಾಗಿ ನಿರ್ಮಾಣ ಮತ್ತು ಕಲಿಕೆಗೆ ಫೋಕಸ್ ಮಾಡಬಹುದು. + +--- + + +**ತಿರಸ್ಕರಣೆ**: +ಈ ದಸ್ತಾವೇಜು [Co-op Translator](https://github.com/Azure/co-op-translator) ಎಂಬ AI ಭಾಷಾಂತರ ಸೇವೆಯನ್ನು ಬಳಸಿ ಭಾಷಾಂತರಿಸಲಾಗಿದೆ. ನಾವು ಶುದ್ಧತೆಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಭಾಷಾಂತರಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳಿದ್ದುಕೊಳ್ಳಬಹುದು ಎಂಬುದು ದಯವಿಟ್ಟು ಗಮನದಲ್ಲಿರಲಿ. ಮೂಲ ದಸ್ತಾವೇಜಿನ ಸ್ವಭಾವಿಕ ಭಾಷೆಯೇ ಅಧಿಕೃತ ಮೂಲ ಎಂದು ಪರಿಗಣಿಸಬೇಕು. ಅತ್ಯಾವಶ್ಯಕ ಮಾಹಿತಿಗಾಗಿ ವೃತ್ತಿಪರ ಮಾನವ ಭಾಷಾಂತರವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಭಾಷಾಂತರಣದಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ಬಲಪೂರ್ವಕ ಅರ್ಥಹೀನತೆಗಳ ಅಥವಾ ಸ್ವಲ್ಪತಗಳ ಹೇಗಾದರೂ ಜವಾಬ್ದಾರಿಯಲ್ಲವನು ನಾವು ஆகಿರುವುದಿಲ್ಲ. + \ No newline at end of file diff --git a/translations/kn/9-chat-project/solution/README.md b/translations/kn/9-chat-project/solution/README.md new file mode 100644 index 000000000..699404acf --- /dev/null +++ b/translations/kn/9-chat-project/solution/README.md @@ -0,0 +1,20 @@ + +# ಪರಿಹಾರವನ್ನು چلائیں + +1. [backend](./backend/README.md) ಪ್ರಾರಂಭಿಸಿ +1. ಈಗ [frontend](./frontend/README.md) ಪ್ರಾರಂಭಿಸಿ + +--- + + +**ಅಸ್ವೀಕರಣ**: +ಈ ದಾಖಲೆ AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯನ್ನು ಪಡೆಯಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸಮೀಕ್ಷಿತತೆಗಳು ಇರಬಹುದೆಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿನ ಮೂಲ ದಾಖಲೆನ್ನು ಅಧಿಕಾರಿಕ ಮೂಲ ಎಂದು ಪರಿಗಣಿಸಬೇಕು. ಗಂಭೀರ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರಿತುಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ವಿಭ್ರಮಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರು ಅನೇಕರಾಗಿಲ್ಲ. + \ No newline at end of file diff --git a/translations/kn/9-chat-project/solution/backend/README.md b/translations/kn/9-chat-project/solution/backend/README.md new file mode 100644 index 000000000..9221e86d4 --- /dev/null +++ b/translations/kn/9-chat-project/solution/backend/README.md @@ -0,0 +1,19 @@ + +ನಿಮ್ಮ ರನ್‌ಟೈಮ್ ಆಯ್ಕೆಮಾಡಿ + +- [Python](./python/README.md) + +--- + + +**ಅತ್ಯಾವಶ್ಯಕ ಸೂಚನೆ**: +ಈ ದಾಖಲೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಎಂಬ AI ಅನುವಾದ ಸೇವೆಯನ್ನು ಬಳಸಿ ಅನುವದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯತ್ತ ಪ್ರಯತ್ನಿಸಿದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸೂಕ್ತತೆಗಳಿರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ದಾಖಲೆ ಅದರ ಸ್ಥಳೀಯ ಭಾಷೆಯಲ್ಲಿರುವುದೇ ಅಧಿಕೃತ ವನರ್ಕವಾಗಿ ಪರಿಗಣಿಸಲು ಅಂತಿರಬೇಕು. ಬಹುಮುಖ್ಯ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪುಹುಡುಕಾಟಗಳು ಅಥವಾ ಅರ್ಥಪರ್ಯಾಯತಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗಿಲ್ಲ. + \ No newline at end of file diff --git a/translations/kn/9-chat-project/solution/backend/python/README.md b/translations/kn/9-chat-project/solution/backend/python/README.md new file mode 100644 index 000000000..8ea03d330 --- /dev/null +++ b/translations/kn/9-chat-project/solution/backend/python/README.md @@ -0,0 +1,64 @@ + +# ಕೋಡ್ ಚಾಲನೆ + +## ಸಜ್ಜಿನೋಕೊಳ್ಳು + +ವರ್ಚ್ಯುಯಲ್ ಪರಿಸರವನ್ನು ರಚಿಸಿ + +```sh +python -m venv venv +source ./venv/bin/activate +``` + +## ಅವಶ್ಯಕತೆಗಳನ್ನು ಸ್ಥಾಪಿಸಿ + +```sh +pip install openai fastapi uvicorn python-dotenv +``` + +## API ಅನ್ನು ಚಾಲನೆ ಮಾಡಿ + +```sh +# ವಿಧಾನ 1: ನೇರ ಕಾರ್ಯನ್ವಯಿಕೆ +python api.py + +# ವಿಧಾನ 2: ಉವಿಕಾರ್ನ್ ಬಳಸುತ್ತಿರುವದು +uvicorn api:app --host 0.0.0.0 --port 5000 --reload +``` + +## API ಅನ್ನು ಪರೀಕ್ಷಿಸಿ + +ಅಂತರಕ್ರಮಕಾರಿ API ಡಾಕ್ಯುಮೆಂಟೇಶನ್‌ಗೆ ಭೇಟಿ ನೀಡಿ: `http://localhost:5000/docs` + +## ಮುಂಭಾಗವನ್ನು ಚಾಲನೆ ಮಾಡಿ + +ನೀವು ಮುಂಭಾಗ ಫೋಲ್ಡರ್‌ನಲ್ಲಿ ನಿಲ್ಲುವಿಕೆ ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ + +*app.js* ಅನ್ನು ಹುಡುಕಿ, `BASE_URL` ಅನ್ನು ನಿಮ್ಮ ಬ್ಯಾಕ್‌ಎಂಡ್ URL ಗೆ ಬದಲಾಯಿಸಿ + +ಚಿತ್ರಣ ಮಾಡಿ + +``` +npx http-server -p 8000 +``` + +ಚಾಟ್‌ನಲ್ಲಿ ಸಂದೇಶವನ್ನು ಲಿಖಿಸಿ ಪ್ರಯತ್ನಿಸಿ, ನೀವು ಪ್ರತಿಕ್ರಿಯೆ ನೋಡಬೇಕು (ನೀವು ಇದನ್ನು Codespace ನಲ್ಲಿ ಚಾಲನೆ ಮಾಡುತ್ತಿದ್ದೀರಾ ಅಥವಾ ಪ್ರವೇಶ ಟೋಕನ್ ಅನ್ನು ಸಜ್ಜುಗೊಳಿಸಿದ್ದೀರಾ ಎಂಬುದು ನಿರ್ಧಾರವಾಗುತ್ತದೆ). + +## ಪ್ರವೇಶ ಟೋಕನ್ ಅನ್ನು ಸಜ್ಜುಗೊಳಿಸಿ (ನೀವು ಇದನ್ನು Codespace ನಲ್ಲಿ ಚಾಲನೆ ಮಾಡದಿದ್ದರೆ) + +[Set up PAT](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens) ಅನ್ನು ನೋಡಿ + +--- + + +**ಎಚ್ಚರಿಕೆ**: +ಈ ದಾಖಲೆ AI ಭಾಷಾಂತರ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಭಾಷಾಂತರಿಸಲಾಗಿದೆ. ನಾವು ಶುದ್ಧತೆಯನ್ನು ಗುರಿಯಾಗಿಸಿಕೊಂಡಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಭಾಷಾಂತರಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರುವ ಸಾಧ್ಯತೆ ಇದೆ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ದಾಖಲೆವೇ ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಪ್ರಮುಖ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಭಾಷಾಂತರವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಭಾಷಾಂತರವನ್ನು ಬಳಸುವಲ್ಲಿ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವ್ಯಾಖ್ಯಾನಗಳಿಗೆ ನಾವು ಜವಾಬ್ದಾರಿಯಲ್ಲ. + \ No newline at end of file diff --git a/translations/kn/9-chat-project/solution/frontend/README.md b/translations/kn/9-chat-project/solution/frontend/README.md new file mode 100644 index 000000000..5c7341c15 --- /dev/null +++ b/translations/kn/9-chat-project/solution/frontend/README.md @@ -0,0 +1,23 @@ + +# ಕೋಡ್ ಅನ್ನು ಚಲಾಯಿಸಿ + +```sh +npx http-server -p 3000 +``` + +`app.js` ನಲ್ಲಿ `BASE_URL` ಅನ್ನು ಹುಡುಕಿ ಮತ್ತು ಅದನ್ನು ಬ್ಯಾಕೆಂಡ್ URL ಗೆ ಹೊಂದುವಂತೆ ಬದಲಾಯಿಸಿ. + +--- + + +**ಅस्वೀಕರಣ**: +ಈ ದಸ್ತಾವೇಜು AI ಭಾಷಾಂತರ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ಖಚಿತತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ ಸಹ, ಸ್ವಯಂಚಾಲಿತ ಭಾಷಾಂತರದಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿ ಇರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಸತ್ಯಾಪಿತ ಮೂಲ ಎಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ ವೃತ್ತಿಪರ ಮಾನವ ಭಾಷಾಂತರವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಭಾಷಾಂತರ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ಅರ್ಥಮರುಳಿಕೆಗಳು ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗಾಗಿ ನಾವು ಹೊಣೆಗಾರರಲ್ಲ. + \ No newline at end of file diff --git a/translations/kn/AGENTS.md b/translations/kn/AGENTS.md new file mode 100644 index 000000000..87e086519 --- /dev/null +++ b/translations/kn/AGENTS.md @@ -0,0 +1,417 @@ + +# AGENTS.md + +## Project Overview + +ಇದು ಆರಂಭಿಕರಿಗೆ ವೆಬ್ ಅಭಿವೃದ್ಧಿಯ ಮೂಲಭೂತಗಳನ್ನು ಕಲಿಸುವ ಶೈಕ್ಷಣಿಕ ಪಾಠ್ಯಕ್ರಮ ಸಂಗ್ರಹವಾಗಿದೆ. ಈ ಪಾಠ್ಯಕ್ರಮವು ಮೈಕ್ರೋಸಾಫ್ಟ್ ಕ್ಲೌಡ್ ಅಡ್ವೊಕೇಟ್ಸ್ ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ ವ್ಯಾಪಕ 12 ವಾರಗಳ ಕೋರ್ಸ್ ಆಗಿದ್ದು, 24 ಹಸ್ತಪ್ರಯೋಗ ಪಾಠಗಳನ್ನು ಒಳಗೊಂಡಿದೆ, JavaScript, CSS ಮತ್ತು HTML ಅನ್ನು ಒಳಗೊಂಡಿದೆ. + +### Key Components + +- **ಶೈಕ್ಷಣಿಕ ವಿಷಯ**: 24 ರಚನೆಗೊಳಿಸಲಾದ ಪಾಠಗಳು ಯೋಜನೆ ಆಧಾರಿತ ಘಟಕಗಳಾಗಿ ಸರಿಯಲಾಗಿದೆ +- **ಆಚಾರ್ಯ ಯೋಜನೆಗಳು**: Terrarium, ಟೈಪಿಂಗ್ ಆಟ, ಬ್ರೌಸರ್ ವಿಸ್ತರಣೆ, ಅಂತರಿಕ್ಷ ಆಟ, ಬ್ಯಾಂಕಿಂಗ್ ಅಪ್ಲಿಕೇಶನ್, ಕೋಡ್ ಎಡಿಟರ್ ಮತ್ತು AI ಚಾಟ್ ಸಹಾಯಕ +- **ಪರಸ್ಪರ ಕ್ರಿಯಾಶೀಲ ಕ್ವಿಜುಗಳು**: ಪ್ರತಿ 3 ಪ್ರಶ್ನೆಗಳೊಂದಿಗೆ 48 ಕ್ವಿಜುಗಳು (ಪೂರ್ವ/ಪೋಸ್ಟ್ ಪಾಠ ಇವೆಲ್ಯುವೇಶನ್ಗಳು) +- **ಬಹುಭಾಷಾ ಬೆಂಬಲ**: GitHub Actions ಮೂಲಕ 50+ ಭಾಷೆಗಳಿಗಾಗಿ ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳು +- **ತಂತ್ರಜ್ಞಾನಗಳು**: HTML, CSS, JavaScript, Vue.js 3, Vite, Node.js, Express, Python (AI ಯೋಜನೆಗಳಿಗೆ) + +### Architecture + +- ಪಾಠ ಆಧಾರಿತ ರಚನೆಯೊಂದಿಗೆ ಶೈಕ್ಷಣಿಕ ಸಂಗ್ರಹಾಲಯ +- ಪ್ರತಿ ಪಾಠ ಫೋಲ್ಡರ್ README, ಕೋಡ್ ಉದಾಹರಣೆಗಳು ಮತ್ತು ಪರಿಹಾರಗಳನ್ನು ಹೊಂದಿದೆ +- ಸ್ವತಂತ್ರ ಯೋಜನೆಗಳು ಪ್ರತ್ಯೇಕ ಡೈರೆಕ್ಟರಿಗಳಲ್ಲಿ (quiz-app, ವಿವಿಧ ಪಾಠ ಯೋಜನೆಗಳು) +- GitHub Actions ಬಳಸಿ ಅನುವಾದ ವ್ಯವಸ್ಥೆ (co-op-translator) +- ಡಾಕ್ಯುಮೆಂಟೇಶನ್ Docsify ಮೂಲಕ ಪೂರೈಸಲಾಗಿದ್ದು PDF ಆಗಿ ಲಭ್ಯ + +## Setup Commands + +ಈ ಸಂಗ್ರಹಾಲಯವು ಮುಖ್ಯವಾಗಿ ಶೈಕ್ಷಣಿಕ ವಿಷಯವನ್ನು ಬಳಕೆಗಾರರಿಗೆ ಒದಗಿಸಲು ಇದೆ. ವಿಶೇಷ ಯೋಜನೆಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು: + +### Main Repository Setup + +```bash +git clone https://github.com/microsoft/Web-Dev-For-Beginners.git +cd Web-Dev-For-Beginners +``` + +### Quiz App Setup (Vue 3 + Vite) + +```bash +cd quiz-app +npm install +npm run dev # ಅಭಿವೃದ್ಧಿ ಸರ್ವರ್ ಪ್ರಾರಂಭಿಸಿ +npm run build # ಉತ್ಪಾದನಕ್ಕಾಗಿ ನಿರ್ಮಿಸಿ +npm run lint # ESLint ಅನ್ನು ನಡಿಸಿ +``` + +### Bank Project API (Node.js + Express) + +```bash +cd 7-bank-project/api +npm install +npm start # API ಸರ್ವರ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಿ +npm run lint # ESLint ಅನ್ನು ನಡೆಸಿ +npm run format # Prettier ನೊಂದಿಗೆ ವಿಂಗಡಿಸಿ +``` + +### Browser Extension Projects + +```bash +cd 5-browser-extension/solution +npm install +# ಬ್ರೌಸರ್-ನಿರ್ದಿಷ್ಟ ವಿಸ್ತರಣೆ ಲೋಡ್ ಮಾರ್ಗದರ್ಶನವನ್ನು ಅನುಸರಿಸಿ +``` + +### Space Game Projects + +```bash +cd 6-space-game/solution +npm install +# ವೆಬ್ ಬ್ರೌಸರ್‌ನಲ್ಲಿ index.html ತೆರೆಯಿರಿ ಅಥವಾ Live Server ಬಳಸಿರಿ +``` + +### Chat Project (Python Backend) + +```bash +cd 9-chat-project/solution/backend/python +pip install openai +# GITHUB_TOKEN ಪರಿಸರ ಚರವನ್ನು ಹೊಂದಿಸಿ +python api.py +``` + +## Development Workflow + +### For Content Contributors + +1. **ನಿಮ್ಮ GitHub ಖಾತೆಗೆ** ಸಂಗ್ರಹಾಲಯವನ್ನು ಫೋರ್ಕ್ ಮಾಡಿ +2. **ನಿಮ್ಮ ಫೋರ್ಕ್** ಅನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಕ್ಲೋನ್ ಮಾಡಿ +3. **ನಿಮ್ಮ ಬದಲಾವಣೆಗಳಿಗೆ ಹೊಸ ಬ್ರಾಂಚ್** ರಚಿಸಿ +4. ಪಾಠ ವಿಷಯ ಅಥವಾ ಕೋಡ್ ಉದಾಹರಣೆಗಳಲ್ಲಿ ಬದಲಾವಣೆ ಮಾಡಿ +5. ಸಂಬಂಧಿಸಿದ ಯೋಜನೆ ಡೈರೆಕ್ಟರಿಗಳಲ್ಲಿ ಯಾವುದೇ ಕೋಡ್ ಬದಲಾವಣೆಗಳನ್ನು ಪರೀಕ್ಷಿಸಿ +6. ಕೊಡುಗೆ ಮಾರ್ಗಸೂಚಿಗಳನ್ನು ಅನುಸರಿಸಿ ಪುಲ್ ವಿನಂತಿಗಳನ್ನು ಸಲ್ಲಿಸಿ + +### For Learners + +1. ಸಂಗ್ರಹಾಲಯವನ್ನು ಫೋರ್ಕ್ ಅಥವಾ ಕ್ಲೋನ್ ಮಾಡಿ +2. ಪಾಠ ಡೈರೆಕ್ಟರಿಗಳಿಗೆ ಕ್ರಮವಾಗಿ ನವಿಗೇಟ್ ಮಾಡಿ +3. ಪ್ರತಿ ಪಾಠಕ್ಕೆ README ಕಡತಗಳನ್ನು ಓದಿ +4. ಪೂರ್ವ ಪಾಠ ಕ್ವಿಜುಗಳನ್ನು https://ff-quizzes.netlify.app/web/ ನಲ್ಲಿ ಪೂರ್ಣಗೊಳಿಸಿ +5. ಪಾಠ ಫೋಲ್ಡರ್‌ಗಳಲ್ಲಿ ಕೋಡ್ ಉದಾಹರಣೆಗಳ ಮೂಲಕ ಕೆಲಸ ಮಾಡಿ +6. ಅಸೈನ್‌ಮೆಂಟುಗಳು ಮತ್ತು ಪೋಟೆಗಳು ಪೂರ್ಣಗೊಳಿಸಿ +7. ಪೋಸ್ಟ್-ಪಾಠ ಕ್ವಿಜುಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಿ + +### Live Development + +- **ಡಾಕ್ಯುಮೆಂಟೇಶನ್**: ರೂಟ್‌ನಲ್ಲಿ `docsify serve` ಅನ್ನು ಓಡಿಸಿ (ಪೋರ್ಟ್ 3000) +- **Quiz App**: `quiz-app` ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ `npm run dev` ಅನ್ನು ಓಡಿಸಿ +- **Projects**: HTML ಯೋಜನೆಗಳಿಗೆ VS Code Live Server ವಿಸ್ತರಣೆ ಬಳಸಿ +- **API Projects**: ಅನುರೂಪ API ಡೈರೆಕ್ಟರಿಗಳಲ್ಲಿ `npm start` ಅನ್ನು ಓಡಿಸಿ + +## Testing Instructions + +### Quiz App Testing + +```bash +cd quiz-app +npm run lint # ಕೋಡ್ ಶೈಲಿ ಸಮಸ್ಯೆಗಳಿಗಾಗಿ ಪರಿಶೀಲಿಸಿ +npm run build # ನಿರ್ಮಾಣ ಯಶಸ್ವಿಯಾಗಿರುವುದನ್ನು ಪರಿಶೀಲಿಸಿ +``` + +### Bank API Testing + +```bash +cd 7-bank-project/api +npm run lint # ಕೋಡ್ ಶೈಲಿ ಸಮಸ್ಯೆಗಳ ಪರಿಶೀಲನೆ ಮಾಡಿ +node server.js # ಸರ್ವರ್ ದೋಷವಿಲ್ಲದೆ ಶುರುವಾಗುತ್ತದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಿ +``` + +### General Testing Approach + +- ಇದು ಆಪ್ಟೋಮೇಶನ್ ಪರೀಕ್ಷೆಗಳಿಲ್ಲದ ಶೈಕ್ಷಣಿಕ ಸಂಗ್ರಹ +- ಕೈಯಿಂದ ಪರೀಕ್ಷೆ ನೋಡುವದು: + - ಕೋಡ್ ಉದಾಹರಣೆಗಳು ದೋಷರಹಿತವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ + - ಡಾಕ್ಯುಮೆಂಟೇಶನಿನಲ್ಲಿನ ಲಿಂಕ್‌ಗಳು ಸರಿಯಾಗಿ ಕೆಲಸ ಮಾಡುತ್ತವೆ + - ಯೋಜನೆ ನಿರ್ಮಾಣ ಯಶಸ್ವಿಯಾಗುತ್ತವೆ + - ಉದಾಹರಣೆಗಳು ಉತ್ತಮ ಅಭ್ಯಾಸಗಳನ್ನು ಅನುಸರಿಸುತ್ತವೆ + +### Pre-submission Checks + +- package.json ಇರುವ ಡೈರೆಕ್ಟರಿಗಳಲ್ಲಿ `npm run lint` ಓಡಿಸಿ +- ಮಾರ್ಕ್‌ಡೌನ್ಗಳ ಲಿಂಕ್‌ಗಳನ್ನು ಮಾನ್ಯವೋ ಎಂದು ಪರಿಶೀಲಿಸಿ +- ಬ್ರೌಸರ್ ಅಥವಾ Node.js ನಲ್ಲಿ ಕೋಡ್ ಉದಾಹರಣೆಗಳನ್ನು ಪರೀಕ್ಷಿಸಿ +- ಅನುವಾದಗಳು ಸರಿಯಾದ ರಚನೆಯನ್ನು ಹೊಂದಿರುವುದನ್ನು ಪರಿಶೀಲಿಸಿ + +## Code Style Guidelines + +### JavaScript + +- ಆಧುನಿಕ ES6+语句 ಬಳಸಿ +- ಪ್ರಾಜೆಕ್ಟ್‌ಗಳಲ್ಲಿ ನೀಡಲಾದ ಮಾನದಂಡ ESLint ರೂಲ್ಸ್ ಅನುಸರಿಸಿ +- ಹೆಚ್ಚು ಸ್ಪಷ್ಟರಾಗಿ ವ್ಯಾರೀಬಲ್ಗಳು ಮತ್ತು ಫಂಕ್ಷನ್‌ಗಳು ಹೆಸರಿಸು +- ಕಲಿಕೆಗಾಗಿ ಟಿಪ್ಪಣಿಗಳನ್ನು ಸೇರಿಸಿ +- ಸ್ಥಾಪಿತ ಆಗಿದ್ದಲ್ಲಿ Prettier ಬಳಸಿ ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಿ + +### HTML/CSS + +- ಸ್ಮ್ಯಾನ್ಟಿಕ್ HTML5 ಘಟಕಗಳು +- ಪ್ರತಿಕ್ರಿಯಾಶೀಲ ವಿನ್ಯಾಸ ತತ್ವಗಳು +- ಸ್ಪಷ್ಟ ಕ್ಲಾಸ್ ಹೆಸರಿನ ನಿಯಮಗಳು +- CSS ತಂತ್ರಗಳನ್ನು ವಿವರಿಸುವ ಟಿಪ್ಪಣಿಗಳು + +### Python + +- PEP 8 ಶೈಲಿ ಮಾರ್ಗಸೂಚಿಗಳು +- ಸ್ಪಷ್ಟ, ಶೈಕ್ಷಣಿಕ ಕೋಡ್ ಉದಾಹರಣೆಗಳು +- ಕಲಿಕೆಗೆ ಸಹಾಯಕವಾಗಿದ್ದಲ್ಲಿ ಪ್ರಕಾರ ಸೂಚನೆಗಳು + +### Markdown Documentation + +- ಸ್ಪಷ್ಟ ಶೀರ್ಷಿಕೆ ಹೈರಾರ್ಕಿ +- ಭಾಷಾ ಸ್ಪೆಸಿಫಿಕೇಶನ್‌ನೊಂದಿಗೆ ಕೋಡ್ ಬ್ಲಾಕ್‌ಗಳು +- ಹೆಚ್ಚುವರಿ ಸಂಪನ್ಮೂಲಗಳ ಲಿಂಕ್‌ಗಳು +- `images/` ಡೈರೆಕ್ಟರಿಗಳಲ್ಲಿ ಸ್ಕ್ರೀನ್‌ಶಾಟ್ ಮತ್ತು ಚಿತ್ರಗಳು +- ಚಿತ್ರಗಳಿಗೆ ಪ್ರವೇಶಾಸುಲಭ್ಯತೆಗಾಗಿ Alt ಪಠ್ಯ + +### File Organization + +- ಪಾಠಗಳು ಕ್ರಮಾಂಕಿತ ಮರಗಳಾಗಿ (1-getting-started-lessons, 2-js-basics ಮುಂತಾದವು) +- ಪ್ರತಿ ಯೋಜನೆಗೆ `solution/` ಮತ್ತು ಬಹುಮಾನವಾಗಿ `start/` ಅಥವಾ `your-work/` ಡೈರೆಕ್ಟರಿಗಳು ಇರುತ್ತವೆ +- ಪಾಠ ವಿಶೇಷ `images/` ಫೋಲ್ಡರ್‌ಗಳಲ್ಲಿ ಚಿತ್ರಗಳು ಸಂಗ್ರಹವಾಗಿವೆ +- ಅನುವಾದಗಳು `translations/{language-code}/` ರಚನೆಯಲ್ಲಿ + +## Build and Deployment + +### Quiz App Deployment (Azure Static Web Apps) + +quiz-app ಅನ್ನು Azure Static Web Apps ಎಡಬ್ಲಾಯ್ಮೆಂಟ್‌ಗೆ ಹೊಂದಿಸಲಾಗಿದೆ: + +```bash +cd quiz-app +npm run build # dist/ ಫೋಲ್ಡರ್ ಅನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ +# ಮೆನ್ ಶಾಖೆಗೆ ಪುಷ್ ಮಾಡಿದಾಗ GitHub Actions ವರ್ಕ್‌ಫ್ಲೋ ಮೂಲಕ ನಿಯೋಜಿಸಲಾಗುತ್ತದೆ +``` + +Azure Static Web Apps ರಚನೆ: +- **ಅಪ್ ಸ್ಥಳ**: `/quiz-app` +- **ଆಟ୍‌ପುಟ್ ಸ್ಥಳ**: `dist` +- **ಕಾರ್ಯಪ್ರವಾಹ**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml` + +### Documentation PDF Generation + +```bash +npm install # docsify-to-pdf ಅನ್ನು ಸ್ಥಾಪಿಸಿ +npm run convert # ಡಾಕ್ಸ್‌ನಿಂದ PDF ಸೃಷ್ಟಿಸಿ +``` + +### Docsify Documentation + +```bash +npm install -g docsify-cli # Docsify ಅನ್ನು ಜಾಗತಿಕವಾಗಿ ಸ್ಥಾಪಿಸಿ +docsify serve # localhost:3000 ನಲ್ಲಿ ಸರ್ವ್ ಮಾಡಿ +``` + +### Project-specific Builds + +ಪ್ರತಿ ಯೋಜನೆ ಡೈರೆಕ್ಟರಿಗೆ ಸ್ವಂತ ನಿರ್ಮಾಣ ಪ್ರಕ್ರಿಯೆ ಇರಬಹುದು: +- Vue ಯೋಜನೆಗಳು: `npm run build` ಬಿಡುಗಡೆಪೂರ್ವ ಬ್ಯುಂಡಲ್‌ಗಳನ್ನು ನಿರ್ಮಿಸುತ್ತದೆ +- ಸ್ಥಿರ ಯೋಜನೆಗಳು: ಯಾವುದೇ ನಿರ್ಮಾಣ ಹಂತವಿಲ್ಲದೆ ಕಡತಗಳನ್ನು ನೇರವಾಗಿ ಸೇವ್ ಮಾಡಲಾಗುತ್ತದೆ + +## Pull Request Guidelines + +### Title Format + +ಬದಲಾವಣೆ ಪ್ರದೇಶವನ್ನು ಸೂಚಿಸುವ ಸ್ಪಷ್ಟ, ವಿವರವಾದ ಶೀರ್ಷಿಕೆ ಬಳಸಿ: +- `[Quiz-app] ಪಾಠ X ಗೆ ಹೊಸ ಕ್ವಿಜ್ ಸೇರ್ಪಡೆ` +- `[Lesson-3] terrarium ಯೋಜನೆಯಲ್ಲಿ ಟೈಪೋ ಸರಿಪಡಿಸಿ` +- `[Translation] ಪಾಠ 5ಗಾಗಿ ಸ್ಪಾನಿಷ್ ಅನುವಾದ ಸೇರ್ಪಡೆ` +- `[Docs] ಸೆಟ್‌ಅಪ್ ಸೂಚನೆಗಳನ್ನು ನವೀಕರಿಸಿ` + +### Required Checks + +ಪಿಆರ್ ಸಲ್ಲಿಸುವ ಮೊದಲು: + +1. **ಕೋಡ್ ಗುಣಮಟ್ಟ**: + - ಪ್ರಸ್ತುತ ಪ್ರಾಜೆಕ್ಟ್ ಡೈರೆಕ್ಟರಿಗಳಲ್ಲಿ `npm run lint` ಓಡಿಸಿ + - ಲಿಂಟ್ ದೋಷಗಳು ಮತ್ತು ಎಚ್ಚರಿಕೆಗಳನ್ನು ಸರಿಪಡಿಸಿ + +2. **ನಿರ್ಮಾಣ ಪರಿಶೀಲನೆ**: + - ಅಗತ್ಯವಿದ್ದರೆ `npm run build` ಓಡಿಸಿ + - ಯಾವುದೇ ನಿರ್ಮಾಣ ದೋಷಗಳಿಲ್ಲದಿರುವುದನ್ನು ಖಚಿತಪಡಿಸಿ + +3. **ಲಿಂಕ್ ಮಾನ್ಯತೆ**: + - ಎಲ್ಲಾ ಮಾರ್ಕ್‌ಡೌನ್ ಲಿಂಕ್‌ಗಳನ್ನು ಪರೀಕ್ಷಿಸಿ + - ಚಿತ್ರ ಉಲ್ಲೇಖಗಳು ಸರಿಯಾದವೋ ಎಂದು ಪರಿಶೀಲಿಸಿ + +4. **ವಿಷಯ ಪರಿಶೀಲನೆ**: + - ವ್ಯಾಕರಣ ಮತ್ತು ಬರಹದ ಸರಿಯಾಗಿ ಹೊಂದಿರುವುದನ್ನು ಪರಿಶೀಲಿಸಿ + - ಕೋಡ್ ಉದಾಹರಣೆಗಳು ಸರಿಯಾಗಿದ್ದು ಶೈಕ್ಷಣಿಕವಾಗಿರಲಿ + - ಅನುವಾದಗಳು ಮೂಲ ಅರ್ಥವನ್ನು ಕಾಯ್ದುಕೊಳ್ಳುತ್ತವೆ ಎಂದು ಖಚಿತಪಡಿಸಿ + +### Contribution Requirements + +- ಮೈಕ್ರೋಸಾಫ್ಟ್ CLA ಒಪ್ಪಿಕೊಳ್ಳಿ (ಮೊದಲ PR ನಲ್ಲಿ ಸ್ವಯಂಚಾಲಿತ ಪರಿಶೀಲನೆ) +- [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/) ಅನುಸರಿಸಿ +- ವಿವರವಾದ ಮಾರ್ಗಸೂಚಿಗಳನ್ನು [CONTRIBUTING.md](./CONTRIBUTING.md) ನಲ್ಲಿ ಪಡಿ +- ಪ್ರಸ್ತಾವನೆ ವಿವರಣೆಯಲ್ಲಿ ಸಮಸ್ಯೆ ಸಂಖ್ಯೆಗಳ ಉಲ್ಲೇಖ ಮಾಡಿ (ಅದಕ್ಕಾಗಿಯೇ ಇದ್ದರೆ) + +### Review Process + +- PR ಗಳು ನಿರ್ವಹಕರು ಮತ್ತು ಸಮುದಾಯದವರು ಸಹ ಪರಿಶೀಲನೆ ಮಾಡುತ್ತಾರೆ +- ಶೈಕ್ಷಣಿಕ ಸ್ಪಷ್ಟತೆ ಪ್ರಧಾನ್ಯ +- ಕೋಡ್ ಉದಾಹರಣೆಗಳು ಇತ್ತೀಚಿನ ಉತ್ತಮ ಅಭ್ಯಾಸಗಳನ್ನು ಅನುಸರಿಸಬೇಕು +- ಅನುವಾದಗಳನ್ನು ಶುದ್ಧತೆ ಮತ್ತು ಸಾಂಸ್ಕೃತಿಕmerksamkeitಗಾಗಿ ಪರಿಶೀಲನೆ ಮಾಡಲಾಗುತ್ತದೆ + +## Translation System + +### Automated Translation + +- GitHub Actions ನೊಂದಿಗೆ co-op-translator ಕಾರ್ಯ ಪ್ರಾಬಲ್ಯ +- 50+ ಭಾಷೆಗಳಿಗೂ ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದ +- ಮೂಲ ಕಡತಗಳು ಮುಖ್ಯ ಡೈರೆಕ್ಟರಿಗಳಲ್ಲಿ +- ಅನುವಾದಿತ ಕಡತಗಳು `translations/{language-code}/` ಡೈರೆಕ್ಟರಿಗಳಲ್ಲಿ + +### Adding Manual Translation Improvements + +1. `translations/{language-code}/` ನಲ್ಲಿ ಕಡತವನ್ನು ಕಂಡುಹಿಡಿ +2. ರಚನೆಯನ್ನು ಕಾಯ್ದುಕೊಳ್ಳುತ್ತಾ ಸುಧಾರಣೆ ಮಾಡಿ +3. ಕೋಡ್ ಉದಾಹರಣೆಗಳು ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ ಎಂದು ಖಚಿತಪಡಿಸಿ +4. ಸ್ಥಳೀಯ ಕ್ವಿಜ್ ವಿಷಯವನ್ನು ಪರೀಕ್ಷಿಸಿ + +### Translation Metadata + +ಅನುವಾದಿತ ಕಡತಗಳು ಮೆಟಾಡೇಟಾ ಶೀರ್ಷಿಕೆ ಹೊಂದಿರುತ್ತವೆ: +```markdown + +``` + +## Debugging and Troubleshooting + +### Common Issues + +**Quiz app ಪ್ರಾರಂಭವಾಗುತ್ತಿಲ್ಲ**: +- Node.js ಆವೃತ್ತಿ (v14+ ಶಿಫಾರಸು) +- `node_modules` ಮತ್ತು `package-lock.json` ಅಳಿಸಿ, ಮತ್ತೆ `npm install` ಚಾಲನೆ ಮಾಡಿ +- ಪೋರ್ಟ್ ಸಂಗ್ರಹಣೆ (ಡೀಫಾಲ್್ಟ್: Vite ಪೋರ್ಟ್ 5173) ಪರಿಶೀಲಿಸಿ + +**API ಸರ್ವರ್ ಪ್ರಾರಂಭವಾಗುತ್ತಿಲ್ಲ**: +- Node.js ಆವೃತ್ತಿ ಕನಿಷ್ಠ (node >=10) ಪರಿಶೀಲಿಸಿ +- ಪೋರ್ಟ್ ಬಳಕೆಯಲ್ಲಿದೆಯೇ ನೋಡಿ +- ಎಲ್ಲ ಅವಲಂಬನೆಗಳನ್ನು `npm install` ಮೂಲಕ ಇನ್ಸ್‌ಟಾಲ್ ಮಾಡಿ + +**ಬ್ರೌಸರ್ ವಿಸ್ತರಣೆ ಲೋಡ್ ಆಗುತ್ತಿಲ್ಲ**: +- manifest.json ಸರಿಯಾಗಿ ರಚಿಸಲಾಗಿದೆ ಎಂದು ಪರಿಶೀಲಿಸಿ +- ಬ್ರೌಸರ್ ಕಾನ್ಸೋಲ್ ದೋಷಗಳನ್ನು ಪರಿಶೀಲಿಸಿ +- ಬ್ರೌಸರ್ ವಿಶೇಷ ವಿಸ್ತರಣೆ ಸ್ಥಾಪನೆ ಸೂಚನೆಗಳನ್ನು ಅನುಸರಿಸಿ + +**Python ಚಾಟ್ ಯೋಜನೆ ಸಮಸ್ಯೆಗಳು**: +- OpenAI ಪ್ಯಾಕೇಜ್ ಇನ್‌ಸ್ಟಾಲ್ ಆಗಿದೆಯೇ ನೋಡಿ: `pip install openai` +- GITHUB_TOKEN ಪರಿಸರ ವ್ಯತ್ಯಯ ಸರಿಯಾದಂತೆ ಹೊಂದಿದೆ ಎಂದು ದೃಢಪಡಿಸಿ +- GitHub ಮಾದರಿಗಳ ಪ್ರವೇಶ ಅನುವುಗಳನ್ನು ಪರಿಶೀಲಿಸಿ + +**Docsify ಡಾಕ್ಯುಮೆಂಟ್ ಪೂರೈಸುತ್ತಿಲ್ಲ**: +- docsify-cli ಅನ್ನು ಗ್ಲೋಬಲ್ ಆಗಿ ಇನ್ಸ್‌ಟಾಲ್ ಮಾಡಿ: `npm install -g docsify-cli` +- ಸಂಗ್ರಹಾಲಯದ ರೂಟ್ ಡೈರೆಕ್ಟರಿಯಿಂದ ಚಾಲನೆ ಮಾಡಿ +- `docs/_sidebar.md` ಉಳಿದಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಿ + +### Development Environment Tips + +- VS Code ನೊಂದಿಗೆ HTML ಯೋಜನೆಗಳಿಗೆ Live Server ವಿಸ್ತರಣೆ ಬಳಸಿ +- ಏರ ESLint ಮತ್ತು Prettier ವಿಸ್ತರಣೆಗಳನ್ನು ಸಿದ್ದಪಡಿಸಿ +- ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಡಿಬಗ್ಗಿಂಗ್‌ಗೆ ಬ್ರೌಸರ್ ಡೆವ್‌ಟೂಲ್‌ಗಳನ್ನು ಬಳಸಿ +- Vue ಯೋಜನೆಗಳಿಗೆ Vue DevTools ಬ್ರೌಸರ್ ವಿಸ್ತರಣೆ ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿ + +### Performance Considerations + +- ಅನುವಾದಿತ ಕಡತಗಳ ಸಂಖ್ಯೆ ದೊಡ್ಡದು (50+ ಭಾಷೆಗಳು) ಹೀಗಾಗಿ ಸಂಪೂರ್ಣ ಕ್ಲೋನ್ ಗಾತ್ರ ದೊಡ್ಡದು +- ವಿಷಯದ ಮೇಲೆಯೇ ಕೆಲಸ ಮಾಡಿದರೆ ಶಾಲೋ ಕ್ಲೋನ್ ಬಳಸಿ: `git clone --depth 1` +- ಇಂಗ್ಲಿಷ್ ವಿಷಯದ ಮೇಲೆ ಕೆಲಸ ಮಾಡುವಾಗ ಅನುವಾದಗಳನ್ನು ಹುಡುಕಾಟದಿಂದ ಹೊರತುಪಡಿಸಿ +- ಮೊದಲ ಬಾರಿಗೆ npm install, Vite ನಿರ್ಮಾಣ ತಡವಾಗಬಹುದು + +## Security Considerations + +### Environment Variables + +- API ಕೀಗಳು ಎಂದಿಗೂ ಸಂಗ್ರಹಾಲಯಕ್ಕೆ ಕಮಿಟ್ ಮಾಡಬೇಡಿ +- `.env` ಕಡತಗಳ ಬಳಕೆ (ಇವುಗಳು `.gitignore`ನಲ್ಲಿ ಸೇರಿವೆ) +- ಅಗತ್ಯ ಪರಿಸರ ವ್ಯತ್ಯಾಯಗಳನ್ನು ಪ್ರಾಜೆಕ್ಟ್ README ಗಳಲ್ಲಿ ದಾಖಲೆ ಮಾಡಿರಿ + +### Python Projects + +- ವರ್ಚುವಲ್ ಪರಿಸರಗಳನ್ನು ಬಳಸಿ: `python -m venv venv` +- ಅವಲಂಬನೆಗಳನ್ನು ನವೀಕರಿಸಿ +- GitHub ಟೋಕನ್‌ಗಳಿಗೆ ಕನಿಷ್ಠ ಅಗತ್ಯ ಅನುಮತಿಗಳು ಇರಲಿ + +### GitHub Models Access + +- GitHub ಮಾದರಿಗಳಿಗೆ ವೈಯಕ್ತಿಕ ಪ್ರವೇಶ ಟೋಕನ್‌ಗಳು (PAT) ಅಗತ್ಯ +- ಟೋಕನ್‌ಗಳನ್ನು ಪರಿಸರ ವ್ಯತ್ಯಾಯಗಳಾಗಿ ಸಂರಕ್ಷಿಸಿ +- ಟೋಕನ್‌ಗಳು ಅಥವಾ ಪ್ರಮಾಣಪತ್ರಗಳನ್ನು ಎಲ್ಲವೇಳೆ ಕಮಿಟ್ ಮಾಡಬೇಡಿ + +## Additional Notes + +### Target Audience + +- ವೆಬ್ ಅಭಿವೃದ್ಧಿಗೆ ಸಂಪೂರ್ಣ ಆರಂಭಿಕರು +- ವಿದ್ಯಾರ್ಥಿಗಳು ಮತ್ತು ಸ್ವಯಂ ಅಧ್ಯಯನಕಾರರು +- ತರಗತಿಗಳಲ್ಲಿ ಪಾಠ್ಯಕ್ರಮ ಬಳ 사용하는 ಶಿಕ್ಷಕರು +- ಪ್ರವೇಶಮಾರ್ಗ ಮತ್ತು ಹಂತ ಹಂತದ ಕೌಶಲ್ಯವನ್ನು ಗಮನದಲ್ಲಿಡುತ್ತಿದ್ದ ವಿಷಯ + +### Educational Philosophy + +- ಯೋಜನೆ ಆಧಾರಿತ ಕಲಿಕೆ ವಿಧಾನ +- ಹಗುರಾದ ಜ್ಞಾನ ಪರೀಕ್ಷೆಗಳು (ಕ್ವಿಜುಗಳು) +- ಕಾರ್ಯಾಚರಣೆಯಾದ ಕೋಡಿಂಗ್ ಅಭ್ಯಾಸಗಳು +- ನೈಜ ಜಗತ್ತಿನ ಅನ್ವಯ ಉದಾಹರಣೆಗಳು +- ಫ್ರೆಮ್ವರ್ಕ್‌ಗಳ ಮುಂಚಿತವಾಗಿ ಮೂಲಭೂತ ವಿಷಯಗಳ ಮೇಲೆ ಗಮನ + +### Repository Maintenance + +- ಕಲಿಕಾರರು ಮತ್ತು ಕೊಡುಗೆದಾರರ ಸಕ್ರಿಯ ಸಮುದಾಯ +- ಅವಲಂಬನೆಗಳು ಮತ್ತು ವಿಷಯ ಸಾಮಗ್ರಿಗಳ ನಿಯಮಿತ ನವೀಕರಣ +- ನಿರ್ವಹಕರಿಂದ ಸಮಸ್ಯೆಗಳು ಮತ್ತು ಚರ್ಚೆಗಳು ಮೇಲ್ವಿಚಾರಣೆ +- GitHub Actions ಮೂಲಕ ಅನುವಾದ ನವೀಕರಣ ಸ್ವಯಂಚಾಲಿತ + +### Related Resources + +- [Microsoft Learn modules](https://docs.microsoft.com/learn/) +- [Student Hub resources](https://docs.microsoft.com/learn/student-hub/) +- [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) ಶಿಫಾರಸು ಶೈಕ್ಷಣಿಕರಿಗೆ +- ಹೆಚ್ಚಿನ ಕೋರ್ಸ್‌ಗಳು: ಜನರೇಟಿವ್ AI, ಡೇಟಾ ಸಾಯನ್ಸ್, ML, IoT ಪಾಠ್ಯಕ್ರಮಗಳು ಲಭ್ಯ + +### Working with Specific Projects + +ವೈಯಕ್ತಿಕ ಯೋಜನೆಗಳ ವಿವರವಾದ ಸೂಚನೆಗಳಿಗೆ ಓದಿ: +- `quiz-app/README.md` - Vue 3 ಕ್ವಿಜ್ ಅಪ್ಲಿಕೇಶನ್ +- `7-bank-project/README.md` - ಪ್ರಾಮಾಣೀಕರಣ ಹೊಂದಿದ ಬ್ಯಾಂಕಿಂಗ್ ಅಪ್ಲಿಕೇಶನ್ +- `5-browser-extension/README.md` - ಬ್ರೌಸರ್ ವಿಸ್ತರಣೆ ಅಭಿವೃದ್ಧಿ +- `6-space-game/README.md` - ಕ್ಯಾನ್ವಾಸ್ ಆಧಾರಿತ ಆಟ ಅಭಿವೃದ್ಧಿ +- `9-chat-project/README.md` - AI ಚಾಟ್ ಸಹಾಯಕ ಯೋಜನೆ + +### Monorepo Structure + +ಪ್ರಚಲಿತ ಮಾನೊರೆಪೊ ಅಲ್ಲ, ಆದರೆ ಈ ಸಂಗ್ರಹದಲ್ಲಿ ಹಲವಾರು ಸ್ವತಂತ್ರ ಯೋಜನೆಗಳಿವೆ: +- ಪ್ರತಿ ಪಾಠ ಸ್ವತಂತ್ರವಾಗಿದೆ +- ಯೋಜನೆಗಳು ಅವಲಂಭನೆಗಳನ್ನು ಹಂಚಿಕೊಳ್ಳುತ್ತವೆಯೆಂದು ಇಲ್ಲ +- ಇತರರಿಗೆ ವ್ಯತ್ಯಾಸವೇ ಇಲ್ಲದೆ ವೈಯಕ್ತಿಕ ಯೋಜನೆಗಳಲ್ಲಿ ಕೆಲಸ ಮಾಡಿ +- ಸಂಪೂರ್ಣ ಪಾಠ್ಯಕ್ರಮ ಅನುಭವಕ್ಕಾಗಿ ಪೂರ್ಣ ಸಂಗ್ರಹ ಹಿಂಡಿಸಿ ಇಂದು ಪಡೆಯಿರಿ + +--- + + +**ತಿರಸ್ಕರಣೆ**: +ಈ ದಸ್ತಾವೇಜನ್ನು AI ಭಾಷಾಂತರ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಭಾಷಾಂತರಿಸಲಾಗಿದೆ. ನಾವು ದೃಢತೆಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಭಾಷಾಂತರಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸರೆವುಗಳು ಇರಬಹುದು ಎಂಬುದನ್ನು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕಾಗಿದೆ. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ ವೃತ್ತಿಪರ ಮಾನವ ಭಾಷಾಂತರವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಭಾಷಾಂತರ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪುಬರುವುಗಳು ಅಥವಾ ದುರ್ಬೋಧನೆಗಾಗಿ ನಾವು ಹೊಣೆಗಾರರಾಗಿರುವುದಿಲ್ಲ. + \ No newline at end of file diff --git a/translations/kn/CODE_OF_CONDUCT.md b/translations/kn/CODE_OF_CONDUCT.md new file mode 100644 index 000000000..e89fc9986 --- /dev/null +++ b/translations/kn/CODE_OF_CONDUCT.md @@ -0,0 +1,25 @@ + +# ಮೈಕ್ರೋಸಾಫ್ಟ್ ಓಪನ್ ಸೋರ್ಸ್ ನಡವಳಿಕೆ ನಿಯಮಾವಳಿ + +ಈ ಪ್ರಾಜೆಕ್ಟ್ [ಮೈಕ್ರೋಸಾಫ್ಟ್ ಓಪನ್ ಸೋರ್ಸ್ ನಡವಳಿಕೆ ನಿಯಮಾವಳಿ](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-77807-sagibbon) ಅನ್ನು ಅಳವಡಿಸಿಕೊಂಡಿದೆ. + +ಸಂಪನ್ಮೂಲಗಳು: + +- [ಮೈಕ್ರೋಸಾಫ್ಟ್ ಓಪನ್ ಸೋರ್ಸ್ ನಡವಳಿಕೆ ನಿಯಮಾವಳಿ](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-77807-sagibbon) +- [ಮೈಕ್ರೋಸಾಫ್ಟ್ ನಡವಳಿ ನಿಯಮಗಳ ಆಗಾಗ್ಗೆ ಕೇಳುವ ಪ್ರಶ್ನೆಗಳು (FAQ)](https://opensource.microsoft.com/codeofconduct/faq/?WT.mc_id=academic-77807-sagibbon) +- ಪ್ರಶ್ನೆಗಳು ಅಥವಾ ಚಿಂತೆಗಳಿದ್ದಲ್ಲಿ [opencode@microsoft.com](mailto:opencode@microsoft.com) ಸಂಪರ್ಕಿಸಿ + +--- + + +**ತ್ಯಾಜ್ಯ**: +ಈ ದಸ್ತಾವೇಜನ್ನು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ಶುದ್ಧತೆಯನ್ನು ಕಾಯ್ದುಕೊಳ್ಳಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದೆಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿ ಇರುವದಲ್ಲೇ ದಸ್ತಾವೇಜನ್ನು ಪ್ರಾಮಾಣಿಕ ಮೂಲ ಎಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವಪೂರ್ಣ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಸೂಚಿಸಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದದ ಬಳಕೆಯಿಂದ ಸಂಭವಿಸುವ ಭ್ರಮೆ ಅಥವಾ ತಪ್ಪು ಅರ್ಥಗಳನ್ನು ನಾವು ಜವಾಬ್ದಾರಿಯಾಗಿರಲಿಲ್ಲ. + \ No newline at end of file diff --git a/translations/kn/CONTRIBUTING.md b/translations/kn/CONTRIBUTING.md new file mode 100644 index 000000000..5e77c74bf --- /dev/null +++ b/translations/kn/CONTRIBUTING.md @@ -0,0 +1,27 @@ + +# ಕೊಡುಗೆ + +ಈ ಯೋಜನೆ ಕೊಡುಗೆಗಳು ಮತ್ತು ಸೂಚನೆಗಳನ್ನು ಸ್ವಾಗತಿಸುತ್ತದೆ. ಹೆಚ್ಚಿನ ಕೊಡುಗೆಗಳಿಗೆ ನೀವು +ನೀವು ಕೊಡುಗೆ ನೀಡಲು ಹಕ್ಕು ಹೊಂದಿದ್ದೀರಿ ಮತ್ತು ವಾಸ್ತವವಾಗಿ ನಮ್ಮಿಗೋ ಅಂದಾಯಿಸಲು ಅವಶ್ಯಕವಾಗಿರುವದೆ ಎಂದು ಘೋಷಿಸುವ ಕೊಡುಗೆದಾರರ ಪರವಾನಗಿ ಒಪ್ಪಂದ (CLA) ಅನ್ನು ಒಪ್ಪಿಕೊಳ್ಳಬೇಕಾಗುತ್ತದೆ. ಹೆಚ್ಚಿನ ವಿವರಗಳಿಗೆ ಭೇಟಿ ನೀಡಿ +[https://cla.microsoft.com](https://cla.microsoft.com/?WT.mc_id=academic-77807-sagibbon). + +ನೀವು ಒಂದು ಪುಲ್ ವಿನಂತಿಯನ್ನು ಸಲ್ಲಿಸಿದಾಗ, CLA-ಬಾಟ್ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನೀವು CLA ಒದಗಿಸಬೇಕೇ ಇಲ್ಲವೇ ಎಂದು ನಿರ್ಧರಿಸಿ PR ಅನ್ನು ಸರಿಯಾಗಿ ಅಲಂಕರಿಸಲಿದೆ (ಉದಾ: ಲೇಬಲ್‌, ಕಾಮೆಂಟ್‌). ಬಾಟ್ ಒದಗಿಸುವ ಸೂಚನೆಗಳನ್ನು ಸರಳವಾಗಿ ಅನುಸರಿಸಿ. ನಮ್ಮ CLA ವನ್ನು ಬಳಸುವ ಎಲ್ಲಾ ಸಂಗ್ರಹಾಲಯಗಳಲ್ಲಿ ನೀವು ಇದನ್ನು ಒಮ್ಮೆ ಮಾತ್ರ ಮಾಡಬೇಕಾಗುತ್ತದೆ. ನಾವು ನಿಮ್ಮ ವಿನಂತಿಯನ್ನು ಉತ್ತಮವಾಗಿ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ನೀವು ಏಕೆ ಆ ಬದಲಾವಣೆಯನ್ನು ಮಾಡಿದ್ದಾರೆಂದು ನಮಗೆ ಹೇಳಲು ಸಹ ಪ್ರಯತ್ನಿಸಿ. + +ಈ ಯೋಜನೆ [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/?WT.mc_id=academic-77807-sagibbon) ಅನ್ನು ಅಂಗೀಕರಿಸಿದೆ. +ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗೆ [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/?WT.mc_id=academic-77807-sagibbon) ನೋಡಿ +ಅಥವಾ ಯಾವುದೇ ಹೆಚ್ಚುವರಿ ಪ್ರಶ್ನೆಗಳು ಅಥವಾ ಟಿಪ್ಪಣಿಗಳಿಗೆ [opencode@microsoft.com](mailto:opencode@microsoft.com) ಸಂಪರ್ಕಿಸಿ. + +--- + + +**ಅತ್ಯಾವಶ್ಯಕ ನೋಟ್**: +ಈ ದಾಖಲೆ AI ಭಾಷಾಂತರ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿಕೊಂಡು ಭಾಷಾಂತರಿಸಲಾಗಿದೆ. ನಮಗೆ ಶುದ್ದತೆಗಾಗಿ ಪ್ರಚಾರವಿದ್ದರೂ, ದಯವಿಟ್ಟು ಗಮನವಿರಲಿ, ಸ್ವಚಾಲಿತ ಭಾಷಾಂತರಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳಿರಬಹುದು. ಮೂಲ ಭಾಷೆಯ ತಲುಪಿದ ದಾಖಲೆ ಹಕ್ಕಿನ ಮೂಲವಾಗಿದೆ ಎಂದು ಪರಿಗಣಿಸಬೇಕಾಗಿದೆ. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಭಾಷಾಂತರವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಭಾಷಾಂತರ ಬಳಕೆಯ ಕಾರಣದಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ಅರ್ಥಸುದ್ದಿ Ош್ಠು ಅಥವಾ ತಪ್ಪು ಅರ್ಥಗರ್ಭಿತತೆಗೆ ನಾವು ಹೊಣೆಗಾರರಲ್ಲ. + \ No newline at end of file diff --git a/translations/kn/Git-Basics/README.md b/translations/kn/Git-Basics/README.md new file mode 100644 index 000000000..62d901008 --- /dev/null +++ b/translations/kn/Git-Basics/README.md @@ -0,0 +1,144 @@ + +## ವೆಬ್-ಡೆವ್ ಆರಂಭಿಕರಿಗಾಗಿ GIT ಮೂಲಭೂತಗಳು👶 + + +## `Git` ಎಂದರೆ ಏನು? + 1. Git ಒಂದು ಹಂಚಿಕೆಗೊಳಿಸಿದ ಆವೃತ್ತಿ ನಿಯಂತ್ರಣ ವ್ಯವಸ್ಥೆ. + 2. ಸಂಪೂರ್ಣ ಕೋಡ್‌ಬೇಸ್ ಮತ್ತು ಇತಿಹಾಸವು ಪ್ರತಿಯೊಬ್ಬ ಡೆವಲಪರರ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ ಲಭ್ಯವಿದ್ದು, + ಇದು ಸುಲಭವಾಗಿ ಶಾಖೆಯನ್ನು ಮತ್ತು ಮಿಶ್ರಣವನ್ನು ಅನುಮತಿಸುತ್ತದೆ. + 3. ಇದು ಕಂಪ್ಯೂಟರ್ ಫೈಲ್ಗಳಲ್ಲಿ ಬದಲಾವಣೆಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಲು ಆವೃತ್ತಿ ನಿಯಂತ್ರಣ ವ್ಯವಸ್ಥೆಯಾಗಿ (VCS) ಬಳಸಲಾಗುತ್ತದೆ. + +* ಹಂಚಿಕೆಗೊಳಿಸಿದ ಆವೃತ್ತಿ ನಿಯಂತ್ರಣ +* ಅನೇಕ ಡೆವಲಪರ್‌ಗಳ ಕೆಲಸವನ್ನು ಸಂಯೋಜಿಸುತ್ತದೆ +* ಯಾರು ಯಾವ ಬದಲಾವಣೆಗಳನ್ನು ಮತ್ತು ಯಾವಾಗ ಮಾಡಿದ್ದಾರೆ +* ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ಹಿಂದಕ್ಕೆ ಹೋಗಲು +* ಸ್ಥಳೀಯ ಮತ್ತು ದೂರದ ರೆಪೋಗಳು + +## GIT ಯೋಗ್ಯತೆಗಳು +* ಕೋಡ್ ಇತಿಹಾಸವನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡುತ್ತದೆ +* ನಿಮ್ಮ ಫೈಲ್‌ಗಳ "ಸ್ನ್ಯಾಪ್‌ಶಾಟ್"ಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ +* ನೀವು "ಕಮಿಟ್" ಮಾಡಿಸುವ ಮೂಲಕ ಯಾವಾಗ ಸ್ನ್ಯಾಪ್‌ಶಾಟ್ ತೆಗೆದುಕೊಳ್ಳಬೇಕೆಂದು ನಿರ್ಧರಿಸುತ್ತೀರಿ +* ನೀವು ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ಯಾವುದೇ ಸ್ನ್ಯಾಪ್‌ಶಾಟ್‌ಗೆ ಭೇಟಿ ನೀಡಬಹುದು +* ನೀವು ಕಮಿಟ್ ಮಾಡುವ ಮೊದಲು ಫೈಲ್‌ಗಳನ್ನು ಹಂತದಲ್ಲಿ ಇಡಬಹುದು + +### Git ಮತ್ತು GitHub ನಡುವೆ ವ್ಯತ್ಯಾಸ + +| Git | GitHub | +| ------- | ----------- | +| Git ಒಂದು ಸಾಫ್ಟ್‌ವೇರ್ | GitHub ಒಂದು ಕ್ಲೌಡ್ ಸೇವೆ | +| Git ವ್ಯವಸ್ಥೆಯ ಮೇಲೆ ಸ್ಥಳೀಯವಾಗಿ ಸ್ಥಾಪಿಸಲಾಗಿದೆ | GitHub ವೆಬ್‌ನಲ್ಲಿ ಹೋಸ್ಟ್ ಮಾಡಲಾಗಿದೆ | +| ಇದು ಕಮಾಂಡ್-ಲೈನ್ ಸಾಧನ | ಇದು ಗ್ರಾಫಿಕಲ್ ಬಳಕೆದಾರ ಇಂಟರ್ಫೇಸ್ | +| Git ಲಿನಕ್ಸ್ ಮೂಲಕ ನಿರ್ವಹಿಸಲಾಗಿದೆ | GitHub ಮೈಕ್ರೋಸಾಫ್ಟ್ ಮೂಲಕ ನಿರ್ವಹಣೆ | +| ಇದು ಆವೃತ್ತಿ ನಿಯಂತ್ರಣ ಮತ್ತು ಕೋಡ್ ಹಂಚಿಕೆಗೆ ಕೇಂದ್ರೀಕರಿಸಿದೆ | ಇದು ಕೇಂದ್ರಿತ ಮೂಲ ಕೋಡ್ ಹೋಸ್ಟಿಂಗ್‌ಗೆ ಕೇಂದ್ರೀಕರಿಸಿದೆ | +| Git ತೆರವುಮಾಡಲ್ಪಟ್ಟ ಮೂಲಸೋರ್ಸ್ ಲೈಸೆನ್ಸ್ ಹೊಂದಿದೆ | GitHub ಉಚಿತ-ತಲೆ ಮತ್ತು ಬಳಕೆಗಾಗಿ ಪಾವತಿ ಆಯ್ಕೆಯನ್ನು ಒಳಗೊಂಡಿದೆ | +| Git 2005 ರಲ್ಲಿ ಬಿಡುಗಡೆ | GitHub 2008 ರಲ್ಲಿ ಬಿಡುಗಡೆ | + +## GIT ಸ್ಥಾಪನೆ +* ಲಿನಕ್ಸ್(Debian) + `$sudo apt-get install git` +* ಲಿನಕ್ಸ್(Fedora) + `$sudo yum install git` +* Macಗಾಗಿ [ಡೌನ್ಲೋಡ್](http://git-scm.com/download/mac) +* ವಿಂಡೋಸ್‌ಗೆ [ಡೌನ್ಲೋಡ್](http://git-scm.com/download/win) + + +### ಸ್ಥಾಪನೆ ಪ್ರಕ್ರಿಯೆಯ ಹಂತಗಳು: +1. +2. +3. +4. +5. +6. ನಂತರ ಮುಂದುವರಿದು ಮುಂದಿನ > ಮುಂದಿನ > ಮುಂದಿನ > ಸ್ಥಾಪಿಸಿ +7. + + + + + + + + ### ಸ್ಥಾಪನೆಯ ನಂತರ git ಬಶ್ ಬಳಸಿ git ಅನ್ನು ಸಂರಚಿಸುವುದು + 1. `git config --global user.name 'ನಿಮ್ಮಹೆಸರು'` + 2. `git config --global user.email 'ನಿಮ್ಮಇಮೇಲ್'` +___ + + + +## Git ಕಮಾಂಡ್‌ಗಳು +___ + +### ಯೋಜನೆಗಳನ್ನು ಪಡೆಯುವುದು ಮತ್ತು ರಚಿಸುವುದು + +| ಕಮಾಂಡ್ | ವಿವರಣೆ | +| ------- | ----------- | +| `git init` | ಸ್ಥಳೀಯ Git ರೆಪೋವನ್ನು ಪ್ರಾರಂಭಿಸಿ | +| `git clone ssh://git@github.com/[username]/[repository-name].git` | ದೂರದ ರೆಪೋದಿಂದ ಸ್ಥಳೀಯ ಪ್ರತಿಯನ್ನು ರಚಿಸಿ | + +### ಮೂಲ ಸ್ನ್ಯಾಪ್‌ಶಾಟ್‌ಗಳು + +| ಕಮಾಂಡ್ | ವಿವರಣೆ | +| ------- | ----------- | +| `git status` | ಸ್ಥಿತಿ ಪರಿಶೀಲಿಸಿ | +| `git add [file-name.txt]` | ಹಂತದ ಪ್ರದೇಶಕ್ಕೆ ಫೈಲ್ ಸೇರ್ಪಡೆ ಮಾಡಿ | +| `git add -A` | ಎಲ್ಲಾ ಹೊಸ ಮತ್ತು ಬದಲಾಗಿದ ಫೈಲ್‌ಗಳನ್ನು ಹಂತದ ಪ್ರದೇಶಕ್ಕೆ ಸೇರ್ಪಡೆ ಮಾಡಿ | +| `git commit -m "[commit message]"` | ಬದಲಾವಣೆಗಳನ್ನು ಕಮಿಟ್ ಮಾಡಿ | +| `git rm -r [file-name.txt]` | ಫೈಲ್ (ಅಥವಾ ಫೋಲ್ಡರ್) ತೆಗೆದುಹಾಕಿ | +| `git push` | ರಿಮೋಟ್ ರೆಪೋಗೆ ಪುಷ್ ಮಾಡಿ | +| `git pull` | ರಿಮೋಟ್ ರೆಪೋದಿಂದ تازಾ ಬದಲಾವಣೆಗಳನ್ನು ಪಲ್ಲು ಮಾಡಿ | + +### ಶಾಖೆಗಳು ಮತ್ತು ಮಿಶ್ರಣ + +| ಕಮಾಂಡ್ | ವಿವರಣೆ | +| ------- | ----------- | +| `git branch` | ಶಾಖೆಗಳ ಪಟ್ಟಿಯನ್ನು ತೋರಿಸಿ (ಸ್ಟಾರ್ ಪ್ರಸ್ತುತ ಶಾಖೆಯನ್ನು ಸೂಚಿಸುತ್ತದೆ) | +| `git branch -a` | ಎಲ್ಲಾ ಶಾಖೆಗಳನ್ನು ಪಟ್ಟಿಮಾಡಿ (ಸ್ಥಳೀಯ ಮತ್ತು ರಿಮೋಟ್) | +| `git branch [branch name]` | ಹೊಸ ಶಾಖೆ ರಚಿಸಿ | +| `git branch -D [branch name]` | ಶಾಖೆ ಅಳించು | +| `git push origin --delete [branch name]` | ರಿಮೋಟ್ ಶಾಖೆಯನ್ನು ಅಳಿಸಿ | +| `git checkout -b [branch name]` | ಹೊಸ ಶಾಖೆ ರಚಿಸಿ ಮತ್ತು ಅದಕ್ಕೆ ಬದಲಾಯಿಸಿ | +| `git checkout -b [branch name] origin/[branch name]` | ರಿಮೋಟ್ ಶಾಖೆಯನ್ನು ಕ್ಲೋನ್ ಮಾಡಿ ಮತ್ತು ಅದಕ್ಕೆ ಬದಲಾಯಿಸಿ | +| `git branch -m [old branch name] [new branch name]` | ಸ್ಥಳೀಯ ಶಾಖೆಗೆ ಹೊಸ ಹೆಸರು ನೀಡಿ | +| `git checkout [branch name]` | ಶಾಖೆಗೆ ಬದಲಾಯಿಸಿ | +| `git checkout -` | ಕೊನೆಯದಾಗಿ ಪರಿಶೀಲಿಸಿದ ಶಾಖೆಗೆ ಬದಲಾಯಿಸಿ | +| `git checkout -- [file-name.txt]` | ಫೈಲ್‌ಗೆ ಮಾಡಲಾದ ಬದಲಾವಣೆಗಳನ್ನು ತಿರಸ್ಕರಿಸಿ | +| `git merge [branch name]` | ಶಾಖೆಯನ್ನು ಸಕ್ರಿಯ ಶಾಖೆಗೆ ಮಿಶ್ರಣ ಮಾಡಿ | +| `git merge [source branch] [target branch]` | ಶಾಖೆಯನ್ನು ಗುರಿ ಶಾಖೆಗೆ ಮಿಶ್ರಣ ಮಾಡಿ | +| `git stash` | ಕೆಟ್ಟ ಕಾರ್ಯಕ್ಷೇತ್ರದಲ್ಲಿನ ಬದಲಾವಣೆಗಳನ್ನು ಸಾಂಗ್ರಹಿಸಿ | +| `git stash clear` | ಎಲ್ಲಾ ಸಾಂಗ್ರಹಿಸಿದ ಪ್ರವೇಶಗಳನ್ನು ತೆಗೆದುಹಾಕಿ | + +### ಯೋಜನೆ ಹಂಚಿಕೆ ಮತ್ತು ನವೀಕರಣ + +| ಕಮಾಂಡ್ | ವಿವರಣೆ | +| ------- | ----------- | +| `git push origin [branch name]` | ರಿಮೋಟ್ ರೆಪೋಗೆ ಶಾಖೆಯನ್ನು ಪುಷ್ ಮಾಡಿ | +| `git push -u origin [branch name]` | ಬದಲಾವಣೆಗಳನ್ನು ರಿಮೋಟ್ ರೆಪೋಗೆ ಪುಷ್ ಮಾಡಿ (ಮತ್ತು ಶಾಖೆಯನ್ನು ಸ್ಮರಿಸಿ) | +| `git push` | ಬದಲಾವಣೆಗಳನ್ನು ರಿಮೋಟ್ ರೆಪೋಗೆ ಪುಷ್ ಮಾಡಿ (ಸ್ಮರಿಸಲಾದ ಶಾಖೆ) | +| `git push origin --delete [branch name]` | ರಿಮೋಟ್ ಶಾಖೆಯನ್ನು ಅಳಿಸಿ | +| `git pull` | ಸ್ಥಳೀಯ ರೆಪೋವನ್ನು ಅತ್ಯಂತ ಹೊಸ ಕಮಿಟ್‌ಗೆ ನವೀಕರಿಸಿ | +| `git pull origin [branch name]` | ರಿಮೋಟ್ ರೆಪೋದಿಂದ ಬದಲಾವಣೆಗಳನ್ನು ಪಲ್ಲು ಮಾಡಿ | +| `git remote add origin ssh://git@github.com/[username]/[repository-name].git` | ರಿಮೋಟ್ ರೆಪೋವನ್ನು ಸೇರಿಸಿ | +| `git remote set-url origin ssh://git@github.com/[username]/[repository-name].git` | ರೆಪೋಗೆ SSH ಮೂಲಕ ಆಧಾರ ಶಾಖೆಯನ್ನು ಹೊಂದಿಸಿ | + +### ಪರಿಶೀಲನೆ ಮತ್ತು ಹೋಲಿಕೆ + +| ಕಮಾಂಡ್ | ವಿವರಣೆ | +| ------- | ----------- | +| `git log` | ಬದಲಾವಣೆಗಳನ್ನು ವೀಕ್ಷಿಸಿ | +| `git log --summary` | ಬದಲಾವಣೆಗಳನ್ನು ವಿವರವಾಗಿ ವೀಕ್ಷಿಸಿ | +| `git log --oneline` | ಬದಲಾವಣೆಗಳನ್ನು ಸಂಕ್ಷಿಪ್ತವಾಗಿ ವೀಕ್ಷಿಸಿ | +| `git diff [source branch] [target branch]` | ಮಿಶ್ರಣವಾಗುವ ಮೊದಲು ಬದಲಾವಣೆಗಳ ಪೂರ್ವಾವಲೋಕನ | + +--- + + +**ನೆನೆಪಿಸು:** +ಈ ದಾಖಲೆಯನ್ನು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ಸರಳತೆಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲದ ದಸ್ತಾವೇಜ್ ಅದರ ಸ್ವಭಾವಿಕ ಭಾಷೆಯಲ್ಲಿ ಅಧಿಕೃತ ಸಾರಿಯಾದಂತೆ ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದವನ್ನು ಬಳಸದರಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ pstmt್್ ಮೋಸಗಳನ್ನು ನಾವು ಹೊಣೆ ಹೊತ್ತುಕೊಳ್ಳುವುದಿಲ್ಲ. + \ No newline at end of file diff --git a/translations/kn/README.md b/translations/kn/README.md new file mode 100644 index 000000000..02eba4324 --- /dev/null +++ b/translations/kn/README.md @@ -0,0 +1,278 @@ + +[![GitHub license](https://img.shields.io/github/license/microsoft/Web-Dev-For-Beginners.svg)](https://github.com/microsoft/Web-Dev-For-Beginners/blob/master/LICENSE) +[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/graphs/contributors/) +[![GitHub issues](https://img.shields.io/github/issues/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/issues/) +[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/pulls/) +[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) + +[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Watch&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/watchers/) +[![GitHub forks](https://img.shields.io/github/forks/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Fork&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/network/) +[![GitHub stars](https://img.shields.io/github/stars/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Star&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/stargazers/) + +[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) + +# ಪ್ರಾರಂಭಿಕರಿಗಾಗಿ ವೆಬ್ ಅಭಿವೃದ್ಧಿ - ಒಂದು ಪಠ್ಯಕ್ರಮ + +Microsoft Cloud Advocates ರ 12-ವಾರಗಳ ವ್ಯಾಪಕ ಕೋರ್ಸ್ ಮೂಲಕ ವೆಬ್ ಅಭಿವೃದ್ಧಿಯ ಮೂಲತತ್ತ್ವಗಳನ್ನು ಕಲಿಯಿರಿ. 24 ಪಾಠಗಳ ಪ್ರತಿಯೊಂದು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್, CSS, ಮತ್ತು HTML ಗೆ ಕೈಗೊಳ್ಳುವ ಪ್ರಾಜೆಕ್ಟ್‌ಗಳ ಮೂಲಕ ಮುಳುಗಿತ್ತುತ್ತದೆ, ಉದಾಹರಣೆಗೆ ಟೆರಾರಿಯಂಗಳು, ಬ್ರೌಸರ್ ವಿಸ್ತರಣೆಗಳು, ಮತ್ತು ಅಗಲಿಕೆ ಆಟಗಳು. ಪ್ರಶ್ನೆಮಾರು, ಚರ್ಚೆಗಳು ಮತ್ತು ಉಪಯುಕ್ತ ಕಾರ್ಯಗಳನ್ನು ಮೂಲಕ ಭಾಗವಹಿಸಿ. ನಿಮ್ಮ ಕೌಶಲ್ಯಗಳನ್ನು ಸುಧಾರಿಸಿ ಮತ್ತು ನಮ್ಮ ಪರಿಣಾಮಕಾರಿ ಪ್ರಾಜೆಕ್ಟ್ ಆಧಾರಿತ ಪಾಠಶಾಲೆಯ ಮೂಲಕ ನಿಮ್ಮ ಜ್ಞಾನವನ್ನು ಹೆಚ್ಚು ಗಟ್ಟಿಗೊಳಿಸಿ. ನಿಮ್ಮ ಕೋಡಿಂಗ್ ಪ್ರಯಾಣವನ್ನು ಇಂದು ಪ್ರಾರಂಭಿಸಿ! + +Azure AI Foundry Discord ಸಮುದಾಯವನ್ನು ಸೇರಿ + +[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) + +ಈ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಪ್ರಾರಂಭಿಸಲು ಈ ಹಂತಗಳನ್ನು ಅನುಸರಿಸಿ: +1. **ಪ್ರತಿಯನ್ನು ಫೋರ್ಕ್ ಮಾಡಿ**: ಕ್ಲಿಕ್ ಮಾಡಿ [![GitHub forks](https://img.shields.io/github/forks/microsoft/Web-Dev-For-beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/fork) +2. **ಪ್ರತಿಯನ್ನು ಕ್ಲೋನ್ ಮಾಡಿ**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git` +3. [**Azure AI Foundry Discord ಗೆ ಸೇರಿ, ಪರಿಣಿತರ ಮತ್ತು ಸಹ ಡೆವಲಪರ್‌ಗಳನ್ನು ಭೇಟಿ ಮಾಡಿ**](https://discord.com/invite/ByRwuEEgH4) + +### 🌐 ಬಹुभಾಷಾ ಬೆಂಬಲ + +#### GitHub ಕ್ರಿಯೆಯಿಂದ (ಸ್ವಯಂಚಾಲಿತ ಮತ್ತು ಯಾವಾಗಲೂ ನವೀಕೃತ) ಬೆಂಬಲಿತವಾಗಿದೆ + + +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh/README.md) | [Chinese (Traditional, Hong Kong)](../hk/README.md) | [Chinese (Traditional, Macau)](../mo/README.md) | [Chinese (Traditional, Taiwan)](../tw/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](./README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../br/README.md) | [Portuguese (Portugal)](../pt/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) + +> **ಸ್ಥಳೀಯವಾಗಿ ಕ್ಲೋನ್ ಮಾಡಬೇಕೆಂದು ಇಚ್ಛಿಸುವಿರಾ?** + +> ಈ ರೆಪೊಸಿಟರಿ 50+ ಭಾಷೆ ಅನುವಾದಗಳನ್ನು ಹೊಂದಿದ್ದು, ಡೌನ್ಲೋಡ್ ಗಾತ್ರವನ್ನು ಬಹಳ ಹೆಚ್ಚಿಸುತ್ತದೆ. ಅನುವಾದಗಳಿಲ್ಲದೆ ಕ್ಲೋನ್ ಮಾಡಲು ಸ್ಪಾರ್ಸ್ ಔಟ್‌ಚಾರ್ಟ್ ಬಳಸಿ: +> ```bash +> git clone --filter=blob:none --sparse https://github.com/microsoft/Web-Dev-For-Beginners.git +> cd Web-Dev-For-Beginners +> git sparse-checkout set --no-cone '/*' '!translations' '!translated_images' +> ``` +> ಇದು课程 ಪೂರ್ಣಗೊಳಿಸಲು ಬೇಕಾದ ಎಲ್ಲವನ್ನು ಹೆಚ್ಚು ವೇಗದ ಡೌನ್ಲೋಡ್ ಜೊತೆಗೆ ನಿಮಗೆ ನೀಡುತ್ತದೆ. + + +**ನಿಮಗೆ ಹೆಚ್ಚುವರಿ ಅನುವಾದ ಭಾಷೆಗಳ ಬೆಂಬಲ ಬೇಕಾದರೆ ಅವುಗಳ ಪಟ್ಟಿ ಇಲ್ಲಿದೆ [ಇಲ್ಲಿ](https://github.com/Azure/co-op-translator/blob/main/getting_started/supported-languages.md)** + +[![Open in Visual Studio Code](https://img.shields.io/static/v1?logo=visualstudiocode&label=&message=Open%20in%20Visual%20Studio%20Code&labelColor=2c2c32&color=007acc&logoColor=007acc)](https://open.vscode.dev/microsoft/Web-Dev-For-Beginners) + +#### 🧑‍🎓 _ನೀವು ವಿದ್ಯಾರ್ಥಿ ಆಗಿದ್ದೀರಾ?_ + +[**ವಿದ್ಯಾರ್ಥಿ ಹಬ್ ಪುಟ**](https://docs.microsoft.com/learn/student-hub/?WT.mc_id=academic-77807-sagibbon) ಗೆ ಭೇಟಿ ನೀಡಿ, ಇಲ್ಲಿ ನೀವು ಪ್ರಾರಂಭಿಕ ಸಂಪನ್ಮೂಲಗಳು, ವಿದ್ಯಾರ್ಥಿ ಪ್ಯಾಕ್ಗಳು ಮತ್ತು ಉಚಿತ ಪ್ರಮಾಣಪತ್ರ ವೋಚರ್ ಪಡೆಯುವ ಪರಿಹಾರಗಳನ್ನು ಕಾಣುವಿರಿ. ಇದು ಪ್ರತಿ ತಿಂಗಳಲ್ಲಿ ವಿಷಯವನ್ನು ಬದಲಾಯಿಸುವುದರಿಂದ ನೀವು ಇಷ್ಟಪಟ್ಟು ಬುಕ್ಮಾರ್ಕ್ ಮಾಡಿ ಸಮಯಕಾಲದಿಂದ ಪರಿಶೀಲಿಸುವ ಪುಟ. + +### 📣 ಘೋಷಣೆ - ಹೊಸ GitHub Copilot Agent ಮೋಡ್ ಸವಾಲುಗಳು ಪೂರ್ಣಗೊಳ್ಳಲು! + +ಹೊಸ ಸವಾಲು ಸೇರಿಸಲಾಗಿದೆ, ಬಹುಚಿತ್ತಗಳಲ್ಲಿ "GitHub Copilot Agent Challenge 🚀" ಹುಡುಕಿ. ಇದು GitHub Copilot ಮತ್ತು Agent ಮೋಡ್ ಬಳಸಿ ನಿಮಗಾಗಿ ಹೊಸ ಸವಾಲು. ನೀವು Agent ಮೋಡ್ ಮೊದಲು ಬಳಸದಿದ್ದರೆ, ಇದು ಕೇವಲ ಪಠ್ಯ ರಚಿಸುವುದರಲ್ಲಿ ಮಾತ್ರ ಅಲ್ಲ, ಕಡತಗಳನ್ನು ಸೃಜಿಸುವುದು ಮತ್ತು ಸಂಪಾದಿಸುವುದು, ಆಜ್ಞೆಗಳನ್ನು ಚಾಲನೆ ಮಾಡುವುದೂ ಸಹ ಸಾಧ್ಯ. + +### 📣 ಘೋಷಣೆ - _ಜನರೇಟಿವ್ AI ಬಳಸಿ ಹೊಸ ಪ್ರಾಜೆಕ್ಟ್_ + +ಹೊಸ AI ಸಹಾಯಕ ಪ್ರಾಜೆಕ್ಟ್ ಸೇರಿಸಲಾಗಿದೆ, ಇದನ್ನು ಪರಿಶೀಲಿಸಿ [project](./9-chat-project/README.md) + +### 📣 ಘೋಷಣೆ - _ಜನರೇಟಿವ್ AI ಬಗ್ಗೆ ಹೊಸ ಪಠ್ಯಕ್ರಮ_ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಗೆ ಬಿಡುಗಡೆ ಆಗಿದೆ + +ನಮ್ಮ ಹೊಸ ಜನರೇಟಿವ್ AI ಪಠ್ಯಕ್ರಮವನ್ನು ತಪ್ಪಿಸಿಕೊಳ್ಳಬೇಡಿ! + +ಪ್ರಾರಂಭಿಸಲು [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) ಗೆ ಭೇಟಿ ನೀಡಿ! + +![Background](../../translated_images/background.148a8d43afde5730.kn.png) + +- ಮೂಲಭೂತದಿಂದ RAG ವರೆಗೆ ಎಲ್ಲವನ್ನೂ ಆವರಿಸುವ ಪಾಠಗಳು. +- ಜನರೇಟಿವ್ AI ಮತ್ತು ನಮ್ಮ ಸಹಯೋಗಿ ಅಪ್ಲಿಕೇಶನ್ ಮೂಲಕ ಐತಿಹಾಸಿಕ ಪಾತ್ರಗಳೊಂದಿಗೆ ಸಂವಾದ. +- ಮನರಂಜನೆ ಮತ್ತು ಆಕರ್ಷಕ ಕಥನ, ನೀವು ಕಾಲ ಯಾತ್ರೆಯಲ್ಲಿ ಹೋಗುತ್ತೀರಿ! + +![character](../../translated_images/character.5c0dd8e067ffd693.kn.png) + +ಪ್ರತಿಪಾಠದಲ್ಲಿ ಪೂರ್ಣಗೊಳಿಸುವ ಅಸೈನ್ಮೆಂಟ್, ಜ್ಞಾನ ಪರಿಶೀಲನೆ ಮತ್ತು ಸವಾಲು ಇರುತ್ತದೆ, ಇವುಡಿ ಕಲಿಕೆಗೆ ಮಾರ್ಗದರ್ಶನ ನೀಡುತ್ತವೆ ಹೀಗೆ: +- ಪ್ರಾಂಪ್ಟ್ ಮತ್ತು ಪ್ರಾಂಪ್ಟ್ ಇಂಜಿನಿಯರಿಂಗ್ +- ಪಠ್ಯ ಮತ್ತು ಚಿತ್ರ ಆಪ್ ಸೃಷ್ಟಿ +- ಹುಡುಕು ಆಪ್ ಗಳು + +ಪ್ರಾರಂಭಿಸಲು [https://aka.ms/genai-js-course](../../[https:/aka.ms/genai-js-course) ಗೆ ಭೇಟಿ ನೀಡಿ! + + + +## 🌱 ಪ್ರಾರಂಭಿಸುವುದು + +> **ಶಿಕ್ಷಕರು**, ಈ ಪಠ್ಯಕ್ರಮವನ್ನು ಹೇಗೆ ಬಳಸಬಹುದೆಂದು ನಾವು [ಕೆಲವು ಸಲಹೆಗಳನ್ನು](for-teachers.md) ಒಳಗೊಂಡಿದ್ದೇವೆ. ನೀವು ನಿಮ್ಮ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ದಯವಿಟ್ಟು ನಮ್ಮ [ಚರ್ಚಾ ವೇದಿಕೆಯಲ್ಲಿ](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner) ಹಂಚಿಕೊಳ್ಳಿ! + +**[ಕಲಿಯುವವರು](https://aka.ms/student-page/?WT.mc_id=academic-77807-sagibbon)**, ಪ್ರತಿಯೊಂದು ಪಾಠಕ್ಕೂ ಮುಂಚೆ್ರ ಲೆక్చರ್ ಪ್ರಶ್ನೋತ್ತರವನ್ನು ಮಾಡಿ, ನಂತರ ಉಪನ್ಯಾಸದ ವಸ್ತುವನ್ನು ಓದಿ, ವಿವಿಧ ಚಟುವಟಿಕೆಗಳನ್ನು ಪೂರ್ಣಗೊಳಿಸಿ ಮತ್ತು ನಂತರದ ಲೆಕ್ಚರ್ ಪ್ರಶ್ನೋತ್ತರದಿಂದ ನಿಮ್ಮ ಅರ್ಥಮಾತುಗಾರಿಕೆಯನ್ನು ಪರಿಶೀಲಿಸಿ. + +ನಿಮ್ಮ ಕಲಿಕೆಯ ಅನುಭವವನ್ನು ಸುಧಾರಿಸಲು, ನಿಮ್ಮ ಸಹಪಾಠಿಗಳೊಂದಿಗೆ ಪ್ರಾಜೆಕ್ಟ್‌ಗಳ ಮೇಲೆ ಒಟ್ಟಾಗಿ ಕೆಲಸ ಮಾಡಿ! ಚರ್ಚೆಗಳನ್ನು ನಮ್ಮ [ಚರ್ಚಾ ವೇದಿಕೆಯಲ್ಲಿ](https://github.com/microsoft/Web-Dev-For-Beginners/discussions) ಪ್ರೋತ್ಸಾಹಿಸಲಾಗುತ್ತದೆ, ಇಲ್ಲಿ ನಮ್ಮ ಮಧ್ಯಸ್ಥರ ತಂಡ ನಿಮ್ಮ ಪ್ರಶ್ನೆಗಳಿಗೆ ಉತ್ತರಿಸಲು ಲಭ್ಯವಿದ್ದುಹುದು. + +ನಿಮ್ಮ ಶಿಕ್ಷಣವನ್ನು ಇನ್ನಷ್ಟು ವಿಸ್ತರಿಸಲು, ಹೆಚ್ಚುವರಿ ಅಧ್ಯಯನ ವಸ್ತುಗಳಿಗಾಗಿ ನಾವು [Microsoft Learn](https://learn.microsoft.com/users/wirelesslife/collections/p1ddcy5jwy0jkm?WT.mc_id=academic-77807-sagibbon) ಅನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಸಲಹೆ ಮಾಡುತ್ತೇವೆ. + +### 📋 ನಿಮ್ಮ ಪರಿಸರವನ್ನು ಹೊಂದಿಸುವುದು + +ಈ ಪಠ್ಯಕ್ರಮವು ಅಭಿವೃದ್ಧಿ ಪರಿಸರವನ್ನು ಸಿದ್ಧಪಡಿಸಿದೆಯು! ನೀವು ಪ್ರಾರಂಭಿಸುವಾಗ, ನೀವು ಈ ಪಠ್ಯಕ್ರಮವನ್ನು [Codespace](https://github.com/features/codespaces/) (_ಬ್ರೌಸರ್ ಆಧಾರಿತ, ಯಾವುದೇ ಇನ್ಸ್‌ಟಾಲ್ ಅಗತ್ಯವಿಲ್ಲದ ಪರಿಸರ_), ಅಥವಾ [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) ರಂತಹ ಟೆಕ್ಸ್ಟ್ ಎಡಿಟರ್ ಬಳಸಿ ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ ಸ್ಥಳೀಯವಾಗಿ ಓಡಿಸಬಹುದು. + +#### ನಿಮ್ಮ ರೆಪೊಸಿಟರಿಯನ್ನು ಸೃಷ್ಟಿಸಿ +ನಿಮ್ಮ ಕೆಲಸವನ್ನು ಸುಲಭವಾಗಿ ಉಳಿಸಲು, ನಿಮ್ಮದೇ ಪ್ರತಿಯನ್ನು ರಚಿಸುವುದು ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ. ಇದಕ್ಕೆ, ಈ ಪೇಜಿನ ಮೇಲ್ಭಾಗದಲ್ಲಿರುವ **Use this template** ಬಟನ್ ಅನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ. ಇದು ನಿಮ್ಮ GitHub ಖಾತೆಯಲ್ಲಿ ಪಠ್ಯಕ್ರಮದ ನಕಲೊಂದಿಗಿನ ಹೊಸ ರೆಪೊಸಿಟರಿ ಸೃಷ್ಟಿಸುತ್ತದೆ. + +ಈ ಹಂತಗಳನ್ನು ಅನುಸರಿಸಿ: +1. **ಪ್ರತಿಯನ್ನು ಫೋರ್ಕ್ ಮಾಡಿ**: ಈ ಪುಟದ ಬಲ-ಮೇಲ್ಭಾಗದಲ್ಲಿರುವ "Fork" ಬಟನ್ ಮೇಲೆ ಕ್ಲಿಕ್ ಮಾಡಿ. +2. **ಪ್ರತಿಯನ್ನು ಕ್ಲೋನ್ ಮಾಡಿ**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git` + +#### Codespace ನಲ್ಲಿ ಪಠ್ಯಕ್ರಮವನ್ನು ಓಡಿಸುವುದು + +ನೀವು ಸೃಷ್ಟಿಸಿದ ರೆಪೊಸಿಟರಿಯಲ್ಲಿ, **Code** ಬಟನ್ ಕ್ಲಿಕ್ ಮಾಡಿ ಮತ್ತು **Open with Codespaces** ಆಯ್ಕೆಮಾಡಿ. ಇದು ನಿಮಗಾಗಿ ಹೊಸ Codespace ಸೃಷ್ಟಿಸುವುದು. + +![Codespace](../../translated_images/createcodespace.0238bbf4d7a8d955.kn.png) + +#### ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ ಸ್ಥಳೀಯವಾಗಿ ಪಠ್ಯಕ್ರಮವನ್ನು ಓಡಿಸುವುದು + +ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ ಈ ಪಠ್ಯಕ್ರಮವನ್ನು ಓಡಿಸಲು, ನಿಮ್ಮ ಬಳಿ ಒಂದು ಟೆಕ್ಸ್ಟ್ ಎಡಿಟರ್, ಬ್ರೌಸರ್ ಮತ್ತು ಕಮಾಂಡ್ ಲೈನ್ ಸಾಧನ ಬೇಕು. ನಮ್ಮ ಮೊದಲ ಪಾಠ, [ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳು ಮತ್ತು ಉಪಕರಣಗಳ ಪರಿಚಯ](../../1-getting-started-lessons/1-intro-to-programming-languages), ನಿಮಗೆ ಈ ಸಾಧನಗಳಲ್ಲಿ ವಿವಿಧ ಆಯ್ಕೆಗಳನ್ನು ನೀಡುತ್ತದೆ, ಯಾವುದು ನಿಮ್ಮಿಗೆ ಸೂಕ್ತ ಎಂಬುದನ್ನು ಆಯ್ಕೆಮಾಡಲು. + +ನಮ್ಮ ಶಿಫಾರಸು [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) ಅನ್ನು ಎಡಿಟರ್ ಆಗಿ ಬಳಸುವುದು, ಇದು ಒಳಗೊಂಡ [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon) ಸಹ ಹೊಂದಿದೆ. ನೀವು Visual Studio Code ಅನ್ನು [ಇಲ್ಲಿ](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) ಡೌನ್ಲೋಡ್ ಮಾಡಬಹುದು. + +1. ನಿಮ್ಮ ರೆಪೊಸಿಟರಿಯನ್ನು ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ಗೆ ಕ್ಲೋನ್ ಮಾಡಿ. ಇದಕ್ಕಾಗಿ **Code** ಬಟನ್ ಕ್ಲಿಕ್ ಮಾಡಿ ಮತ್ತು URL ನಕಲಿಸಿ: + + [CodeSpace](./images/createcodespace.png) +ಆಮೇಲೆ, [ವಿಜ್ಞಾಪನಾಪೂರ್ಣ](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon) ಅನ್ನು [ವಿಜುವಲ್ ಸ್ಟುಡಿಯೋ ಕೋಡ್](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) ಒಳಗೆ ತೆರೆಯಿರಿ ಮತ್ತು ಕೆಳಗಿನ ಆಜ್ಞೆಯನ್ನು ಚಲಾಯಿಸಿ, `` ಅನ್ನು ನೀವು appena ನಕಲಿಸಿದ URL ಮೂಲಕ ಬದಲಾಯಿಸಿ: + + ```bash + git clone + ``` + +2. ವಿಸುಯಲ್ ಸ್ಟುಡಿಯೋ ಕೋಡ್‌ನಲ್ಲಿ ಫೋಲ್ಡರ್ ತೆರೆಯಿರಿ. ನೀವು ಇದು **ಫೈಲ್** > **ಒಪನ್ ಫೋಲ್ಡರ್** ಕ್ಲಿಕ್ ಮಾಡಿ ಮತ್ತು ನೀವು appena ಕ್ಲೋನ್ ಮಾಡಿದ ಫೋಲ್ಡರ್ ಆಯ್ಕೆಮಾಡಿ ಮಾಡಬಹುದು. + + +> ಶಿಫಾರಸು ಮಾಡಲಾದ ವಿಶುವಲ್ ಸ್ಟುಡಿಯೋ ಕೋಡ್ ವಿಸ್ತರಣೆಗಳು: +> +> * [ಲೈವ್ ಸರ್ವರ್](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer&WT.mc_id=academic-77807-sagibbon) - ವಿಶುವಲ್ ಸ್ಟುಡಿಯೋ ಕೋಡ್ ಒಳಗೆ HTML ಪುಟಗಳನ್ನು ಪೂರ್ವದರ್ಶನ ಮಾಡಲು +> * [ಕೋಪಿಲಾಟ್](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot&WT.mc_id=academic-77807-sagibbon) - ನಿಮಗೆ ವೇಗವಾಗಿ ಕೋಡ್ ಬರೆಯಲು ಸಹಾಯ ಮಾಡಲು + +## 📂 ಪ್ರತಿ ಪಾಠದಲ್ಲಿ ಒಳಗೊಂಡಿದ್ದು: + +- ಐಚ್ಛಿಕ ಸ್ಕೆಚ್ನೋಟ್ +- ಐಚ್ಛಿಕ ಪೂರಕ ವೀಡಿಯೋ +- ಪಾಠಕ್ಕೂ ಮುನ್ನ ತಯಾರಿ ಚುಟುಕು ಪ್ರಶ್ನೆಗಳು +- ಬರೆದಿದೆ ಪಾಠ +- ಪ್ರಾಜೆಕ್ಟ್ ಆಧಾರಿತ ಪಾಠಗಳಿಗೆ, ಪ್ರಾಜೆಕ್ಟ್ ಅನ್ನು ನಿರ್ಮಿಸುವ ಹಂತ ಹಂತ ಮಾರ್ಗದರ್ಶಿಗಳು +- ಜ್ಞಾನ ತಪಾಸಣೆಗಳು +- ಒಂದು ಸವಾಲು +- ಪೂರಕ ಓದು +- ನಿಯೋಜನೆ +- [ಪಾಠದ ನಂತರದ ಪ್ರಶ್ನೋತ್ತರ](https://ff-quizzes.netlify.app/web/) + +> **ಪ್ರಶ್ನೋತ್ತರಗಳ ಕುರಿತಾಗಿ ಒಂದು ಟಿಪ್ಪಣಿ**: ಎಲ್ಲಾ ಪ್ರಶ್ನೋತ್ತರಗಳು Quiz-app ಫೋಲ್ಡರ್‌ನಲ್ಲಿ ಇರಾರು, ಮೂರು ಪ್ರಶ್ನೆಗಳ 48 ಒಟ್ಟು ಪ್ರಶ್ನೋತ್ತರಗಳು. ಅವು ಇಲ್ಲಿದೆ [ಇಲ್ಲಿ](https://ff-quizzes.netlify.app/web/) ನೀವು Quiz ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಅಥವಾ Azure ಗೆ ನಿಯೋಜಿಸಬಹುದು; `quiz-app` ಫೋಲ್ಡರ್ ನ ಸೂಚನೆಗಳನ್ನು ಅನುಸರಿಸಿ. + +## 🗃️ ಪಾಠಗಳು + +| | ಪ್ರಾಜೆಕ್ಟ್ ಹೆಸರು | ಕಲಿಸಲಾದ ಕಲ್ಪನೆಗಳು | ಕಲಿಕೆಯ ಗುರಿಗಳು | ಲಿಂಕ್ ಮಾಡಿದ ಪಾಠ | ಲೇಖಕ | +| :-: | :------------------------------------------------------: | :--------------------------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------: | :---------------------: | +| 01 | ಪ್ರಾರಂಭಿಸಲು | ಕಾರ್ಯಕ್ರಮ ರಚನೆ ಮತ್ತು ಉಪಕರಣಗಳ ಪರಿಚಯ | ಬಹುತೇಕ ಕಾರ್ಯಕ್ರಮ ಭಾಷೆಗಳ ಮೂಲ ತತ್ವಗಳನ್ನು ಮತ್ತು ವೃತ್ತಿಪರ ಅಭಿವೃದ್ಧಕರು ತಮ್ಮ ಕೆಲಸ ಮಾಡಲು ಸಹಾಯ ಮಾಡುವ ಸಾಫ್ಟ್‌ವೇರ್ ಬಗ್ಗೆ ಕಲಿಯಿರಿ | [ಕಾರ್ಯಕ್ರಮ ಭಾಷೆಗಳ ಪರಿಚಯ ಮತ್ತು ಉಪಕರಣಗಳು](./1-getting-started-lessons/1-intro-to-programming-languages/README.md) | ಜಾಸ್ಮಿನ್ | +| 02 | ಪ್ರಾರಂಭಿಸಲು | GitHubನ ಮೂಲಭೂತಗಳು, ತಂಡದೊಂದಿಗೆ ಕಾರ್ಯನಿರ್ವಹಣೆ | ನಿಮ್ಮ ಪ್ರಾಜೆಕ್ಟಿನಲ್ಲಿ GitHub ಅನ್ನು ಹೇಗೆ ಬಳಸುವುದು, ಕೋಡ್ ಬೇಸ್ ಮೇಲೆ ಇತರರೊಂದಿಗೆ ಸಹಯೋಗ ಮಾಡುವುದು | [GitHub ಪರಿಚಯ](./1-getting-started-lessons/2-github-basics/README.md) | ಫ್ಲೋರ್ | +| 03 | ಪ್ರಾರಂಭಿಸಲು | ಪ್ರವೇಶಿತಾ | ವೆಬ್ ಪ್ರವೇಶಿತೆಯ ಮೂಲಭೂತಗಳನ್ನು ಕಲಿಯಿರಿ | [ಪ್ರವೇಶಿತಾ ಮೂಲಭೂತಗಳು](./1-getting-started-lessons/3-accessibility/README.md) | ಕ್ರಿಸ್ಟೋಫರ್ | +| 04 | JS ಮೂಲಭೂತಗಳು | ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಡೇಟಾ ಟೈಪ್ಸ್ | ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಡೇಟಾ ಟೈಪ್ಸ್‌ನ ಮೂಲಭೂತಗಳು | [ಡೇಟಾ ಟೈಪ್ಸ್](./2-js-basics/1-data-types/README.md) | ಜಾಸ್ಮಿನ್ | +| 05 | JS ಮೂಲಭೂತಗಳು | ಫಂಕ್ಷನ್ಸ್ ಮತ್ತು ಪರಿಹಾರಗಳು | ಅನ್ವಯದ ತರ್ಕದ ಹರಿವನ್ನು ನಿರ್ವಹಿಸಲು ಫಂಕ್ಷನ್‌ಗಳು ಮತ್ತು ಪರಿಹಾರಗಳ ಕುರಿತು ಕಲಿಯಿರಿ | [ಫಂಕ್ಷನ್ಸ್ ಮತ್ತು ಪರಿಹಾರಗಳು](./2-js-basics/2-functions-methods/README.md) | ಜಾಸ್ಮಿನ್ ಮತ್ತು ಕ್ರಿಸ್ಟೋಫರ್ | +| 06 | JS ಮೂಲಭೂತಗಳು | JS ಮೂಲಕ ನಿರ್ಣಯ ತೆಗೆದುಕೊಳ್ಳುವುದು | ನಿರ್ಣಯ ತೆಗೆದುಕೊಳ್ಳುವ ವಿಧಾನಗಳನ್ನು ಬಳಸಿ ನೀವು ನಿಮ್ಮ ಕೋಡ್‌ನಲ್ಲಿ ಪರಿಸ್ಥಿತಿಗಳನ್ನು ಸೃಷ್ಟಿಸುವುದನ್ನು ಕಲಿಯಿರಿ | [ನಿರ್ಣಯಗಳು ತೆಗೆದುಕೊಳ್ಳುವುದು](./2-js-basics/3-making-decisions/README.md) | ಜಾಸ್ಮಿನ್ | +| 07 | JS ಮೂಲಭೂತಗಳು | ಅರೆಗಳು ಮತ್ತು ಲೂಪ್ಗಳು | ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್‌ನಲ್ಲಿ ಅರೆಗಳು ಮತ್ತು ಲೂಪ್ಗಳನ್ನು ಬಳಸಿ ಡೇಟಾ ಕೆಲಸ ಮಾಡುವುದು | [ಅರೆಗಳು ಮತ್ತು ಲೂಪ್ಗಳು](./2-js-basics/4-arrays-loops/README.md) | ಜಾಸ್ಮಿನ್ | +| 08 | [ಟೆರಾರಿಯಂ](./3-terrarium/solution/README.md) | HTML ಪ್ರಾಯೋಗಿಕ | ಆನ್ಲೈನ್ ಟೆರಾರಿಯಂ ನಿರ್ಮಿಸಲು HTML ರಚಿಸಿ, ಲೇಔಟ್ ನಿರ್ಮಾಣದ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸಿ | [HTML ಪರಿಚಯ](./3-terrarium/1-intro-to-html/README.md) | ಜೆನ್ | +| 09 | [ಟೆರಾರಿಯಂ](./3-terrarium/solution/README.md) | CSS ಪ್ರಾಯೋಗಿಕ | ಆನ್ಲೈನ್ ಟೆರಾರಿಯಂ ಶೈಲಿ ಮಾಡಲು CSS ಅನ್ನು ನಿರ್ಮಿಸಿ, ಪುಟವನ್ನು ಪ್ರತಿಕ್ರಿಯಾಶೀಲವಾಗಿ ಮಾಡುವ CSS ಮೂಲಭೂತಗಳ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸಿ | [CSS ಪರಿಚಯ](./3-terrarium/2-intro-to-css/README.md) | ಜೆನ್ | +| 10 | [ಟೆರಾರಿಯಂ](./3-terrarium/solution/README.md) | ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಕ್ಲೋಶರ್ಸ್, DOM ಮಾನಿಪ್ಯುಲೇಶನ್ | ಡ್ರ್ಯಾಗ್/ಡ್ರಾಪ್ ಇಂಟರ್ಫೇಸ್ ಆಗಿ ಟೆರಾರಿಯಂ ಕಾರ್ಯನಿರ್ವಹಿಸುವಂತೆ ಮಾಡಲು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ನಿರ್ಮಿಸಿ, ಕ್ಲೋಶರ್ಸ್ ಮತ್ತು DOM ಮಾನಿಪ್ಯುಲೇಶನ್ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸಿ | [ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಕ್ಲೋಶರ್ಸ್, DOM ಮಾನಿಪ್ಯುಲೇಶನ್](./3-terrarium/3-intro-to-DOM-and-closures/README.md) | ಜೆನ್ | +| 11 | [ಟೈಪಿಂಗ್ ಆಟ](./4-typing-game/solution/README.md) | ಟೈಪಿಂಗ್ ಆಟ ನಿರ್ಮಿಸಿ | ನಿಮ್ಮ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಆ್ಯಪ್‌ನ ತರ್ಕವನ್ನು ಚಾಲನೆ ಮಾಡಲು ಕೀಬೋರ್ಡ್ ಘಟನೆಗಳನ್ನು ಹೇಗೆ ಬಳಸುವುದು ಕಲಿಯಿರಿ | [ಇವೆಂಟ್ ಚಾಲಿತ ಕಾರ್ಯಕ್ರಮ](./4-typing-game/typing-game/README.md) | ಕ್ರಿಸ್ಟೋಫರ್ | +| 12 | [ಹಸಿರು ಬ್ರೌಸರ್ ವಿಸ್ತರಣೆ](./5-browser-extension/solution/README.md) | ಬ್ರೌಸರ್‍ಗಳೊಂದಿಗೆ ಕೆಲಸ | ಬ್ರೌಸರ್ ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ, ಅವರ ಇತಿಹಾಸ ಮತ್ತು ಬ್ರೌಸರ್ ವಿಸ್ತರಣೆಯ ಮೊದಲ ಉಲ್ಲೇಖಗಳನ್ನು ಹೇಗೆ ವ್ಯಾಪಾರ ಮಾಡಬೇಕು ಕಲಿಯಿರಿ | [ಬ್ರೌಸರ್ ಗಳ ಕುರಿತು](./5-browser-extension/1-about-browsers/README.md) | ಜೆನ್ | +| 13 | [ಹಸಿರು ಬ್ರೌಸರ್ ವಿಸ್ತರಣೆ](./5-browser-extension/solution/README.md) | ರೂಪವನ್ನು ನಿರ್ಮಿಸುವುದು, API ಕರೆ ಮತ್ತು ಸ್ಥಳೀಯ ಸಂಗ್ರಹದಲ್ಲಿ ಬದಲಾವಣೆಗಳನ್ನು ನುಡಿಸುವುದು | API ಕರೆ ಮಾಡಲು ಮತ್ತು ಸ್ಥಳೀಯ ಸಂಗ್ರಹದಲ್ಲಿ ಬದಲಾವಣೆಗಳನ್ನು ಬಳಸುವ ನಿಮ್ಮ ಬ್ರೌಸರ್ ವಿಸ್ತರಣೆ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಅಂಶಗಳನ್ನು ನಿರ್ಮಿಸಿ | [APIಗಳು, ರೂಪಗಳು, ಮತ್ತು ಸ್ಥಳೀಯ ಸಂಗ್ರಹ](./5-browser-extension/2-forms-browsers-local-storage/README.md) | ಜೆನ್ | +| 14 | [ಹಸಿರು ಬ್ರೌಸರ್ ವಿಸ್ತರಣೆ](./5-browser-extension/solution/README.md) | ಬ್ರೌಸರ್‌ನ ಹಿನ್ನೆಲೆ ಪ್ರಕ್ರಿಯೆಗಳು, ವೆಬ್ ಕಾರ್ಯಕ್ಷಮತೆ | ವಿಸ್ತರಣೆಯ ಐಕಾನ್ ನಿರ್ವಹಿಸಲು ಬ್ರೌಸರ್‌ನ ಹಿನ್ನೆಲೆ ಪ್ರಕ್ರಿಯೆಗಳ ಬಳಕೆ; ವೆಬ್ ಕಾರ್ಯಕ್ಷಮತೆಯ ಬಗ್ಗೆ ಮತ್ತು ಅದನ್ನು ಸುಧಾರಿಸುವ ಕೆಲವು ತಂತ್ರಗಳನ್ನು ಕಲಿಯಿರಿ | [ಹಿನ್ನೆಲೆ ಕೆಲಸಗಳು ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆ](./5-browser-extension/3-background-tasks-and-performance/README.md) | ಜೆನ್ | +| 15 | [ಸ್ಪೇಸ್ ಆಟ](./6-space-game/solution/README.md) | ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ನೊಂದಿಗೆ ಹೆಚ್ಚು ಉನ್ನತ ಆಟ ಅಭಿವೃದ್ಧಿ | ವರ್ಗಗಳು ಮತ್ತು ಸಂಯೋಜನೆಗಳ ಮೂಲಕ ವಾರ್ಸೆಗೆ ಸಂಬಂಧಿಸಿದ ದರಸ್ಥಿತಿಯನ್ನು ಮತ್ತು Pub/Sub ಮಾದರಿಯನ್ನು ಕುರಿತು ಕಲಿಯಿರಿ, ಆಟ ನಿರ್ಮಿಸಲು ತಯಾರಿ | [ಅಧಿಕೃತ ಆಟ ಅಭಿವೃದ್ಧಿಗೆ ಪರಿಚಯ](./6-space-game/1-introduction/README.md) | ಕ್ರಿಸ್ | +| 16 | [ಸ್ಪೇಸ್ ಆಟ](./6-space-game/solution/README.md) | ಕ್ಯಾನ್ವಾಸ್ ರೇಖಾಚಿತ್ರ | ಪರದೆಯ ಮೇಲೆ ಅಂಶಗಳನ್ನು ರೇಖಿಸಲು ಬಳಕೆಯಲ್ಲಿರುವ ಕ್ಯಾಂವಾಸ್ API ಬಗ್ಗೆ ಕಲಿಯಿರಿ | [ಕ್ಯಾನ್ವಾಸ್ ರೇಖಾಚಿತ್ರ](./6-space-game/2-drawing-to-canvas/README.md) | ಕ್ರಿಸ್ | +| 17 | [ಸ್ಪೇಸ್ ಆಟ](./6-space-game/solution/README.md) | ಪರದೆಯ ಮೇಲಿನ ಅಂಶಗಳನ್ನು ಚಲಿಸುವುದು | ಸಂತಲನ ಸಂಕೇತಗಳನ್ನು ಮತ್ತು ಕ್ಯಾನ್ವಾಸ್ API ಬಳಸಿ ಅಂಶಗಳು ಚಲಿಸುವಿಕೆಯನ್ನು ಹೇಗೆ ಹೊಂದುತ್ತವೆ ಎಂಬುದನ್ನು ಕಂಡುಹಿಡಿಯಿರಿ | [ಅಂಶಗಳು ಚಲಿಸುವಿಕೆ](./6-space-game/3-moving-elements-around/README.md) | ಕ್ರಿಸ್ | +| 18 | [ಸ್ಪೇಸ್ ಆಟ](./6-space-game/solution/README.md) | ಘರ್ಷಣೆ ಗುರುತಿಸುವಿಕೆ | ಅಂಶಗಳು ಪರಸ್ಪರ ಸಂಸ್ಪರ್ಶ ಮತ್ತು ಪ್ರತಿಕ್ರಿಯಿಸಲು ಕೀಪ್ರೆಸ್ ಬಳಸಿ ಮತ್ತು ಆಟದ ಕಾರ್ಯಕ್ಷಮತೆ ಖಚಿತಪಡಿಸಲು ಕೂಲ್ಡೌನ್ ಫಂಕ್ಷನ್ ನೀಡುವುದು | [ಘರ್ಷಣೆ ಗುರುತಿಸುವಿಕೆ](./6-space-game/4-collision-detection/README.md) | ಕ್ರಿಸ್ | +| 19 | [ಸ್ಪೇಸ್ ಆಟ](./6-space-game/solution/README.md) | ಅಂಕಗಳನ್ನು ಕಾಯ್ದುಕೊಳ್ಳುವುದು | ಆಟದ ಸ್ಥಿತಿ ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆ ಆಧಾರಿತ ಗಣಿತ ಲೆಕ್ಕಾಚಾರಗಳನ್ನು ನಡೆಸುವುದು | [ಅಂಕಗಳನ್ನು ಕಾಯ್ದುಕೊಳ್ಳುವುದು](./6-space-game/5-keeping-score/README.md) | ಕ್ರಿಸ್ | +| 20 | [ಸ್ಪೇಸ್ ಆಟ](./6-space-game/solution/README.md) | ಆಟ ಕೊನೆಮಾಡಿ ಮತ್ತೆ ಪ್ರಾರಂಭಿಸುವುದು | ಆಟ ಮುಗಿಸುವುದು ಮತ್ತು ಮತ್ತೆ ಪ್ರಾರಂಭಿಸುವ ಬಗೆ, ಆಸ್ತಿಗಳನ್ನು ಸ್ವಚ್ಛಗೊಳಿಸುವುದು ಮತ್ತು ವ್ಯತ್ಯಯ ಮೌಲ್ಯಗಳನ್ನು ಮರುಸೆಟ್ ಮಾಡುವುದು | [ಕೊನೆಯಲ್ಲಿ ಸ್ಥಿತಿ](./6-space-game/6-end-condition/README.md) | ಕ್ರಿಸ್ | +| 21 | [ಬ್ಯಾಂಕಿಂಗ್ ಅಪ್ಲಿಕೇಶನ್](./7-bank-project/solution/README.md) | ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್‌ನಲ್ಲಿ HTML ಟೆಂಪ್ಲೇಟ್ಸ್ ಮತ್ತು ಮಾರ್ಗಗಳು | ಮಾರ್ಗದರ್ಶನ ಮತ್ತು HTML ಟೆಂಪ್ಲೇಟುಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಬಹುಪುಟ ಡಿಝೈನ್ ಶಿಲ್ಪವನ್ನು ರಚಿಸುವ ಬಗ್ಗೆ ಕಲಿಯಿರಿ | [HTML ಟೆಂಪ್ಲೇಟ್ಸ್ ಮತ್ತು ಮಾರ್ಗಗಳು](./7-bank-project/1-template-route/README.md) | ಯೋಹಾನ್ | +| 22 | [ಬ್ಯಾಂಕಿಂಗ್ ಅಪ್ಲಿಕೇಶನ್](./7-bank-project/solution/README.md) | ಲಾಗಿನ್ ಮತ್ತು ನೋಂದಣಿ ಫಾರ್ಮ್ ನಿರ್ಮಿಸಿ | ಫಾರ್ಮ್‌ಗಳು ರಚಿಸುವುದು ಮತ್ತು ಮಾನ್ಯತೆ ವಿಧಾನದ ಕೈಗಾರಿಕೆಗಳ ಬಗ್ಗೆ ಕಲಿಯಿರಿ | [ಫಾರ್ಮ್ಗಳು](./7-bank-project/2-forms/README.md) | ಯೋಹಾನ್ | +| 23 | [ಬ್ಯಾಂಕಿಂಗ್ ಅಪ್ಲಿಕೇಶನ್](./7-bank-project/solution/README.md) | ಡೇಟಾ ಪಡೆಯುವುದು ಮತ್ತು ಬಳಸುವ ವಿಧಾನಗಳು | ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್‌ನಲ್ಲಿ ಡೇಟಾ ಹೇಗೆ ಬರುತ್ತದೆ ಹಾಗೆಯೇ ಪಡೆಯುವುದು, ಸಂಗ್ರಹಿಸುವುದು ಮತ್ತು ತೊಡೆದು ಹಾಕುವುದು | [ಡೇಟಾ](./7-bank-project/3-data/README.md) | ಯೋಹಾನ್ | +| 24 | [ಬ್ಯಾಂಕಿಂಗ್ ಅಪ್ಲಿಕೇಶನ್](./7-bank-project/solution/README.md) | ರಾಜ್ಯ ನಿರ್ವಹಣೆಯ ಕಲ್ಪನೆಗಳು | ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ರಾಜ್ಯವನ್ನು ಹೇಗೆ ಉಳಿಸುತ್ತದೆ ಮತ್ತು ತಂತ್ರಜ್ಞಾನವನ್ನು ನಿರ್ವಹಿಸುವುದು | [ರಾಜ್ಯ ನಿರ್ವಹಣೆ](./7-bank-project/4-state-management/README.md) | ಯೋಹಾನ್ | +| 25 | [ಬ್ರೌಸರ್ / VScode ಕೋಡ್](../../8-code-editor) | VScode ಜೊತೆಗೆ ಕಾರ್ಯನಿರ್ವಹಣೆ | ಕೋಡ್ ಸಂಪಾದಕ ಬಳುಕುವಿಕೆ ಕಲಿಯಿರಿ| [VScode ಕೋಡ್ ಸಂಪಾದಕ ಬಳಸು](./8-code-editor/1-using-a-code-editor/README.md) | ಕ್ರಿಸ್ | +| 26 | [ಎಐ ಸಹಾಯಕರ](./9-chat-project/README.md) | ಎಐ ಜೊತೆಗೆ ಕಾರ್ಯನಿರ್ವಹಣೆ | ನಿಮ್ಮ ಸ್ವಂತ ಎಐ ಸಹಾಯಕರನ್ನು ನಿರ್ಮಿಸುವುದನ್ನು ಕಲಿಯಿರಿ | [ಎಐ ಸಹಾಯಕ ಪ್ರಾಜೆಕ್ಟ್](./9-chat-project/README.md) | ಕ್ರಿಸ್ | + +## 🏫 ಪಡಗೋಗಿ + +ನಮ್ಮ ಪಾಠಕ್ರಮವು ಎರಡು ಪ್ರಮುಖ ಪಠ್ಯಶಾಸ್ತ್ರೀಯ 원ಪದಗಳನ್ನು ಗಮನದಲ್ಲಿಟ್ಟುಕೊಂಡಿದೆ: +* ಪ್ರಾಜೆಕ್ಟ್ ಆಧಾರಿತ ಕಲಿಕೆ +* ನಿಯಮಿತ ಪ್ರಶ್ನೋತ್ತರಗಳು + +ಕಾರ್ಯಕ್ರಮವು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್, HTML ಮತ್ತು CSS ನ ಮೂಲ ತತ್ವಗಳನ್ನು ಮತ್ತು ನವೀನ ಸಾಧನಗಳು ಮತ್ತು ತಂತ್ರಗಳನ್ನು ಕಲಿಸುತ್ತದೆ, ಇವಳನ್ನು ಇಂದಿನ ವೆಬ್ ಅಭಿವೃದ್ಧಿಕಾರರು ಬಳಸುತ್ತಾರೆ. ವಿದ್ಯಾರ್ಥಿಗಳಿಗೆ ಟೈಪಿಂಗ್ ಆಟ, ವರ್ಚುವಲ್ ಟೆರಾರಿಯಂ, ಪರಿಸರ ಸ್ನೇಹಿ ಬ್ರೌಸರ್ ವಿಸ್ತರಣೆ, ಸ್ಪೇಸ್ ಇನ್ವೇಡರ್ ಶೈಲಿಯ ಆಟ ಮತ್ತು ವ್ಯವಹಾರಗಳಿಗೆ ಬ್ಯಾಂಕಿಂಗ್ ಅಪ್ಲಿಕೇಶನ್ ನಿರ್ಮಿಸುವ ಮೂಲಕ ಅನ್ವಯಿಕ ಅನುಭವವನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವ ಅವಕಾಶ ಸಿಗುತ್ತದೆ. ಸರಣಿಯ ಕೊನೆಯಲ್ಲಿ ವಿದ್ಯಾರ್ಥಿಗಳು ವೆಬ್ ಅಭಿವೃದ್ಧಿಯ ದೃಢ ಆಳವಾದ ತಿಳುವಳಿಕೆಯನ್ನು ಹೊಂದುವರು. + +> 🎓 ನೀವು ಈ ಪಠ್ಯಕ್ರಮದ ಮೊದಲ ಕೆಲವು ಪಾಠಗಳನ್ನು [ಲರ್ನ್ ಪಾಥ್](https://docs.microsoft.com/learn/paths/web-development-101/?WT.mc_id=academic-77807-sagibbon) ಮೂಲಕ ಮೈಕ್ರೋಸಾಫ್ಟ್ ಲರ್ನ್‌ನಲ್ಲಿ ತೆಗೆದುಕೊಳ್ಳಬಹುದು! + +ವಿಷಯವು ಪ್ರಾಜೆಕ್ಟ್‌ಗಳಿಗೆ ಹೊಂದಿಕೊಳ್ಳುವಂತೆ ಮಾಡುವ ಮೂಲಕ ಪ್ರಕ್ರಿಯೆಯನ್ನು ವಿದ್ಯಾರ್ಥಿಗಳಿಗೆ ಹೆಚ್ಚು ಆಸಕ್ತಿಕರವಾಗಿದೆ ಮಾಡುವಂತೆ ಮಾಡಲಾಗಿದೆ ಮತ್ತು ಕಲ್ಪನೆಗಳ ನೆನಪಿನಶೀಲತೆ ಹೆಚ್ಚಾಗುತ್ತದೆ. ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಮೂಲಭೂತಗಳಲ್ಲಿ ಹಲವು ಪ್ರಾರಂಭಿಕ ಪಾಠಗಳನ್ನು ಬರೆದಿದೆ ಮತ್ತು “[ಬಿಗಿನರ್ಸ್ ಸೀರಿಸ್ ಟು: ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)” ವೀಡಿಯೋಗಳ ಸಂಗ್ರಹದಿಂದ ವೀಡಿಯೋಗಳನ್ನು ಜೋಡಿಸಿದೆ, ಕೆಲವು ಲೇಖಕರು ಈ ಪಠ್ಯಕ್ರಮಕ್ಕೆ ಕೊಡುಗೆ ನೀಡಿದ್ದಾರೆ. + +ಇನ್ನು, ತರಗತಿಯ ಮೊದಲು ಕಡಿಮೆ ಒತ್ತಡದ ಪ್ರಶ್ನೋತ್ತರವು ವಿದ್ಯಾರ್ಥಿಗಳ ಆಸಕ್ತಿಯನ್ನು ಕಲಿಕೆ ತತ್ತ್ವದ ಕಡೆಗೆ ಸ್ಥಾಪಿಸುತ್ತದೆ, ಮತ್ತು ನಂತರದ ಪ್ರಶ್ನೋತ್ತರವು ಇನ್ನಷ್ಟು ನೆನಪಿನಶೀಲತೆಯನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ. ಈ ಪಠ್ಯಕ್ರಮವನ್ನು ವ್ಯಕ್ತಿಗತಗೊಳಿಸಲು ಮತ್ತು ಮನರಂಜನೀಯವಾಗಿರುವಂತೆ ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ ಮತ್ತು ಪೂರ್ಣವಾಗಿ ಅಥವಾ ಭಾಗವಾಗಿ ತೆಗೆದುಕೊಳ್ಳಬಹುದು. ಪ್ರಾಜೆಕ್ಟ್‌ಗಳು ಸಣ್ಣದಾಗಿಇರದು ಮತ್ತು 12 ವಾರಗಳ ಚಕ್ರದ ಕೊನೆಯಲ್ಲಿ ಹೆಚ್ಚು ಜಟಿಲವಾಗುತ್ತವೆ. + +ನಾವು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಫ್ರೇಮ್ವರ್ಕ್‌ಗಳನ್ನು ಪರಿಚಯಿಸುವುದನ್ನು ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿ ಬಿಟ್ಟುಬಿಟ್ಟಿದ್ದರೂ, ಮುಂದಿನ ಒಳ್ಳೆಯ ಹಾದಿಯಾಗಿದ್ದು ಈ ಪಠ್ಯಕ್ರಮವನ್ನು ಪೂರ್ಣಗೊಳಿಸಿ, ಮತ್ತೊಂದು ವೀಡಿಯೋ ಸಂಗ್ರಹದ ಮೂಲಕ ನೋಡ್.ಜೆಎಸ್ ಬಗ್ಗೆ ಕಲಿಯುವುದು: "[ಬಿಗಿನರ್ರ್ ಸೀರಿಸ್ ಟು: ನೋಡ್.ಜೆಎಸ್](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)". + +> ನಮ್ಮ [ನಡವಳಿ ಸಂಹಿತೆ](CODE_OF_CONDUCT.md) ಮತ್ತು [ಹಾಳು ಕೊಡುಗೆ](CONTRIBUTING.md) ಮಾರ್ಗಸೂಚಿಗಳನ್ನು ವೀಕ್ಷಿಸಿ. ನಿಮ್ಮ ನಿರ್ಮಾಣಾತ್ಮಕ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ನಾವು ಸ್ವಾಗತಿಸುವೆವು! + + +## 🧭 ಅನ್‌ಲೈನ್ ಪ್ರವೇಶ + +ನೀವು [Docsify](https://docsify.js.org/#/) ಬಳಸಿ ಈ ಮಾಹಿತಿಯನ್ನು ಆನ್‌ಲೈನ್ ಇಲ್ಲದೆ ಓದಲು ಸಾಧ್ಯ. ಈ ರೆಪೊವನ್ನು ಫೋರ್ಕ್ ಮಾಡಿ, [Docsify ಇನ್‌ಸ್ಟಾಲ್](https://docsify.js.org/#/quickstart) ಮಾಡಿ ನಿಮ್ಮ ಸ್ಥಳೀಯ ಯಂತ್ರದಲ್ಲಿ, ನಂತರ ರುಟ್ ಫೋಲ್ಡರ್‌ನಲ್ಲಿ `docsify serve` ಅನ್ನು ಟೈಪ್ ಮಾಡಿ. ವೆಬ್‌ಸೈಟ್‌ 3000 ಪೋರ್ಟ್‌ನಲ್ಲಿ ನಿಮ್ಮ ಲೊಕಾಲ್‌ಹೋಸ್ಟ್ ಮೇಲೆ ಸೇವ್ ಆಗುತ್ತದೆ: `localhost:3000`. + +## 📘 PDF + +ಎಲ್ಲಾ ಪಾಠಗಳ PDF ಇವು [ಇಲ್ಲಿ](https://microsoft.github.io/Web-Dev-For-Beginners/pdf/readme.pdf) ಕಾಣಬಹುದು. + + +## 🎒 ಇತರ ಕೋರ್ಸ್ಗಳು +ನಮ್ಮ ತಂಡವು ಇತರ ಕೋರ್ಸುಗಳನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ! ನೋಡಿ: + + +### LangChain +[![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) +[![LangChain.js for Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) + +--- + +### ಅಜೂರ್ / ಎಡ್ಜ್ / MCP / ಏಜೆಂಟ್ಗಳು +[![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) + +--- + +### ಜನರೇಟಿವ್ AI ಸರಣಿ +[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) + +--- + +### ಕೋರ್ ಲರ್ನಿಂಗ್ +[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) + +--- + +### ಕೋಪೈಲಟ್ ಸರಣಿ +[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) + + +## ಸಹಾಯ ಪಡೆಯುವುದು + +ನೀವು ಅಡಚಣೆ ಎದುರಿಸಿದರೆ ಅಥವಾ AI ಅಪ್‌ಗಳನ್ನು ನಿರ್ಮಿಸುವ ಬಗ್ಗೆ ಯಾವುದೇ ಪ್ರಶ್ನೆಗಳಿದ್ದರೆ. MCP ಕುರಿತು ಚರ್ಚೆಗಳಲ್ಲಿ ಅಣುಹೊಡೆಯುವ ವಿದ್ಯಾರ್ಥಿಗಳು ಮತ್ತು ಅನುಭವಿಯ ಡೆವಲಪರ್‌ಗಳಿಗೆ ಸೇರಿ. ಇದು ಒಂದು ಬೆಂಬಲದ ಸಮುದಾಯ, ಇಲ್ಲಿ ಪ್ರಶ್ನೆಗಳು ಸ್ವಾಗತಾರ್ಹವಾಗಿದ್ದು, ಜ್ಞಾನವನ್ನು ಮುಕ್ತವಾಗಿ ಹಂಚಿಕೊಳ್ಳುತ್ತಾರೆ. + +[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) + +ನೀವು ಉತ್ಪನ್ನ ಫೀಡ್‌ಬ್ಯಾಕ್ ಅಥವಾ ನಿರ್ಮಾಣದ ಸಂದರ್ಭದಲ್ಲಿ ದೋಷಗಳು ಇದ್ದರೆ ಭೇಟಿ ನೀಡಿರಿ: + +[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) + +## ಪರವಾನಗಿ + +ಈ ರೆಪೊಸಿಟರಿಯನ್ನು MIT ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ ಪ್ರಕಾಶಿಸಲಾಗಿದೆ. ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ [LICENSE](../../LICENSE) ಫೈಲ್ ನೋಡಿ. + +--- + + +**ತ್ಯಾಜ್ಯ ಸೂಚನೆ**: +ಈ ದಸ್ತಾವೇಜನ್ನು AI ಭಾಷಾಂತರ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಭಾಷಾಂತರಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯತ್ತ ಪ್ರಯತ್ನ ಮಾಡುತ್ತಿರলেও, ಸ್ವಯಂಚಾಲಿತ ಭಾಷಾಂತರಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅನಿನ್ಯಾಸಗಳಿರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿ ಇರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಬಗೆಗಿನ ಮೂಲ ಎಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗೆ ವೃತ್ತಿಪರ ಮಾನವ ಭಾಷಾಂತರವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಭಾಷಾಂತರ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡುಕೊಳ್ಳುವಿಕೆಗಳಿಗೆ ನಾವು ಜವಾಬ್ದಾರಿಗಳಲ್ಲ. + \ No newline at end of file diff --git a/translations/kn/SECURITY.md b/translations/kn/SECURITY.md new file mode 100644 index 000000000..421f3cf0d --- /dev/null +++ b/translations/kn/SECURITY.md @@ -0,0 +1,53 @@ + +## ಭದ್ರತೆ + +Microsoft ನಮ್ಮ ಸಾಫ್ಟ್‌ವೇರ್ ಉತ್ಪನ್ನಗಳು ಮತ್ತು ಸೇವೆಗಳ ಭದ್ರತೆಯನ್ನು ಗಂಭೀರವಾಗಿ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ, ಇದರಲ್ಲಿ ನಮ್ಮ GitHub ಸಂಸ್ಥೆಗಳ ಮೂಲಕ ನಿರ್ವಹಿಸಲಾದ ಎಲ್ಲಾ ಮೂಲಕೋಡ್ ರೆಪೊಸಿಟರಿಗಳು ಸೇರಿವೆ, ಇದರಲ್ಲಿ [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), ಮತ್ತು [ನಮ್ಮ GitHub ಸಂಸ್ಥೆಗಳು](https://opensource.microsoft.com/?WT.mc_id=academic-77807-sagibbon) ಸೇರಿವೆ. + +ನೀವು ಯಾವುದೇ Microsoft-ಸ್ವದಂತ ರೆಪೊಸಿಟರಿಯಲ್ಲಿ [Microsoft ಭದ್ರತಾ ಹಾಳಾಗುವಿಕೆಗೆ ವ್ಯಾಖ್ಯಾನಿಸಿರುವ](https://docs.microsoft.com/previous-versions/tn-archive/cc751383(v=technet.10)/?WT.mc_id=academic-77807-sagibbon) ಭದ್ರತಾ ದೌರ್ಬಲ್ಯವನ್ನು ಕಂಡುಹಿಡಿದಿದ್ದೀರಿ ಎಂದು ನಂಬಿದರೆ, ದಯವಿಟ್ಟು ಕೆಳಗೆ ವಿವರಣೆಮಾಡಿದಂತೆ ಅದನ್ನು ನಮಗೆ ವರದಿ ಮಾಡಿ. + +## ಭದ್ರತಾ ಸಮಸ್ಯೆಗಳನ್ನು ವರದಿ ಮಾಡುವುದು + +**ದಯವಿಟ್ಟು ಸಾರ್ವಜನಿಕ GitHub ಸಮಸ್ಯೆಗಳ ಮೂಲಕ ಭದ್ರತಾ ದೌರ್ಬಲ್ಯಗಳನ್ನು ವರದಿ ಮಾಡಬೇಡಿ.** + +ಬದಲಾಗಿ, ದಯವಿಟ್ಟು Microsoft ಭದ್ರತಾ ಪ್ರತಿಕ್ರಿಯೆ ಕೇಂದ್ರಕ್ಕೆ (MSRC) [https://msrc.microsoft.com/create-report](https://msrc.microsoft.com/create-report/?WT.mc_id=academic-77807-sagibbon) ನಲ್ಲಿ ವರದಿ ಮಾಡಿ. + +ನೀವು ಲಾಗಿನ್ ಮಾಡದೆ ಸಲ್ಲಿಸಲು ಇಚ್ಛಿಸಿದರೆ, [secure@microsoft.com](mailto:secure@microsoft.com) ಗೆ ಇಮೇಲ್ ಕಳುಹಿಸಿ. ಸಾಧ್ಯವಾಗಿದ್ದರೆ, ನಮ್ಮ PGP ಕೀ ಬಳಸಿ ನಿಮ್ಮ ಸಂದೇಶವನ್ನು ಎನ್ಕ್ರಿಪ್ಟ್ ಮಾಡಿ; ಅದನ್ನು [Microsoft ಭದ್ರತಾ ಪ್ರತಿಕ್ರಿಯೆ ಕೇಂದ್ರ PGP ಕೀ ಪುಟ](https://www.microsoft.com/msrc/pgp-key-msrc/?WT.mc_id=academic-77807-sagibbon) ನಿಂದ ಡೌನ್‌ಲೋಡ್ ಮಾಡಬಹುದು. + +ನೀವು 24 ಗಂಟೆಗಳ ಒಳಗೆ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಪಡೆಯಬೇಕು. ಯಾವುದೇ ಕಾರಣಕ್ಕಾಗಿ ಅದಾಗದಿದ್ದರೆ, ದಯವಿಟ್ಟು ನಾವು ನಿಮ್ಮ ಮೂಲ ಸಂದೇಶವನ್ನು ಪಡೆದಿದ್ದೇವೆ ಎಂದು ಖಚಿತಪಡಿಸಲು ಇಮೇಲ್ ಮೂಲಕ ಅನುಸರಿಸಿ. ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ [microsoft.com/msrc](https://www.microsoft.com/msrc/?WT.mc_id=academic-77807-sagibbon) ನೋಡಿ. + +ದಯವಿಟ್ಟು ಕೆಳಗಿನ ವಿನಂತಿಸಲಾದ ಮಾಹಿತಿಯನ್ನು (ನೀವು ನೀಡಬಹುದಾದಷ್ಟು) ಸೇರಿಸಿ, ಇದು ಸಮಸ್ಯೆಯ ಸ್ವಭಾವ ಮತ್ತು ವ್ಯಾಪ್ತಿಯನ್ನು ಉತ್ತಮವಾಗಿ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ: + + * ಸಮಸ್ಯೆಯ ಪ್ರಕಾರ (ಉದಾ: ಬಫರ್ ಓವರ್‌ಫ್ಲೋ, SQL ಇಂಜೆಕ್ಷನ್, ಕ್ರಾಸ್-ಸೈಟ್ ಸ್ಕ್ರಿಪ್ಟಿಂಗ್, ಇತ್ಯಾದಿ) + * ಸಮಸ್ಯೆಯ ಪ್ರಕಟಣೆಗೆ ಸಂಬಂಧಿಸಿದ ಮೂಲ ಫೈಲ್‌ಗಳ ಸಂಪೂರ್ಣ ಮಾರ್ಗಗಳು + * ಪ್ರಭಾವಿತ ಮೂಲ ಕೋಡ್‌ನ ಸ್ಥಳ (ಟ್ಯಾಗ್/ಬ್ರಾಂಚ್/ಕಮಿಟ್ ಅಥವಾ ನೇರ URL) + * ಸಮಸ್ಯೆಯನ್ನು ಪುನರಾವರ್ತಿಸಲು ಅಗತ್ಯವಿರುವ ಯಾವುದೇ ವಿಶೇಷ ಸಂರಚನೆ + * ಸಮಸ್ಯೆಯನ್ನು ಪುನರಾವರ್ತಿಸುವ ಹೆಜ್ಜೆ ಹಂತದ ಸೂಚನೆಗಳು + * ಸಾಬೀತು-ಆಫ್-ಕಾನ್ಸೆಪ್ಟ್ ಅಥವಾ ಎಕ್ಸ್‌ಪ್ಲಾಯಿಟ್ ಕೋಡ್ (ಸಾದ್ಯವಾದರೆ) + * ಸಮಸ್ಯೆಯ ಪರಿಣಾಮ, ಹೇಗೆ ಆಕ್ರಮಣಕಾರಿ ಸಮಸ್ಯೆಯನ್ನು ದುರುಪಯೋಗ ಮಾಡಬಹುದು ಎಂಬುದರ ಒಳಗೊಂಡಂತೆ + +ಈ ಮಾಹಿತಿ ನಿಮ್ಮ ವರದಿಯನ್ನು ವೇಗವಾಗಿ ವಿಂಗಡಿಸಲು ನಮಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ. + +ನೀವು ಬಗ್ ಬೌಂಟಿಗಾಗಿ ವರದಿ ಮಾಡುತ್ತಿದ್ದರೆ, ಹೆಚ್ಚು ಸಂಪೂರ್ಣ ವರದಿಗಳು ಹೆಚ್ಚಿನ ಬೌಂಟಿ ಬಹುಮಾನಕ್ಕೆ ಸಹಾಯಮಾಡಬಹುದು. ದಯವಿಟ್ಟು ನಮ್ಮ [Microsoft Bug Bounty Program](https://microsoft.com/msrc/bounty/?WT.mc_id=academic-77807-sagibbon) ಪುಟ ಭೇಟಿನೀಡಿ ನಮ್ಮ ಸಕ್ರಿಯ ಕಾರ್ಯಕ್ರಮಗಳ ಕುರಿತು ಹೆಚ್ಚಿನ ವಿವರಗಳಿಗೆ. + +## ಅಗತ್ಯ ಭಾಷೆಗಳು + +ನಾವು ಎಲ್ಲಾ ಸಂವಹನಗಳು ಇಂಗ್ಲಿಷ್‌ನಲ್ಲಿ ಇರಬೇಕೆಂದು ಇಚ್ಛಿಸುತ್ತೇವೆ. + +## ನೀತಿ + +Microsoft [ಸಮನ್ವಿತ ದೌರ್ಬಲ್ಯ ಬಹಿರಂಗಪಡಿಸುವಿಕೆ](https://www.microsoft.com/msrc/cvd/?WT.mc_id=academic-77807-sagibbon) ತತ್ವವನ್ನು ಅನುಸರಿಸುತ್ತದೆ. + +--- + + +**ತಪ್ಪು ತಿಳಿಸುವಿಕೆ**: +ಈ ದಾಖಲೆ AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ಶುದ್ಧತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತೇವೆ, ಆದರೆ ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ತಪ್ಪುಗಳಿರುವ ಸಾಧ್ಯತೆ ಇದೆ. ಮೂಲ ದಸ್ತಾವೇಜು ಅದರ ಮೂಲ ಭಾಷೆಯಲ್ಲಿ ನಂಬಿಕೆಸಂಚಿತ աղբյուրವಾಗಿರಬೇಕು. ಮುಖ್ಯ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ಅರ್ಥಬಾಧಿತೃಟಟಕೆಗಳ ಅಥವಾ ತಪ್ಪಿನಾಖ್ಯಾನಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ. + \ No newline at end of file diff --git a/translations/kn/SUPPORT.md b/translations/kn/SUPPORT.md new file mode 100644 index 000000000..98ad5f1bb --- /dev/null +++ b/translations/kn/SUPPORT.md @@ -0,0 +1,27 @@ + +# ಬೆಂಬಲ + +## ಸಮಸ್ಯೆಗಳನ್ನು ಹೇಗೆ ದಾಖಲಿಸಿ ಮತ್ತು ಸಹಾಯ ಪಡೆಯಿರಿ + +ಈ ಯೋಜನೆ ದೋಷಗಳು ಮತ್ತು ವೈಶಿಷ್ಟ್ಯ ವಿನಂತಿಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಲು GitHub Issues ಅನ್ನು ಬಳಸುತ್ತದೆ. ನಕಲುಗಳನ್ನು ತಪ್ಪಿಸಲು ದಯವಿಟ್ಟು ಹೊಸ ಸಮಸ್ಯೆಗಳನ್ನು ದಾಖಲಿಸುವ ಮೊದಲು ಇExisting ಸಮಸ್ಯೆಗಳನ್ನು ಹುಡುಕಿ. ಹೊಸ ಸಮಸ್ಯೆಗಳಿಗಾಗಿ, ನಿಮ್ಮ ದೋಷ ಅಥವಾ ವೈಶಿಷ್ಟ್ಯ ವಿನಂತಿಯನ್ನು ಹೊಸ ಸಮಸ್ಯೆಯಾಗಿ ದಾಖಲಿಸಿ. + +ಈ ಯೋಜನೆಯನ್ನು ಬಳಸುವುದು ಕುರಿತು ಸಹಾಯ ಮತ್ತು ಪ್ರಶ್ನೆಗಳಿಗೆ, ದಯವಿಟ್ಟು [ನಮ್ಮ ಕೊಡುಗೆ ಮಾರ್ಗಸೂಚಿಗಳನ್ನು](CONTRIBUTING.md) ನೋಡಿ. + +## ಮೈಕ್ರೋಸಾಫ್ಟ್ ಬೆಂಬಲ ಧೋರಣೆ + +ಈ ಯೋಜನೆಗೆ ಬೆಂಬಲವು ಮೇಲ್ಕಾಣಿಸಿದ ಸಂಪನ್ಮೂಲಗಳಿಗೆ ಸೀಮಿತವಾಗಿದೆ. + +--- + + +**ವಿಮರ್ಶಾ ಪ್ರತ್ಯಯ**: +ಈ ದಸ್ತಾವೇಜು [Co-op Translator](https://github.com/Azure/co-op-translator) ಎಂಬ AI ಭಾಷಾಂತರ ಸೇವೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ಶುದ್ಧತೆಯ ಬಗ್ಗೆ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಭಾಷಾಂತರಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ಅಸಮರ್ಥತೆಗಳ ಕಾಣಿಕೆಗಳಾಗಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ದಸ್ತಾವೇಜಿನ ಮೂಲ ಭಾಷೆಯ ಆವೃತ್ತಿಯೇ ಪ್ರಾಧಿಕಾರೀ ಮೂಲ ಎನ್ನುಕೊಳ್ಳಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ ವೃತ್ತಿಪರ ಮಾನವ ಭಾಷಾಂತರವನ್ನು ಶിപಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಭಾಷಾಂತರದ ಬಳಕೆಗಳಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ದ್ವಂದ್ವಾಭಿವೃದ್ಧಿಗಳು ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಲ್ಲ. + \ No newline at end of file diff --git a/translations/kn/_404.md b/translations/kn/_404.md new file mode 100644 index 000000000..92010d348 --- /dev/null +++ b/translations/kn/_404.md @@ -0,0 +1,23 @@ + +# ಕಾರ್ಯ ಪ್ರಗತಿಯಲ್ಲಿದೆ + +ನಾವು ಈ ಪುಟ üzerinde ಕೆಲಸ ಮಾಡುತ್ತಿರುವೇವೆ. ದಯವಿಟ್ಟು ನಂತರಮೋದಲೋ ಸಮೀಕ್ಷಿಸಿ. + +ನಿಮಗೆ ಯಾವುದೇ ಪ್ರಶ್ನೆಗಳಿದ್ದರೆ, ದಯವಿಟ್ಟು [issue](https://github.com/microsoft/Web-Dev-For-Beginners/issues/new/choose) ತೆರೆಯಿರಿ. + +**[ಮನೆಗೆ ಹಿಂತಿರುಗಿ](../../../../../../..)** + +--- + + +**ಹೆಚ್ಚಿನ ಮಾಹಿತಿ**: +ಈ ದಸ್ತಾವೇಜನ್ನು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ಶುದ್ದತೆಯನ್ನು ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಪ್ರೇರಿತ ಅಥವಾ ಯಂತ್ರ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದಾಗಿದೆ ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿ ಇರುವ ಮೌಲಿಕ ದಸ್ತಾವೇಜಿನನ್ನೇ ಮೂಲವಾಗಿ ಪರಿಗಣಿಸುವುದು ಸೂಕ್ತ. ಮಹತ್ವಪೂರ್ಣ ಮಾಹಿತಿಗಾಗಿ ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದವನ್ನು ಬಳಸುವಾಗ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಕಲ್ಪನೆಗಳು ಅಥವಾ ತಪ್ಪು ವ್ಯಾಖ್ಯಾನಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಲ್ಲ. + \ No newline at end of file diff --git a/translations/kn/docs/_navbar.md b/translations/kn/docs/_navbar.md new file mode 100644 index 000000000..ab58d29df --- /dev/null +++ b/translations/kn/docs/_navbar.md @@ -0,0 +1,36 @@ + +- Translations + - [English (United States)](../../../docs/README) + - [বাংলা](../../../docs/README.bn) + - [中文(中国)](../../../docs/README.zh-cn) + - [中文(台湾)](../../../docs/README.zh-tw) + - [Español](../../../docs/README.es) + - [Français](../../../docs/README.fr) + - [Ελληνικά](../../../docs/README.el) + - [हिन्दी](../../../docs/README.hi) + - [Bahasa Melayu](../../../docs/README.ms) + - [മലയാളം](../../../docs/README.ml) + - [தமிழ்](../../../docs/README.ta) + - [తెలుగు](../../../docs/README.te) + - [Bahasa Indonesia](../../../docs/README.id) + - [Italiano](../../../docs/README.it) + - [日本語](../../../docs/README.ja) + - [Nederlands](../../../docs/README.nl) + - [नेपाली](../../../docs/README.np) + - [Português](../../../docs/README.pt) + - [Русский](../../../docs/README.ru) + +--- + + +**ತ್ಯಾಗಪತ್ರಿಕೆ**: +ಈ ದಾಖಲೆವು AI ಭಾಷಾಂತರ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಭಾಷಾಂತರಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಗೆ ಪ್ರಯತ್ನಿಸುವಾಗ, ಸ್ವಯಂಚಾಲಿತ ಭಾಷಾಂತರಗಳಲ್ಲಿ ತೃಟಿಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂಬುದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯ ಈ ದಾಖಲೆ ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಪ್ರಮುಖ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಭಾಷಾಂತರ ಶಿಫಾರಸು ಮಾಡಲ್ಪಡುತ್ತದೆ. ಈ ಭಾಷಾಂತರ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪುಮನೋಭಾವ ಅಥವಾ ತಪ್ಪು ಅರ್ಥಗಳು ಕುರಿತು ನಾವು ಜವಾಬ್ದಾರಿಯಲ್ಲ. + \ No newline at end of file diff --git a/translations/kn/docs/_sidebar.md b/translations/kn/docs/_sidebar.md new file mode 100644 index 000000000..95a5ebd63 --- /dev/null +++ b/translations/kn/docs/_sidebar.md @@ -0,0 +1,53 @@ + +- ಪರಿಚಯ + - [1](../1-getting-started-lessons/1-intro-to-programming-languages/README.md) + - [2](../1-getting-started-lessons/2-github-basics/README.md) + - [3](../1-getting-started-lessons/3-accessibility/README.md) + +- ಜೆಎಸ್ ಮೂಲಭೂತಗಳು + - [4](../2-js-basics/1-data-types/README.md) + - [5](../2-js-basics/2-functions-methods/README.md) + - [6](../2-js-basics/3-making-decisions/README.md) + - [7](../2-js-basics/4-arrays-loops/README.md) + +- ಎಚ್ಟಿಎಮ್ಎಲ್, ಸಿಎಸ್ಎಸ್, ಜೆಎಸ್ + - [8](../3-terrarium/1-intro-to-html/README.md) + - [9](../3-terrarium/2-intro-to-css/README.md) + - [10](../3-terrarium/3-intro-to-DOM-and-closures/README.md) + +- ಟೈಪಿಂಗ್ ಗೇಮ್ + - [11](../4-typing-game/typing-game/README.md) + +- ಬ್ರೌಸರ‍್ ಎಕ್ಸ್ಟೆಂಶನ್ + - [12](../5-browser-extension/1-about-browsers/README.md) + - [13](../5-browser-extension/2-forms-browsers-local-storage/README.md) + - [14](../5-browser-extension/3-background-tasks-and-performance/README.md) + +- ಸ್ಪೇಸ್ ಗೇಮ್ + - [15](../6-space-game/1-introduction/README.md) + - [16](../6-space-game/2-drawing-to-canvas/README.md) + - [17](../6-space-game/3-moving-elements-around/README.md) + - [18](../6-space-game/4-collision-detection/README.md) + - [19](../6-space-game/5-keeping-score/README.md) + - [20](../6-space-game/6-end-condition/README.md) + +- ಬ್ಯಾಂಕ್ ಪ್ರಾಜೆಕ್ಟ್ + - [21](../7-bank-project/1-template-route/README.md) + - [22](../7-bank-project/2-forms/README.md) + - [23](../7-bank-project/3-data/README.md) + - [24](../7-bank-project/4-state-management/README.md) + +--- + + +**ಜಾಬಿತೆ**: +ಈ ದಾಖಲೆಯನ್ನು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ಸರಿಯಾದ ಅನುವಾದಕ್ಕೆ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ,ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸതತ್ಯತೆಗಳಿರಬಹುದು ಎಂದು ತಿಳಿದುಕೊಳ್ಳಿ. ಮೂಲ ದಾಖಲೆ ಅದರ ಸ್ವದೇಶಿ ಭಾಷೆಯಲ್ಲಿ ಅಧಿಕೃತ ಮೂಲ ಎಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಗುರ್ತಿಸದ ಅಥವಾ ತಪ್ಪಾದ ಅರ್ಥಗಳಿಗೆ ನಾವು ಜವಾಬ್ದಾರರಾಗಿಲ್ಲ. + \ No newline at end of file diff --git a/translations/kn/for-teachers.md b/translations/kn/for-teachers.md new file mode 100644 index 000000000..6dcdbd069 --- /dev/null +++ b/translations/kn/for-teachers.md @@ -0,0 +1,80 @@ + +### ಶಿಕ್ಷಕರಿಗೆ + +ನೀವು ಈ ಪಠ್ಯಕ್ರಮವನ್ನು ನಿಮ್ಮ ತರಗತಿಯಲ್ಲಿ ಬಳಸಲು ಸ್ವಾಗತಾರ್ಹರಾಗಿದ್ದೀರಿ. ಇದು GitHub Classroom ಮತ್ತು ಪ್ರಮುಖ LMS ವೇದಿಕೆಗಳೊಂದಿಗೆ ಸಿಹಿ ಸಮನ್ವಯವಾಗಿ ಕೆಲಸ ಮಾಡುತ್ತದೆ, ಮತ್ತು ಇದು ನಿಮ್ಮ ವಿದ್ಯಾರ್ಥಿಗಳೊಂದಿಗೆ ಸ್ವತಂತ್ರ ರಿಪೊ ಆಗಿಯೂ ಬಳಸಬಹುದು. + +### GitHub Classroom ಜೊತೆಗೆ ಬಳಸಿ + +ಪ್ರತಿ ಗುಂಪು ಪ್ರಕಾರ ಪಾಠಗಳು ಮತ್ತು ಹುದ್ದೆಗಳನ್ನು ನಿರ್ವಹಿಸಲು, ಪ್ರತಿ ಪಾಠಕ್ಕೆ ಒಂದೊಂದು ರಿಪೊವನ್ನು ಸೃಷ್ಟಿಸಿ ಅಂತೆ GitHub Classroom ಪ್ರತಿ ಹುದ್ದೆಯನ್ನು ಸ್ವತಂತ್ರವಾಗಿ ಜೋಡಿಸಬಹುದು. + +- ಈ ರಿಪೊವನ್ನು ನಿಮ್ಮ ಸಂಸ್ಥೆಗೆ ಫೋರ್ಕ್ ಮಾಡಿ. +- ಪ್ರತಿ ಪಾಠಕ್ಕಾಗಿ ಪ್ರತ್ಯೇಕ ರಿಪೊ ಅನ್ನು ರಚಿಸಿ, ಪ್ರತಿ ಪಾಠದ ಫೋಲ್ಡರ್‌ನ ವಿಷಯಗಳನ್ನು ಅದರಲ್ಲಿಗೆ ಹೊರತಗೊಳ್ಳಿ. + - ಆಯ್ಕೆ A: ಖಾಲಿ ರಿಪೊಗಳನ್ನು (ಪ್ರತಿ ಪಾಠಕ್ಕೆ ಒಂದು) ರಚಿಸಿ ಮತ್ತು ಪಾಠ ಫೋಲ್ಡರ್ ವಿಷಯಗಳನ್ನು ಪ್ರತಿಯೊಂದರಲ್ಲಿಗೆ ನಕಲು ಮಾಡಿ. + - ಆಯ್ಕೆ B: If provenance is needed, use Git ಇತಿಹಾಸವನ್ನು ಉಳಿಸುವ ವಿಧಾನವನ್ನು ಅನುಸರಿಸಿ (ಉದಾ: ಫೋಲ್ಡರ್ ಅನ್ನು ಹೊಸ ರಿಪೊಗೆ ವಿಭಜಿಸುವುದು). +- GitHub Classroom ನಲ್ಲಿ, ಪ್ರತಿ ಪಾಠಕ್ಕೆ ಒಂದು ಹುದ್ದೆ ಸೃಷ್ಟಿಸಿ ಮತ್ತು ಅದನ್ನು ಸೂಕ್ತ ಪಾಠ ರಿಪೊಗೆ ಸೂಚಿಸಿ. +- ಶಿಫಾರಸು ಮಾಡಲಾದ ಸೆಟ್ಟಿಂಗ್‌ಗಳು: + - ರಿಪೊ ವೀಕ್ಷಣೀಯತೆ: ವಿದ್ಯಾರ್ಥಿಗಳ ಕೆಲಸಕ್ಕೆ ಖಾಸಗಿ ಸೇವನೆ. + - ಸ್ಟಾರ್ಟರ್ ಕೋಡ್ ಪಾಠ ರಿಪೊ ಮೂಲ ಶಾಖೆಯಿಂದ ಬಳಸಿ. + - ಕ್ವಿಜ್‌ಗಳು ಮತ್ತು ಸಲ್ಲಿಕೆಗಳಿಗೆ ಇಷ್ಯೂಗಳು ಮತ್ತು ಪುಲ್ ರಿಕ್ವೆಸ್ಟ್ ಟೆಂಪ್ಲೇಟ್ಗಳನ್ನು ಸೇರಿಸಿ. + - ನಿಮ್ಮ ಪಾಠಗಳಲ್ಲಿ ಇದ್ದರೆ ಸ್ವಯಂಮತ್ಸರಿಗೆ ಮತ್ತು ಪರೀಕ್ಷೆಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿ ಸನ್ನಿಹಿತಗೊಳಿಸಬಹುದು. +- ಸಹಾಯಕ ನಿಯಮಗಳು: + - ರಿಪೊ ಹೆಸರುಗಳು ಹೀಗೆ ಇರಲಿ: lesson-01-intro, lesson-02-html, ಇತ್ಯಾದಿ. + - ಲೇಬಲ್ಗಳು: quiz, assignment, needs-review, late, resubmission. + - ಗುಂಪುಗಳ ಪ್ರಕಾರ ಟ್ಯಾಗ್‌ಗಳು/ವಿಡೀಕರಣಗಳು (ಉದಾ: v2025-term1). + +ಟಿಪ್: Git ಸಂಘರ್ಷಗಳ ತಡೆಗಾಗಿ ಸಿಂಕ್ ಮಾಡಲಾದ ಫೋಲ್ಡರ್‌ಗಳ ಒಳಗೆ (ಉದಾ: OneDrive/Google Drive) ರಿಪೊಗಳನ್ನು ಉಳಿಸುವುದನ್ನು ತಪ್ಪಿಸಿ, ವಿಶೇಷವಾಗಿ Windows ನಲ್ಲಿ. + +### Moodle, Canvas, ಅಥವಾ Blackboard ಜೊತೆ ಬಳಸಿ + +ಈ ಪಠ್ಯಕ್ರಮದಲ್ಲಿ ಸಾಮಾನ್ಯ LMS ಕಾರ್ಯಪ್ರವಾಹಗಳಿಗೆ ಅನ್ವಯಿಸಬಹುದಾದ ಆಮದು ಪ್ಯಾಕೇಜ್ಗಳು ಸೇರಿವೆ. + +- Moodle: ಪೂರ್ಣ ಕೋರ್ಸ್ ಲೋಡ್ ಮಾಡಲು Moodle ಅಪ್ಲೋಡ್ ಫೈಲ್ [Moodle upload file](../../../../../../../teaching-files/webdev-moodle.mbz) ಬಳಸಿ. +- Common Cartridge: ಹೆಚ್ಚಿನ LMS ಹೊಂದಾಣಿಕೆಗೆ Common Cartridge ಫೈಲ್ [Common Cartridge file](../../../../../../../teaching-files/webdev-common-cartridge.imscc) ಬಳಸಿ. +- ಟಿಪ್ಪಣಿಗಳು: + - Moodle ಕ್ಲೌಡ್‌ಗೆ Common Cartridge ಬೆಂಬಲ ಸೀಮಿತವಾಗಿದೆ. ಮೇಲಿನ Moodle ಫೈಲ್‌ನ್ನು ವಿಷಯಪ್ರಕಾರ Canvas ಗೆ ಅಪ್ಲೋಡ್ ಮಾಡಬಹುದು. + - ಆಮದು ನಂತರ, ನೀವು ಉಪನ್ಯಾಸ ಸಮಯಕ್ಕೆ ಸರಿಹೊಂದುವಂತೆ ಮೊಡ್ಯೂಲ್‌ಗಳು, ದಿನಾಂಕಗಳು ಮತ್ತು ಕ್ವಿಜ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಿ. + +![Moodle](../../translated_images/moodle.94eb93d714a50cb2.kn.png) +> Moodle ತರಗತಿಯಲ್ಲಿ ಪಠ್ಯಕ್ರಮ + +![Canvas](../../translated_images/canvas.fbd605ff8e5b8aff.kn.png) +> Canvas ನಲ್ಲಿ ಪಠ್ಯಕ್ರಮ + +### ರಿಪೊ ಅನ್ನು ನೇರವಾಗಿ ಬಳಸಿ (Classroom ಇಲ್ಲದೆ) + +ನೀವು GitHub Classroom ಬಳಸಲು ಇಚ್ಛಿಸದಿದ್ದರೆ, ಈ ರಿಪೊದಿಂದಲೇ ಕೋರ್ಸ್ ನಡೆದುಕೊಳ್ಳಬಹುದು. + +- ಸಹಕಾಲಿಕ/ಆನ್‌ಲೈನ್ ವಿನ್ಯಾಸಗಳು (Zoom/Teams): + - ಸಣ್ಣ ಮಾರ್ಗದರ್ಶಕರಾಗಿರುವ ತಳಮಳಿಸುಗೆಗಳು ಜರುಗಿಸಿ; ಕ್ವಿಜ್‌ಗಳಿಗೆ ಬ್ರೇಕ್‌ಔಟ್ ರೂಮ್‌ಗಳನ್ನು ಬಳಸಿರಿ. + - ಕ್ವಿಜ್‌ಗಳಿಗೆ ಸಮಯ ವಿಂಡೊನ್ನು ಪ್ರಕಟಿಸಿ; ವಿದ್ಯಾರ್ಥಿಗಳು ಉತ್ತರಗಳನ್ನು GitHub Issues ಮೂಲಕ ಸಲ್ಲಿಸುತ್ತಾರೆ. + - ಸಹಕಾರ ಹುದ್ದೆಗಳಿಗೆ, ವಿದ್ಯಾರ್ಥಿಗಳು ಸಾರ್ವಜನಿಕ ಪಾಠ ರಿಪೊಗಳಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸಿ ಪುಲ್ ರಿಕ್ವೆಸ್ಟ್ ತೆರೆಯುತ್ತಾರೆ. +- ಖಾಸಗಿ/ಅಸಹಕರಿಶಾಲಿ ವಿನ್ಯಾಸಗಳು: + - ವಿದ್ಯಾರ್ಥಿಗಳು ತಮ್ಮದೇ ಖಾಸಗಿ ರಿಪೊಗಳಿಗೆ ಪ್ರತಿ ಪಾಠವನ್ನು ಫೋರ್ಕ್ ಮಾಡಿ ಮತ್ತು ನಿಮ್ಮನ್ನು ಸಹಕಾರಿಯಾಗಿ ಸೇರಿಸಿಕೊಳ್ಳುತ್ತಾರೆ. + - ಇಷ್ಯೂಗಳು (ಕ್ವಿಜ್‌ಗಳು) ಮತ್ತು ಪುಲ್ ರಿಕ್ವೆಸ್ಟ್‌ಗಳು (ಹುದ್ದೆಗಳು) ಮೂಲಕ ನೀವು ಅಥವಾ ಅವರು ತಮ್ಮ ಖಾಸಗಿ ರಿಪೊಗಳಲ್ಲಿನ ತರಗತಿ ರಿಪೊಗೆ ಸಲ್ಲಿಕೆ ಮಾಡುತ್ತಾರೆ. + +### ಉತ್ತಮ ಅಭ್ಯಾಸಗಳು + +- Git/GitHub ಮೂಲ बातें, Issues, ಮತ್ತು PRs ಬಗ್ಗೆ ಪರಿಚಯ ಪಾಠವನ್ನು ನೀಡಿರಿ. +- ಎಲೈಗು-ಹಂತೀಯ ಕ್ವಿಜ್/ಹುದ್ದೆಗಳಿಗೆ Issues ನಲ್ಲಿ ಚೆಕ್‌ಲಿಸ್ಟ್‌ಗಳನ್ನು ಬಳಸಿರಿ. +- ತರಗತಿ ನಿಯಮಗಳನ್ನು ಸ್ಥಾಪಿಸಲು CONTRIBUTING.md ಮತ್ತು CODE_OF_CONDUCT.md ಸೇರಿಸಿ. +- ಪ್ರವೇಶ ಸಾಧನಗಳ ಸೂಚನೆಗಳು (alt ಪಠ್ಯ, ಕ್ಯಾಪ್ಶನ್‌ಗಳು) ಮತ್ತು ಮುದ್ರಣযোগ্য PDF ಗಳು ಒದಗಿಸಿ. +- ಸರ್ವರಿಸು ಪ್ರತಿ ಅವಧಿಗೆ ನಿಮ್ಮ ವಿಷಯವನ್ನು ವರ್ಝನ್ ಮಾಡಿ ಮತ್ತು ಪ್ರಕಟಣೆಯ ನಂತರ ಪಾಠ ರಿಪೊಗಳನ್ನು ಸ್ಥಗಿತಗೊಳಿಸಿ. + +### ಪ್ರತಿಕ್ರিয়া ಮತ್ತು ಬೆಂಬಲ + +ನಾವು ಈ ಪಠ್ಯಕ್ರಮವು ನೀವು ಮತ್ತು ನಿಮ್ಮ ವಿದ್ಯಾರ್ಥಿಗಳು ಬಳಸಲು ಸಹಾಯಕವಾಗಿರಲು ಬಯಸುತ್ತೇವೆ. ದಯವಿಟ್ಟು ಈ ರಿಪೊದಲ್ಲಿ ಹೊಸ Issue ತೆರೆಯಿರಿ ದೋಷಗಳು, ವಿನಂತಿಗಳು, ಅಥವಾ ಸುಧಾರಣೆಗಳಿಗೆ, ಅಥವಾ Teacher Corner ನಲ್ಲಿ ಚರ್ಚೆ ಪ್ರಾರಂಭಿಸಿ. + +--- + + +**ಬಾಧ್ಯತಾ ವಿವರಣೆ**: +ಈ ದಾಖಲೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಎಂಬ AI ಅನುವಾದ ಸೇವೆಯನ್ನು ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಗೆ ಪ್ರಯತ್ನಿಸಿದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತೈರ್ಯತೆಗಳು ಅಥವಾ ತಪ್ಪುಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲದ ಭಾಷೆಯಲ್ಲಿ ಇರುವ ಮೂಲ ದಾಖಲೆ ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಲಾಗಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ತಜ್ಞ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ಅರ್ಥಮಾಡಿಕೊಳ್ಳದ ಜೀವಮಾನಗಳಿಗೆ ನಾವು ಹೊಣೆ ಹೊರುವುದಿಲ್ಲ. + \ No newline at end of file diff --git a/translations/kn/lesson-template/README.md b/translations/kn/lesson-template/README.md new file mode 100644 index 000000000..9826fdef7 --- /dev/null +++ b/translations/kn/lesson-template/README.md @@ -0,0 +1,67 @@ + +# [ಪಾಠ ವಿಷಯ] + +![ಇಲ್ಲಿ ವೀಡಿಯೋ ಅನ್ನು ಸೇರಿಸಿ](../../../lesson-template/video-url) + +## [ಪೂರ್ವ-ವಾರ್ತಾ ಪ್ರಶ್ನೋತ್ತರ](../../../lesson-template/quiz-url) + +[ನಾವು ಏನು ಕಲಿಯಲಿದ್ದೇವೆ ಎಂಬುದನ್ನು ವಿವರಿಸಿ] + +### ಪರಿಚಯ + +ಏನು ಒಳಗೊಂಡಿರುತ್ತದೆ ಎಂದು ವಿವರಿಸಿ + +> ನೋಟ್ಸ್ + +### ಪೂರ್ವಾವಶ್ಯಕತೆ + +ಈ ಪಾಠಕ್ಕೂ ಮುಂಚೆ ಯಾವ ಹಂತಗಳನ್ನು ಕವರ್ ಮಾಡಿರಬೇಕು? + +### ತಯಾರಿ + +ಈ ಪಾಠವನ್ನು ಪ್ರಾರಂಭಿಸಲು ತಯಾರಿ ಹಂತಗಳು + +--- + +[ವಿಷಯವನ್ನು ಕಂಟೆಂಟ್ ಬ್ಲಾಕ್‌ಗಳಲ್ಲಿ ಹಂತ ಹಂತವಾಗಿ ನಡೆಸಿ] + +## [ವಿಷಯ 1] + +### ಕಾರ್ಯ: + +ನಿಮ್ಮ ಕೋಡ್‌ಬೇಸ್ ಅನ್ನು ಹಂತ ಹಂತವಾಗಿ ಸುಧಾರಿಸಲು ಒಟ್ಟಿಗೆ ಕೆಲಸ ಮಾಡಿ ಮತ್ತು ಹಂಚಿಕೊಳ್ಳುವ ಕೋಡಿನೊಂದಿಗೆ ಪ್ರಾಜೆಕ್ಟ್ ನಿರ್ಮಿಸಿ: + +```html +code blocks +``` + +✅ ಜ್ಞಾನ ಪರಿಶೀಲನೆ - ವಿದ್ಯಾರ್ಥಿಗಳ ಕೌಶಲ್ಯವನ್ನು ತೆರ Luizಟ ಪ್ರಶ್ನೆಗಳೊಂದಿಗೆ ವಿಸ್ತರಿಸಲು ಈ ಕ್ಷಣವನ್ನು ಉಪಯೋಗಿಸಿ + +## [ವಿಷಯ 2] + +## [ವಿಷಯ 3] + +🚀 ಸವಾಲು: ತರಗತಿಯಲ್ಲಿ ಸಹಯೋಗದಲ್ಲಿ ಪ್ರಾಜೆಕ್ಟ್ ಸುಧಾರಿಸಲು ವಿದ್ಯಾರ್ಥಿಗಳಿಗೆ ಸವಾಲನ್ನು ಸೇರಿಸಿ + +ಐಚ್ಛಿಕ: ಪೂರ್ಣಗೊಂಡ ಪಾಠದ UI-ಯ ಸ್ಕ್ರೀನ್‌ಶಾಟ್ ಅನ್ನು ಬೇಕಾದರೆ ಸೇರಿಸಿ + +## [ಪೋಸ್ಟ್-ವಾರ್ತಾ ಪ್ರಶ್ನೋತ್ತರ](../../../lesson-template/quiz-url) + +## ವಿಮರ್ಶೆ & ಸ್ವ-ಅಧ್ಯಯನ + +**ನಿಬಂಧನೆ ಸಲ್ಲಿಸುವ ದಿನಾಂಕ [MM/YY]**: [ನಿಬಂಧನೆ ಹೆಸರು](assignment.md) + +--- + + +**ಅತ್ಯಂತ ಜಾಗೃತಿ ಸೂಚನೆ**: +ಈ ದಾಖಲೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಎಂಬ ಏಐ ಅನುವಾದ ಸೇವೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ಶುದ್ಧತೆಗೆ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಾಖಲೆ ನಂಬಲಾದ ಮೂಲಮಾಹಿತಿಯಾಗಿ ಪರಿಗಣಿಸಬೇಕು. ಪ್ರಮುಖ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದದ ಬಳಕೆಯಿಂದ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಗಳಿಕೆಗಳಿಗೆ ಅಥವಾ ಅಸಮಜಿಕೆಗಳಿಗೆ ನಾವು ಹೊಣೆ ಹೊಳ್ಳುವುದಿಲ್ಲ. + \ No newline at end of file diff --git a/translations/kn/lesson-template/assignment.md b/translations/kn/lesson-template/assignment.md new file mode 100644 index 000000000..80fc53568 --- /dev/null +++ b/translations/kn/lesson-template/assignment.md @@ -0,0 +1,25 @@ + +# [ನಿಯುಕ್ತಿಯ ಹೆಸರು] + +## ಸೂಚನೆಗಳು + +## ರೂಬ್ರಿಕ್ + +| ಮಾನದಂಡ | ಉದಾಹರಣೀಯ | ಯಥಾರ್ಥ | ಸುಧಾರಣೆಗೆ ಅಗತ್ಯವಿದೆ | +| -------- | --------- | -------- | ----------------- | +| | | | | + +--- + + +**ಅस्वೀಕರಣ**: +ಈ ದಸ್ತಾವೇಜು [Co-op Translator](https://github.com/Azure/co-op-translator) ಎಂಬ AI ಭಾಷಾಂತರ ಸೇವೆಯನ್ನು ಉಪಯೋಗಿಸಿ ಭಾಷಾಂತರಿಸಲಾಗಿದೆ. ನಾವು ಶ್ರದ್ಧೆಯಿಂದ ಸರಿಯಾಗಿರುವಂತೆ ಕೆಲಸ ಮಾಡಲಾಗುತ್ತಿದ್ದು ಸಹ, ಸ್ವಯಂಚಾಲಿತ ಭಾಷಾಂತರಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ತಪ್ಪುಗಳು ಇರಬಹುದು ಎಂಬುದನ್ನು ದಯವಿಟ್ಟು ಗಮನದಲ್ಲಿರಿಸಿ. ಮೂಲ документы ಅದರ ಮೂಲ ಭಾಷೆಯಲ್ಲಿ ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಅತ್ಯಾವಶ್ಯಕ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಭಾಷಾಂತರವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ. ಈ ಭಾಷಾಂತರ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ಪ misunderstandings ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಜವಾಬ್ದಾರರಾಗಿಲ್ಲ. + \ No newline at end of file diff --git a/translations/kn/memory-game/README.md b/translations/kn/memory-game/README.md new file mode 100644 index 000000000..9085755f6 --- /dev/null +++ b/translations/kn/memory-game/README.md @@ -0,0 +1,52 @@ + +ಈದು [Next.js](https://nextjs.org) ಪ್ರಾಜೆಕ್ಟ್ ಆಗಿದ್ದು, [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app) ಅನ್ನು ಬಳಸಿಕೊಂಡು ಸೃಷ್ಟಿಸಲಾಗಿದೆ. + +## ಪ್ರಾರಂಭಿಸುವುದು + +ಮೊದಲು, ಡೆವೆಲಪ್ಮೆಂಟ್ ಸರ್ವರ್ ಅನ್ನು ಚಾಲನೆ ಮಾಡಿ: + +```bash +npm run dev +# ಅಥವಾ +yarn dev +# ಅಥವಾ +pnpm dev +# ಅಥವಾ +bun dev +``` + +ನೀವು ನಿಮ್ಮ ಬ್ರೌಸರ್‌ನಲ್ಲಿ [http://localhost:3000](http://localhost:3000) ತೆರೆಯಿರಿ ಫಲಿತಾಂಶವನ್ನು ನೋಡಲು. + +ನೀವು ಪುಟವನ್ನು ಸಂಪಾದಿಸುವುದನ್ನು `app/page.js` ಫೈಲ್ ಅನ್ನು ಬದಲಾಯಿಸುವ ಮೂಲಕ ಪ್ರಾರಂಭಿಸಬಹುದು. ಫೈಲ್ ಅನ್ನು ಸಂಪಾದಿಸುವಂತೆ ಪುಟ ಸ್ವಯಂಚಾಲಿತವಾಗಿ تازهಗೊಳ್ಳುತ್ತದೆ. + +ಈ ಪ್ರಾಜೆಕ್ಟ್ [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) ಅನ್ನು ಬಳಸಿ ಸ್ವಯಂಚಾಲಿತವಾಗಿ [Geist](https://vercel.com/font), Vercel ಗೆ ಹೊಸ ಫಾಂಟ್ ಕುಟುಂಬವನ್ನು ಅಕ串ಿಸುತ್ತದೆ ಮತ್ತು ಲೋಡ್ ಮಾಡುತ್ತದೆ. + +## ಇನ್ನಷ್ಟು ಕಲಿಯಿರಿ + +Next.js ಬಗ್ಗೆ ಇನ್ನಷ್ಟು ತಿಳಿಯಲು, ಕೆಳಗಿನ ಸಂಪನ್ಮೂಲಗಳನ್ನು ನೋಡಿ: + +- [Next.js ಪ್ರलेಖನ](https://nextjs.org/docs) - Next.js ವೈಶಿಷ್ಟ್ಯಗಳು ಮತ್ತು API ಬಗ್ಗೆ ಕಲಿಯಿರಿ. +- [Next.js ಕಲಿಕೆ](https://nextjs.org/learn) - ಇಂಟರಾಕ್ಟಿವ್ Next.js ತರಬೇತಿ. + +ನೀವು [Next.js GitHub ಸಂಗ್ರಹಾಲಯ](https://github.com/vercel/next.js) ಅನ್ನು ಪರಿಶೀಲಿಸಬಹುದು - ನಿಮ್ಮ ಪ್ರತಿಕ್ರಿಯೆಗಳು ಮತ್ತು ಕೊಡುಗೆಗಳು ಸ್ವಾಗತ. + +## Vercel ನಲ್ಲಿ ನಿಯೋಜಿಸು + +ನಿಮ್ಮ Next.js ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ನಿಯೋಜಿಸಲು ಸುಲಭ ಮಾರ್ಗವಾಗಿದೆ [Vercel ಪ್ಲಾಟ್‌ಫಾರ್ಮ್](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) ಅನ್ನು ಬಳಸುವುದು, ಅದು Next.js ರಚನಕಾರರಿಂದ ಬಂದಿದೆ. + +ನಮ್ಮ [Next.js ನಿಯೋಜನೆ ದಸ್ತಾವೇಜು](https://nextjs.org/docs/app/building-your-application/deploying) ನೋಡಿ ಹೆಚ್ಚಿನ ವಿವರಗಳಿಗೆ. + +--- + + +**ನಿರಾಕರಣ**: +ಈ ದಾಖಲೆ ಅನ್ನು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯನ್ನು ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂಬುದನ್ನು ತಿಳಿದುಕೊಳ್ಳಿರಿ. ಮೂಲ ಭಾಷೆಯ ಡಾಕ್ಯುಮೆಂಟ್ ಅನ್ನು ಅಧಿಕೃತ ಮೂಲವಾಗಿ ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಗರ್ಭಿತತೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಲ್ಲ. + \ No newline at end of file diff --git a/translations/kn/quiz-app/README.md b/translations/kn/quiz-app/README.md new file mode 100644 index 000000000..d445a202b --- /dev/null +++ b/translations/kn/quiz-app/README.md @@ -0,0 +1,193 @@ + +# Quiz app + +ಈ ಪ್ರಶ್ನೋತ್ತರಗಳು https://aka.ms/webdev-beginners ನಲ್ಲಿ ಡೇಟಾ ಸೈನ್ಸ್ ಪಠ್ಯಕ್ರಮದ ಮುಂಭಾಗ ಮತ್ತು ನಂತರದ ಪ್ರಶ್ನೋತ್ತರಗಳಾಗಿವೆ + +## ಅನುವಾದಿತ ಪ್ರಶ್ನೋತ್ತರ ಸೆಟ್ ಸೇರಿಸುವುದು + +`assets/translations` ಫೋಲ್ಡರ್‌ಗಳಲ್ಲಿ ಹೊಂದಾಣಿಕೆ ಪ್ರಶ್ನೋತ್ತರ ರಚನೆಗಳನ್ನು ರಚಿಸುವ ಮೂಲಕ ಪ್ರಶ್ನೆ-ọತ್ತರದ ಅನುವಾದವನ್ನು ಸೇರಿಸಿ. ಮಾನದಂಡ ಪ್ರಶ್ನೋತ್ತರಗಳು `assets/translations/en` ನಲ್ಲಿ ಇವೆ. ಪ್ರಶ್ನೋತ್ತರವನ್ನು ಹಲವು ಗುಂಪುಗಳಾಗಿ ವಿಂಗಡಿಸಲಾಗಿದೆ. ಸಂಖ್ಯೆಯಿಂದ ಸೂಕ್ತ ಪ್ರಶ್ನೋತ್ತರ ವಿಭಾಗಕ್ಕೆ ಹೊಂದಾಣಿಕೆ ಮಾಡಿಕೊಳ್ಳಿ. ಈ ಪಠ್ಯಕ್ರಮದಲ್ಲಿ ಒಟ್ಟು 40 ಪ್ರಶ್ನೋತ್ತರಗಳಿವೆ ಮತ್ತು ಎಣಿಕೆ 0 ರಿಂದ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ. + + +
+ಇದು ಅನುವಾದ ಫೈಲ್‌ನ ಆಕಾರ: + +``` +[ + { + "title": "A title", + "complete": "A complete button title", + "error": "An error message upon selecting the wrong answer", + "quizzes": [ + { + "id": 1, + "title": "Title", + "quiz": [ + { + "questionText": "The question asked", + "answerOptions": [ + { + "answerText": "Option 1 title", + "isCorrect": true + }, + { + "answerText": "Option 2 title", + "isCorrect": false + } + ] + } + ] + } + ] + } +] +``` +
+ +ಅನುವಾದಗಳನ್ನು ತಿದ್ದುಪಡಿ ಮಾಡಿದ ನಂತರ, `en` ನಲ್ಲಿ ನಿಬಂಧನೆಗಳನ್ನು ಅನುಸರಿಸಿ ಎಲ್ಲಾ ಫೈಲ್‌ಗಳನ್ನು ಆಮದು ಮಾಡಲು ಅನುವಾದ ಫೋಲ್ಡರ್‌ನ index.js ಫೈಲ್ ಅನ್ನು ಸಂಪಾದಿಸಿ. + +ಹೊಸ ಅನುವಾದಿತ ಫೈಲ್‌ಗಳನ್ನು ಆಮದು ಮಾಡಲು `assets/translations` ನಲ್ಲಿ ಇರುವ `index.js` ಫೈಲ್‌ನ್ನು ಸಂಪಾದಿಸಿ. + +ಉದಾಹರಣೆಗೆ, ನಿಮ್ಮ ಅನುವಾದ JSON `ex.json` ನಲ್ಲಿ ಇದ್ದರೆ, 'ex' ಅನ್ನು ಸ್ಥಳೀಯೀಕರಣ ಕೀ ಆಗಿ ಮಾಡಿ, ನಂತರ ಕೆಳಗಿನಂತೆ ಇದನ್ನು ಆಮದು ಮಾಡಲು ನಮೂದಿಸಿ + +
+index.js + +``` +import ex from "./ex.json"; + +// if 'ex' is localization key then enter it like so in `messages` to expose it + +const messages = { + ex: ex[0], +}; + +export default messages; +``` + +
+ +## Quiz App ಅನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಚಾಲನೆ ಮಾಡುವುದು + +### ಅಗತ್ಯಗಳು + +- GitHub ಖಾತೆ +- [Node.js ಮತ್ತು Git](https://nodejs.org/) + +### ಇನ್‌ಸ್ಟಾಲ್ & ಸೆಟ್‌ಅಪ್ + +1. ಇದರ ಮೂಲಕ ಒಂದು ಸಂಗ್ರಹಣೆಯನ್ನು ರಚಿಸಿ [template](https://github.com/new?template_name=Web-Dev-For-Beginners&template_owner=microsoft) + +1. ನಿಮ್ಮ ಹೊಸ ಸಂಗ್ರಹಣೆಯನ್ನು ಕ್ಲೋನ್ ಮಾಡಿ, ಮತ್ತು quiz-app ಗೆ ನವಿಗೇಟ್ ಆಗಿ + + ```bash + git clone https://github.com/your-github-organization/repo-name + cd repo-name/quiz-app + ``` + +1. npm ಪ್ಯಾಕೇಜ್‌ಗಳು ಮತ್ತು ಅವಲಂಬನೆಗಳನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿ + + ```bash + npm install + ``` + +### ಆಪ್ ನಿರ್ಮಿಸಿ + +1. ಪರಿಹಾರವನ್ನು ನಿರ್ಮಿಸಲು, ಚಾಲನೆ ಮಾಡಿ: + + ```bash + npm run build + ``` + +### ಆಪ್ ಪ್ರಾರಂಭಿಸಿ + +1. ಪರಿಹಾರವನ್ನು ಚಾಲನೆ ಮಾಡಲು, ಚಾಲನೆ ಮಾಡಿ: + + ```bash + npm run dev + ``` + +### [ಐಚ್ಛಿಕ] ಲಿಂಟಿಂಗ್ + +1. ಕೋಡ್ ಲಿಂಟ್ ಆಗಿರುವುದನ್ನು ಖಚಿತಪಡಿಸಲು, ಚಾಲನೆ ಮಾಡಿ: + + ```bash + npm run lint + ``` + +## Quiz-app ಅನ್ನು Azure ಗೆ ನಿಯೋಜಿಸಿ + +### ಅಗತ್ಯಗಳು +- Azure ಸಬ್ಸ್ಕ್ರಿಪ್‌ಶನ್ ಒಂದು. ಉಚಿತವಾಗಿ ಈವರೆಗೆ ಸೈನ್ ಅಪ್ ಮಾಡಿ [ಮೀಡಿಯ](https://aka.ms/azure-free). + + _ಈ quiz-app ಅನ್ನು ನಿಯೋಜಿಸಲು ಖರ್ಚು ಅಂದಾಜು: ಉಚಿತ_ + +[![Deploy to Azure](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.StaticApp) + +ನೀವು ಮೇಲಿನ ಲಿಂಕ್ ಮೂಲಕ Azure ನಲ್ಲಿ ಲಾಗಿನ್ ಆದ ಮೇಲೆ, ಒಂದು ಸಬ್ಸ್ಕ್ರಿಪ್‌ಶನ್ ಮತ್ತು ರಿಸೋರ್ಸ್ ಗುಂಪನ್ನು ಆರಿಸಿ ನಂತರ: + +- ಸ್ಟಾಟಿಕ್ ವೆಬ್ ಆಪ್ ವಿವರಗಳು: ಒಂದು ಹೆಸರು ಒದಗಿಸಿ ಮತ್ತು ಒಬ್ಬ ಹೋಸ್ಟಿಂಗ್ ಯೋಜನೆಯನ್ನು ಆಯ್ಕೆ ಮಾಡಿ +- GitHub ಲಾಗಿನ್: ನಿಮ್ಮ ನಿಯೋಜನೆ ಮೂಲವನ್ನು GitHub ಆಗಿ ಹೊಂದಿಸಿ ನಂತರ ಲಾಗಿನ್ ಮಾಡಿ ಮತ್ತು ಫಾರ್ಮ್‌ನ ಅಗತ್ಯ ಕ್ಷೇತ್ರಗಳನ್ನು ಭರ್ತಿ ಮಾಡಿ: + - *ಸಂಘಟನೆ* – ನಿಮ್ಮ ಸಂಘಟನೆಯನ್ನು ಆಯ್ಕೆಮಾಡಿ. + - *ಸಂಗ್ರಹಣೆ* – Web Dev for Beginners ಪಠ್ಯಕ್ರಮ ಸಂಗ್ರಹಣೆಯನ್ನು ಆಯ್ಕೆಮಾಡಿ. + - *ಶಾಖೆ* - ಒಂದು ಶಾಖೆಯನ್ನು ಆಯ್ಕೆಮಾಡಿ (main) +- ನಿರ್ಮಾಣ ಪೂರ್ವನಿಯೋಜನೆಗಳು: Azure ಸ್ಟಾಟಿಕ್ ವೆಬ್ ಆಪ್ಸ್ ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್‌ನಲ್ಲಿ ಬಳಸಿದ ಫ್ರೇಮ್ವರ್ಕ್ ಪತ್ತೆ ಮಾಡಲು ಪತ್ತೆ ಆಲ್ಗೋರಿದಮ್ ಬಳಸುತ್ತದೆ. + - *ಆಪ್ ಸ್ಥಳ* - ./quiz-app + - *Api ಸ್ಥಳ* - + - *ಔಟ್‌ಪುಟ್ ಸ್ಥಳ* - dist +- ನಿಯೋಜನೆ: 'ಪುನರೀಕ್ಷೆ + ರಚಿಸಿ' ಕ್ಲಿಕ್ ಮಾಡಿ, ನಂತರ 'ರಚಿಸಿ' ಕ್ಲಿಕ್ ಮಾಡಿ + + ನಿಯೋಜನೆಯಾದ ನಂತರ, ನಿಮ್ಮ ಸಂಗ್ರಹಣೆಯ *.github* დირექტರಿಯಲ್ಲಿ ಒಂದು ವರ್ಕ್‌ಫ್ಲೋ ಫೈಲ್ ರಚಿಸಲಾಗುವುದು. ಈ ವರ್ಕ್‌ಫ್ಲೋ ಫೈಲ್ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು Azure ಗೆ ಮರು-ನಿಯೋಜಿಸಲು ಇವೆಂಟ್‌ಗಳನ್ನು ಸೂಚಿಸುವ ಸೂಚನೆಗಳನ್ನು ಒಳಗೊಂಡಿದೆ, ಉದಾಹರಣೆಗೆ, _ಒಂದು **push** ಶಾಖೆಯ ಮೇಲೆ **main**_ ಇತ್ಯಾದಿ. + +
+ ಉದಾಹರಣೆಯ ವರ್ಕ್‌ಫ್ಲೋ ಫೈಲ್ + GitHub Actions ವರ್ಕ್‌ಫ್ಲೋ ಫೈಲ್ ಹೇಗಿರಬಹುದು ಎಂಬುದಕ್ಕೆ ಉದಾಹರಣೆ ಇಲ್ಲಿದೆ: + name: Azure Static Web Apps CI/CD + + ``` + on: + push: + branches: + - main + pull_request: + types: [opened, synchronize, reopened, closed] + branches: + - main + + jobs: + build_and_deploy_job: + runs-on: ubuntu-latest + name: Build and Deploy Job + steps: + - uses: actions/checkout@v2 + - name: Build And Deploy + id: builddeploy + uses: Azure/static-web-apps-deploy@v1 + with: + azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN }} + repo_token: ${{ secrets.GITHUB_TOKEN }} + action: "upload" + app_location: "quiz-app" # App source code path + api_location: ""API source code path optional + output_location: "dist" #Built app content directory - optional + ``` + +
+ +- ನಿಯೋಜನೆಯ ನಂತರ: ನಿಯೋಜನೆ ಪೂರ್ಣಗೊಂಡ ನಂತರ, ‘Go to Deployment’ ಕ್ಲಿಕ್ ಮಾಡಿ ನಂತರ ‘View app in browser’. + +ನಿಮ್ಮ GitHub Action (workflow) ಯಶಸ್ವಿಯಾಗಿ ನಡೆಸಲು, ಲೈವ್ ಪುಟವನ್ನು ರಿಫ್ರೆಶ್ ಮಾಡಿ ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ನೋಡುವುದಕ್ಕೆ. + +--- + + +**ಒಪ್ಪಂದ ವಿನಾಯಿತಿ**: +ಈ ದಾಖಲೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಎಂಬ AI ಅನುವಾದ ಸೇವೆಯ ಮೂಲಕ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ಶುದ್ಧತೆಯ ಮೇಲೆ ಪ್ರಯತ್ನಿಸಿದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಶುದ್ಧತೆಗಳು ಇರಬಹುದು ಎಂಬುದನ್ನು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿನ ಮೂಲ ದಾಖಲೆ ಆದೇಶಿಸಬೇಕಾದ ಪ್ರಾಮಾಣಿಕ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವಪೂರ್ಣ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪುಗಳ ಅಥವಾ ತಪ್ಪಾಗಿ ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವ ಘಟನೆಗಳಿಗಾಗಿ ನಾವು ಹೊಣೆಗಾರರಲ್ಲ. + \ No newline at end of file diff --git a/translations/ml/1-getting-started-lessons/1-intro-to-programming-languages/README.md b/translations/ml/1-getting-started-lessons/1-intro-to-programming-languages/README.md new file mode 100644 index 000000000..c16adb864 --- /dev/null +++ b/translations/ml/1-getting-started-lessons/1-intro-to-programming-languages/README.md @@ -0,0 +1,861 @@ + +# പ്രോഗ്രാമിംഗ് ഭാഷകളും ആധുനിക ഡെവലപ്പർ ടൂളുകളുമാണ് പരിചയം + +ഹായ്, ഭാവിയിലെ ഡെവലപ്പർ! 👋 ഞാൻ നിനക്കൊരു രഹസ്യം പറയാമോ, അത് എനിക്ക് ഓരോ ദിവസവും കണ്ണ് പിമ്പിക്കുന്നു? പ്രോഗ്രാമിംഗ് എന്നത് കംപ്യൂട്ടറുകളെക്കുറിച്ചല്ല – ഇത് നിങ്ങളുടെ സ്ഥാപനഭംഗി ഐഡിയകൾ ജീവനൊലിപ്പിക്കാൻ ഉള്ള യഥാർത്ഥ അത്ഭുത്യമാർന്ന ശക്തികളാണ്! + +നിങ്ങളുടെ പ്രിയപ്പെട്ട ആപ്പ് ഉപയോഗിക്കുമ്പോൾ എല്ലാം പകിട്ടായി പൊരുത്തപ്പെടുന്നതിനുള്ള ആ നിമിഷം നിങ്ങൾക്ക് അറിയാമോ? നിങ്ങൾ ഒരു ബട്ടൺ തള്ളുമ്പോൾ അത്ഭുതം പടർന്നുപോകുന്ന ഒരു കാര്യമാണ് സംഭവിക്കുന്നത്, നിങ്ങളെ "വാവ്, അവർ അത് എങ്ങനെ ചെയ്തുവെന്ന്?" എന്ന് ചോദിക്കുന്നതാക്കും? അങ്ങനെ, നിങ്ങൾ പോലൊരു വ്യക്തി – എങ്കിലും അവരുടെ പ്രിയപ്പെട്ട കാപ്പി ഷോപ്പിൽ 2 മണിക്ക് മൂന്നാം എസ്പ്രസോ കപ്പുമായി ഇരിക്കുന്ന – ആ മായാജാലം സൃഷ്ടിച്ച കോഡ് എഴുതിയതാണ്. ഇതാകട്ടെ നിങ്ങളുടെ മനസ്സ് പൊട്ടിക്കും: ഈ പാഠത്തിന്റെ അവസാനം, അവർ അത് എങ്ങനെ ചെയ്തെന്നും നിങ്ങൾക്ക് മനസിലാകും മാത്രമല്ല, അത് നിങ്ങൾ തന്നെ ശ്രമിക്കാൻ താൽപ്പര്യം ഉണ്ടാകും! + +നിങ്ങൾക്ക് പ്രോഗ്രാമിംഗ് ഇപ്പോൾ ഭയപ്പെട്ട പോലെ തോന്നിയാൽ ഞാൻ മനസ്സിലാക്കുന്നു. ഞാൻ തുടങ്ങുമ്പോൾ, നിങ്ങൾക്ക് മാത്ത് ജീനിയസായിരിക്കണം അല്ലെങ്കിൽ അഞ്ചു വയസു മുതൽ കോഡിങ് ചെയ്യും എന്ന് ഞാൻ വിശ്വസിച്ചു. പക്ഷേ, എന്റെ കാഴ്ചപ്പാട് പൂർണ്ണമായും മാറിയത്: പ്രോഗ്രാമിംഗ് ഒരു പുതിയ ഭാഷയിൽ സംഭാഷണം പഠിക്കുന്നതുപോലെയാണ്. നിങ്ങൾ "ഹലോ" "നന്ദി" മുതലായവയിൽ നിന്ന് തുടങ്ങി, പിന്നീട് കാപ്പി ഓർഡർ ചെയ്യുന്നതിലും പിന്നെ തൽസമയ തത്ത്വ ചർച്ചകൾ ചെയ്യുന്നതിലേക്കും പോകും! എന്നാൽ ഈ സാഹചര്യത്തിൽ, നിങ്ങൾ കംപ്യൂട്ടറുകളുമായി സംസാരിച്ചുകൊണ്ടിരിക്കുകയാണ്, സത്യത്തിൽ? അവർ ലോകത്തിലെ ഏറ്റവും ക്ഷമയുള്ള സംഭാഷണ പാർട്ണറുമാണ് – ഒരുമിച്ച് ചെയ്ത പിശകുകൾക്ക് തീരുമാനമിടാറില്ല, വീണ്ടും ശ്രമിക്കാൻ എപ്പോഴും ആവേശത്തിലാണ്! + +ഇന്ന് നാം ആധുനിക വെബ് വികസനം സാദ്ധ്യമാക്കുന്നതിനും അതിനായി വൃത്തിവത്കരിച്ച ആധുനിക ടൂളുകളെക്കുറിച്ച് പ്രാവശ്യമാണ്. നെറ്റ്ഫ്ലിക്സ്, സ്പോട്ടിഫൈ, നിങ്ങളുടെ പ്രിയപ്പെട്ട ഇൻഡീ ആപ്പ് സ്റ്റുഡിയോ എന്നിവിടങ്ങളിലെ ഡെവലപ്പറർമാർ ദിവസവും ഉപയോഗിക്കുന്ന സമാനമായ എഡിറ്റർ, ബ്രൗസർ, പ്രവൃത്തി രീതികൾ ആണ് ഇവിടെ ഉദ്ദേശിക്കുന്നത്. ഇത് നിങ്ങളെ സന്തോഷത്തിൽ റീച്ച് ചെയ്യാൻ പോകുന്നത്: ഈ പ്രൊഫഷണൽ ഗ്രേഡ്, വ്യവസായ നിലവാരത്തിലുള്ള ടൂളുകൾ കൂടുതലായി സൗജന്യമാണ്! + +![Intro Programming](../../../../translated_images/webdev101-programming.d6e3f98e61ac4bff.ml.png) +> സ്കെച് നോട്ട്സ്: [Tomomi Imura](https://twitter.com/girlie_mac) + +```mermaid +journey + title നിങ്ങളുടെ പ്രോഗ്രാമിംഗ് യാത്ര ഇന്ന് + section കണ്ടെത്തുക + പ്രോഗ്രാമിംഗ് എന്താണ്: 5: You + പ്രോഗ്രാമിംഗ് ഭാഷകൾ: 4: You + ഉപകരണങ്ങളുടെ അവലോകനം: 5: You + section ആഴത്തിൽ പഠിക്കുക + കോഡ് എഡിറ്ററുകൾ: 4: You + ബ്രൗസറുകളും ഡെവ് ടൂളുകളും: 5: You + കമാൻഡ് ലൈൻ: 3: You + section അഭ്യാസം + ഭാഷാ ഡിറ്റക്ടീവ്: 4: You + ഉപകരണങ്ങളെക്കുറിച്ചുള്ള പഠനം: 5: You + സമൂഹ ബന്ധം: 5: You +``` +## നീന്തിൻറോ നീ അറിയുന്നതെന്തൊക്കെയെന്നു നമുക്ക് നോക്കാം! + +ആ പരിചയപ്പെടുത്തലുകൾ തുടങ്ങാൻ മുൻപ്, ഈ പ്രോഗ്രാമിംഗ് ലോകത്തെക്കുറിച്ച് നിനക്ക് ഇതുവരെ എന്ത് അറിയാമെന്നു ഞാൻ കൗതുകം തോന്നുന്നു! നീ ഈ ചോദ്യങ്ങൾ കാണുമ്പോൾ "ഇതൊക്കെ ഞാൻ പകർന്നുമാത്രം അറിയില്ല" എന്ന് തോന്നിയാലും അതു സാധാരണമാണ്, പ്രതീക്ഷിച്ച കാര്യത്തിും നിറഞ്ഞതാണ്! അങ്ങനെ, നീ ശരിയായ സ്ഥലത്തുണ്ട്. ഈ ക്വിസ് ഒരു വർക്ക്ഔട്ടിന് മുമ്പുള്ള പൊരുത്തമാണ് – നാം നമ്മുടെ മസ്തിഷ്‌ക പേശികൾ ചൂടാക്കുകയാണ്! + +[പാഠം ആരംഭിക്കുന്നതിന് മുമ്പ് ക്വിസ് എടുത്തു നോക്ക്](https://forms.office.com/r/dru4TE0U9n?origin=lprLink) + + +## നാം ചേർന്ന് ചെയ്യാൻ പോകുന്ന സഞ്ചാരം + +ശരി, ഇന്ന് നാം അന്വേഷിക്കാൻ പോകുന്നത് എത്ര എക്‌സൈറ്റിങ് ആണെന്ന് ഞാൻ నిజമായി ഉറ്റുനോക്കുന്നു! ഈ ആശയങ്ങൾ ചിലപ്പോൾ നിനക്ക് ക്ലിക് ചെയ്യുമ്പോൾ, നിന്നിൽ മുഖം കണ്ടാൽ എനിക്ക് ആഗ്രഹമുണ്ടൂ. നമ്മൾ ചേർന്ന് പോകുന്ന അത്ഭുതകരമായ യാത്ര ഇതാണ്: + +- **പ്രോഗ്രാമിംഗ് എന്നാൽ എന്തെന്ന് ആകത്തരം (കാരണം ഇത് എങ്ങനെ ഏറ്റവും കൂളായ കാര്യമാണെന്ന്!)** – കോഡ് എന്നാൽ നിസ്‌ക്കളമായ മായാജാലം, അത് നിങ്ങളെ ചുറ്റിപ്പറ്റിയ എല്ലാം ആർജ്ജിക്കുന്നതിന്റെ പിഞ്ച് എന്നറിയാം, ആ ആലാറം സിസ്റ്റം എങ്ങനെ തിങ്കൾ രാവിലെ ആയി എന്ന് മനസ്സിലാക്കുന്നതിന് തുടങ്ങിയവർക്ക്Netflix ഉള്ള സുതാര്യമായ‌ യന്ത്രങ്ങൾ വരെ +- **പ്രോഗ്രാമിംഗ് ഭാഷകളും അവയുടെ അത്ഭുത വിചിത്രതകളും** – വ്യത്യസ്ത വ്യക്തികൾ വ്യത്യസ്ത പ്രശ്നങ്ങൾ പരിഹരിക്കുന്ന വിധങ്ങളിൽ സൂപ്പർപവർ ഉള്ള പാർട്ടിയിൽ നിങ്ങൾ നടക്കുകയാണെന്ന് ദ്യായിക്കൂ. അങ്ങനെ തന്നെ പ്രോഗ്രാമിംഗ് ഭാഷകൾ ലോകമാണെന്നും അവയെകൂടി കാണാൻ നിങ്ങൾ ഇഷ്ടപ്പെടും! +- **ഡിജിറ്റൽ മായാജാലം ഉണ്ടാക്കുന്ന അടിസ്ഥാന ഘടകങ്ങൾ** – ഇതിനെ ലെഗോ സജ്ജീകരണം എന്ന് ചിന്തിക്കൂ. ഈ ഭാഗങ്ങൾ എങ്ങനെ ചേർക്കാൻ അറിയുമ്പോൾ നിനക്ക് സ്വപ്നം കാണുന്ന കാര്യങ്ങൾ നിഷേധം മാത്രമല്ല സൃഷ്ടിക്കാം +- **പ്രൊഫഷണൽ ടൂളുകൾ, നിങ്ങൾക്ക് ജാദുകർ വണ്ട് നൽകി തന്നെന്നാണ് അനുഭവപ്പെടുക** – ഞാൻ നാടകമല്ല, ഈ ടൂളുകൾ നിങ്ങളെ യഥാർത്ഥത്തിൽ സൂപ്പർപവർ ഉള്ളതായി തോന്നിക്കും, കൂടുതലായി? അതെ പ്രൊഫഷണലുകൾ ഉപയോഗിക്കുന്ന തന്നെയാണ്! + +> 💡 **കുറിപ്പ്**: ഇന്നത്തെ പാഠം എല്ലാം ഓർമ്മിക്കാൻ ശ്രമിക്കരുത്! ഇപ്പോൾ ഞാൻ നിങ്ങളെ ആ വിളക്ക് തോന്നാൻ ആഗ്രഹിക്കുന്നു. വിശദാംശങ്ങൾ സ്വാഭാവികമായി പതിക്കും – പുത്തൻ പഠനം അതുപോലെയാണ്! + +> നിങ്ങൾക്ക് ഈ പാഠം [Microsoft Learn](https://docs.microsoft.com/learn/modules/web-development-101/introduction-programming/?WT.mc_id=academic-77807-sagibbon) ലും എടുക്കാം! + +## അതെന്ത് അതിലും *പരിഗണിക്കപ്പെടുന്നത്* പ്രോഗ്രാമിംഗ്? + +സരി, മില്യൺ ഡോളർ ചോദ്യം: പ്രോഗ്രാമിംഗ് എന്നാൽ എന്താണ്? + +ഇതിനെ കുറിച്ചുള്ള എനിക്ക് കാഴ്ചപ്പാട് പൂർണ്ണമായും മാറ്റിയ ഒരു കഥ ഞാൻ പറയാം. കഴിഞ്ഞ ആഴ്ച, ഞങ്ങളുടെ പുതിയ സ്മാർട്ട് ടിവി റിമോട്ട് മാതാവിനോട് എങ്ങനെ ഉപയോഗിക്കാമെന്ന് വിശദീകരിക്കാൻ ശ്രമിച്ചപ്പോഴാണ്. ഞാൻ പറയുന്നത്: "പൂവൻ ചുവപ്പ് ബട്ടൺ അമർത്തൂ, പക്ഷേ വലിയ ചുവപ്പ് ബട്ടൺ അല്ല, ഇടത്തുള്ള ചെറിയ ചുവപ്പ് ബട്ടൺ... അല്ല, നീയുടെ മറ്റൊരു ഇടത്തുള്ളത്... ശരി, ഇപ്പോൾ അത് രണ്ട് സെക്കൻഡ് അമർത്തൂ, ഒന്ന് അല്ല, മൂന്നു അല്ല..." എന്നിങ്ങനെ. പരിചിതമാണോ? 😅 + +അത് പ്രോഗ്രാമിംഗ്! വളരെ ശക്തമായ, വിശദമായ, ഘട്ടം തോറും നിർദേശങ്ങൾ നൽകുന്നതിനുള്ള കലയാണ്. എന്നാൽ നിങ്ങളുടെ അമ്മായിയോട് വിശദീകരിക്കുന്നതിനുപകരം (അവൾ ചോദിക്കാം "എന്ത് ചുവപ്പ് ബട്ടൺ?") കംപ്യൂട്ടറോട് പറയുന്നു (ആർജ്ജിക്കുന്നത് കേൾക്കാതെ എപ്രകാരമാണ് പറഞ്ഞത് എന്നതിനേക്കാളും ശരിയായതു മാത്രം നടത്തുന്നു). + +ഞാൻ ആദ്യം പഠിച്ചപ്പോൾ മനശ്ശ്ശ്യം പൊട്ടിപ്പോയത്: കംപ്യൂട്ടറുകൾ മിക്കപ്പോഴും ലളിതമാണ്. അവയ്ക്ക് രണ്ട് കാര്യങ്ങൾ മാത്രം മനസ്സിലാവും – 1യും 0യും, അതായത് "ആകും" "ഇല്ല" അല്ലെങ്കിൽ "ഓൺ" "ഓഫ്." അതെത്ര! എന്നാൽ ഇതാണ് മായാജാലം – നമ്മൾ 1-ഉം 0-ഉം സംസാരിക്കേണ്ടതില്ല, അത് ത് The Matrix ലെ പോലെ അല്ല. അതാണ് **പ്രോഗ്രാമിംഗ് ഭാഷകൾ** സഹായിക്കുന്നത്. അവ ഭരണഭാഷയായി നമുക്ക് പരിചയമുള്ള മാനവ ചിന്തകൾ കംപ്യൂട്ടർ ഭാഷയിലാക്കി മാറ്റാൻ ഏറ്റവും മികച്ച വിവർത്തകര് പോലെയാണ്. + +ഞാൻ ഇന്നും ഓരോ രാവിലെ ഉണരുമ്പോൾ അത്ഭുതമുള്ള ചൂടില്ലാതെ പ്രവേശിക്കുന്ന കാര്യം: നിങ്ങളുടെ ജീവിതത്തിലൊഴികെയുള്ള ഡിജിറ്റൽ എല്ലാം തന്നെ ഒരു ആൾ, നിങ്ങൾ പോലെ, സന്ധ്യയിൽ ജാമകളടിച്ച് കാപ്പി കുടിച്ച് ലാപ്ടോപ്പിൽ കോഡ് ടൈപ്പ് ചെയ്യുന്നതോടെ തുടങ്ങി. ആ ഇൻസ്റ്റാഗ്രാം ഫിൽറ്റർ നിങ്ങളുടെ സൗന്ദര്യം വർദ്ധിപ്പിക്കുന്നതു? ആരോ അത് കോഡ് ചെയ്തു. പുതിയ മനസ്സിലാക്കിയ പാട്ടിലേക്ക് വഴി കണ്ടെത്തിയ ശുപാർശ? ഒരു ഡെവലപ്പർ ആ ആൽഗോറിതം നിർമ്മിച്ചു. നിങ്ങളുടെ സുഹൃത്തുക്കൾക്കൊപ്പം ഡിന്നർ ബില്ലുകൾ തിരിഞ്ഞ് നൽകുന്നതിന് ആപ്പ്? ആരോ "ഇത് എനിക്കു വിഷമമാണ്, ഞാനു പരിഹരിക്കും" എന്ന് വിചാരിച്ചു, പിറ്റേയ്ക്ക് അവർ ചെയ്തു! + +നിങ്ങൾ പ്രോഗ്രാമിംഗ് പഠിക്കുമ്പോൾ, നിങ്ങൾ ഒരു നവീന കഴിവ് മാത്രവും നേടുന്നത് അല്ല – പ്രശ്നപരിഹാര ടീമിന്റെ അംഗമായിത്തിരിക്കുന്നു, ആരും "ഏതെങ്കിലും ഒരു കാര്യം മറ്റൊരാളുടെ ദിവസം കുറച്ച് മികച്ചതാക്കി മാറ്റാമോ?" എന്ന് ആലോചിക്കുന്നു. സത്യത്തിൽ, ഇതിന്റെതിൽ സുഖകരമായ ഒന്നുമുണ്ടോ? + +✅ **ഫൺ ഫാക്ട് ഹണ്ട്**: നിങ്ങളുടെ സമയം ഉള്ളപ്പോൾ തേടേണ്ടതായൊരു കിടിലം നറുക്ക് – ലോകത്തിലെ ആദ്യ പ്രോഗ്രാമർ ആരായിരുന്നു എന്ന് നിങ്ങൾ വിചാരിക്കുന്നു? ഞാൻ സൂചന നല്‍കുന്നു: നിങ്ങൾ പ്രതീക്ഷിക്കുന്നവനല്ല! ആ വ്യക്തിയുടെ കഥ അത്ഭുതകരമായതാണ്, പ്രോഗ്രാമിംഗ് സൃഷ്ടിപരമായ പ്രശ്നപരിഹാരത്തിന്റെയും പരിധികളിൽ ചിന്തിക്കുന്നതിന്റെ ഭാഗമായാണ് എന്നും തെളിയിക്കുന്നു. + +### 🧠 **അവലോകന സമയം: നിങ്ങൾ എങ്ങനെ അനുഭവപ്പെടുന്നു?** + +**ഒരു നിമിഷം ചിന്തിക്കൂ:** +- "കമ്പ്യൂട്ടറുകൾക്ക് നിർദ്ദേശങ്ങൾ നൽകുന്നത്" നിങ്ങളുടെ മനസ്സിലായി കഴിഞ്ഞോ? +- നിങ്ങൾ പ്രതിദിന പ്രവർത്തനം പ്രോഗ്രാമിങ്ങ് ഉപയോഗിച്ച് സ്വയം പ്രവർത്തിപ്പിക്കാൻ ആഗ്രഹിക്കുന്നുണ്ടോ? +- പ്രോഗ്രാമിംഗ് സംബന്ധിച്ച് എന്തൊക്കെ ചോദ്യങ്ങൾ എടുക്കുന്നു? + +> **ഓർമ്മിക്കുക**: ചില ആശയങ്ങൾ ഇപ്പോൾ മയങ്ങുകയും ശരിയിട്ട് മനസ്സിലാകാതിരിക്കേണ്ടതാണ്. ഒരു പുതിയ ഭാഷ പഠിക്കുന്നത് പോലെ പ്രോഗ്രാമിംഗ് പഠനത്തിനും നിങ്ങളുടെ മസ്തിഷ്‌കത്തിന് അനുയോജ്യമായ നാഡിവഴികൾ രൂപപ്പെടാൻ സമയം വേണ്ടിവരും. നിങ്ങൾ മികച്ചതായി പോവുകയാണ്! + +## പ്രോഗ്രാമിംഗ് ഭാഷകൾ മായാജാലത്തിന്റെ വ്യത്യസ്ത രുചികളാണ് + +ശരി, ഇത് അല്പം വിചിത്രമായി തോന്നാമെങ്കിലും ശ്രദ്ധിക്കൂ – പ്രോഗ്രാമിംഗ് ഭാഷകൾ വിവിധ തരം സംഗീതങ്ങളറുപോലെയാണ്. ജാസ്സ് മൃദുവും തൽസമയപരവുമാണ്, റോക്ക് ശക്തിയുള്ളതും സുതാര്യവുമാണ്, ക്ലാസിക്കൽ സകലകူശലവും ഘടനാപരവുമാണ്, ഹിപ്-ഹോപ്പ് സൃഷ്ടി പരവും പ്രകടനപരവുമാണ്. ഓരോ ശൈലിയുടെയും തനത് ലൈഫ്, അതിന്റെ ആരാധക സമൂഹം ഉണ്ട്, ഓരോന്നും വ്യത്യസ്തമായ മനോഭാവങ്ങൾക്കും അവസരങ്ങൾക്കും അനുയോജ്യം. + +പ്രോഗ്രാമിംഗ് ഭാഷകളും അതുപോലെയാണ്! വലിയ ക്യുoanുകൾ കൈകാര്യം ചെയ്യുന്നതിനും ഒരു രസകരമായ മൊബൈൽ ഗെയിം നിർമ്മിക്കുന്നതിനും ഒരേ ഭാഷ ഉപയോഗിക്കില്ല, നാം യോഗ ക്ലാസിൽ ഡെത്ത് മെറ്റൽ പ്ലേ ചെയ്യുന്നില്ല പോലെ (അധികം യോഗാ ക്ലാസുകളല്ലന്നെങ്കിലും! 😄). + +എന്തുകൊണ്ടയിരിക്കും എപ്പോഴെങ്കിലും വിചാരിക്കുന്നത്: ഈ ഭാഷകൾ ലോകത്തിലെ ഏറ്റവും ക്ഷമയുള്ള, ഏറ്റവും മുത്തശ്ശി ഗുണം തെളിയിച്ച വിവർത്തകരെ പോലെയാണ്; നിങ്ങൾക്ക് നിങ്ങളുടെ മനുഷ്യ ചിന്തകൾ സ്വാഭാവിക സന്ദേശങ്ങളാക്കി അവതരിപ്പിക്കാൻ കഴിയും, അവ ക്യുoan 1,0 സാങ്കേതിക ഭാഷയിലേക്ക് വിവർത്തനം ചെയ്യുന്നു. മനുഷ്യ സൃഷ്ടിപരത്വവും കംപ്യൂട്ടർ തർക്കവും അറിയുന്ന സുഹൃത്ത് പോലെയാണ് – എപ്പോഴും ക്ഷീണിക്കാറില്ല, കോഫി ബ്രേക്ക് ആവശ്യമില്ല, ഒരേ ചോദ്യം രണ്ടുതവണ ചോദിച്ചതിന് അപമാനിക്കുന്നില്ല! + +### ജനപ്രിയ പ്രോഗ്രാമിംഗ് ഭാഷകളും അവയുടെ ഉപയോക്തൃ രീതികളും + +```mermaid +mindmap + root((പ്രോഗ്രാമിംഗ് ഭാഷകൾ)) + വെബ് ഡെവലപ്പ്മെന്റ് + ജാവാസ്‌ക്രിപ്റ്റ് + ഫ്രണ്ട്‌എന്റ് മാജിക് + ഇന്ററാക്റ്റീവ് വെബ്‌സൈറ്റുകൾ + ടൈപ്‌സ്ക്രിപ്റ്റ് + ജാവാസ്‌ക്രിപ്റ്റ് + ടൈപ്പുകൾ + എന്റർപ്രൈസ് ആപ്പുകൾ + ഡേറ്റ & എഐ + പൈത്തൺ + ഡേറ്റാ സയൻസ് + മെഷീൻ ലേണിംഗ് + ഓട്ടോമേഷൻ + ആർ + സ്ഥിതിവിവരക്കണക്കുകൾ + ഗവേഷണം + മൊബൈൽ ആപ്പുകൾ + ജാവ + ആൻഡ്രോയ്ഡ് + എന്റർപ്രൈസ് + സ്വിഫ്റ്റ് + ഐഒഎസ് + ആപ്പിൾ എക്കോസിസ്റ്റം + കോ틀ിൻ + ആധുനിക ആൻഡ്രോയ്ഡ് + ക്രോസ്-പ്ലാറ്റ്ഫോം + സിസ്റ്റംസ് & പെർഫോർമൻസ് + സി++ + ഗെയിമുകൾ + പ്രകടന ക്രിറ്റി‌കൽ + റസ്റ്റ് + മെമ്മറി സുരക്ഷ + സിസ്റ്റം പ്രോഗ്രാമിങ്ഗ് + ഗോ + ക്ലൗഡ് സേവനങ്ങൾ + സ്കേലബിൾ ബാക്ക്എൻഡ് +``` +| ഭാഷ | മികച്ചത് | പ്രശസ്തമായ കാരണം | +|----------|----------|------------------| +| **ജാവാസ്ക്രിപ്റ്റ്** | വെബ് വികസനം, ഉപയോക്തൃ ഇന്റർഫേസുകൾ | ബ്രൗസറുകളിൽ പ്രവർത്തിക്കുന്നു, ഇന്ററാക്ടീവ് വെബ്സൈറ്റുകൾക്ക് ശക്തി നൽകുന്നു | +| **പൈതൺ** | ഡാറ്റാ സയൻസ്, ഓട്ടോമേഷൻ, എഐ | വായിക്കാൻ എളുപ്പവും പഠിക്കാൻ സൗകര്യവുമുള്ള ശക്തമായ ലൈബ്രറികൾ | +| **ജാവ** | സംരംഭ ആപ്ലിക്കേഷനുകൾ, ആൻഡ്രോയിഡ് ആപ്പുകൾ | പ്ലാറ്റ്‌ഫോം സ്വതന്ത്രം, വലിയ സിസ്റ്റങ്ങളിലേക്ക് ശക്തം | +| **സി#** | വിൻഡോസ് ആപ്ലിക്കേഷനുകൾ, ഗെയിം വികസനം | മൈക്രോസോഫ്റ്റിന്റെ ശക്തമായ പരിസരം പിന്തുണയ്ക്കുന്നു | +| **ഗോ** | ക്ലൗഡ് സേവനങ്ങൾ, ബാക്ക്‌എൻഡ് സിസ്റ്റങ്ങൾ | വേഗതയുള്ള, ലളിതമായ, ആധുനിക കമ്പ്യൂട്ടിംഗിന് രൂപകൽപ്പന ചെയ്‌തത് | + +### ഹൈലെവൽ vs ലോലെവൽ ഭാഷകൾ + +സത്യത്തിൽ പഠനത്തിനു മുമ്പാണ് ഈ ആശയം എന്റെ മസ്തിഷ്‌കം പൊട്ടിച്ചത്, ഞാൻ ഉപമ നൽകുന്നു – അത് നിങ്ങൾക്കുമുള്ള സഹായിയായിരിക്കും എന്ന് പ്രതീക്ഷിക്കുന്നു! + +ഒരു മുസafir / വിദേശ യാത്രക്കാരനായി എന്ത് ഭാഷയും അറിയാതെ രാജ്യത്തു പോയി അടുത്ത ശൗചാലയം കണ്ടെത്തേണ്ടത് (നാം എല്ലാവരും പോയിട്ടുണ്ട്, അല്ലേ? 😅): + +- **താഴത്തെക്കു വരുന്ന പ്രോഗ്രാമിംഗ്**: നിങ്ങളുടെ പ്രാദേശിക ഭാഷയിലുള്ള ഒരു പഴയ മുത്തശ്ശി കൊണ്ട് പഴയ സംസ്കാരങ്ങൾ, പ്രാദേശിക തകരാറുകൾ, ഇന്സൈഡ് ജോക്കുകൾ ഉൾപ്പെടുത്തി പറയുമ്പോൾ. അത്ഭുതകരം, കാര്യക്ഷമവും... പക്ഷേ നിങ്ങൾക്ക് ദയവായി ഒരു ശൗചാലയം കണ്ടെത്താനാണെങ്കിൽ വളരെ ബുദ്ധിമുട്ടുള്ളത്. + +- **മുകളിൽ വരുന്ന പ്രോഗ്രാമിംഗ്**: നിന്നെ മനസിലാക്കുന്ന ഒരു പ്രാദേശിക സുഹൃത്ത് പോലെയാണ്. നിങ്ങൾ "ഞാൻ ശൗചാലയം കണ്ടെത്തേണ്ടതാണ്" എന്ന സാധാരണ ഇംഗ്ലീഷ് പറയുമ്പോൾ കുറവുകൾക്കായി പരിഭാഷെന്നും വഴിക്കാട്ടിയും നൽകുന്നു. + +പ്രോഗ്രാമിങ്ങിൽ ഇത് ഇങ്ങനെ കൂടിയാണ്: +- **താഴത്തെക്കു വരുന്ന ഭാഷകൾ** (അസംബ്ലി, C പോലുള്ള) നിങ്ങളുടെ കംപ്യൂട്ടറിലെ ഹാർഡ്വെയർ നേരിട്ട് നിയന്ത്രിക്കാൻ അനുവദിക്കുന്നു, പക്ഷെ യന്ത്രം പോലെ ചിന്തിക്കേണ്ടതുണ്ട് – വളരെ മനസ്സിലാക്കാൻ പ്രയാസമാണ്! +- **മുകളിൽ വരുന്ന ഭാഷകൾ** (ജാവാസ്ക്രിപ്റ്റ്, പൈതൺ, സി#) നിങ്ങൾ ഒരുപാട് മനുഷ്യപോലെ ചിന്തിക്കുമ്പോൾ പിന്നണിയിൽ യന്ത്രഭാഷ കൈകാര്യം ചെയ്യുന്നു. കൂടാതെ, പുതിയവരാരെന്ന ഓർമിച്ച് സഹായിക്കാൻ സന്നദ്ധരായ മനോഹര സമുദായങ്ങൾ ഇതിലേക്ക് ഉണ്ട്! + +നിങ്ങൾക്ക് ആരംഭിക്കാൻ ഞാൻ ഏത് ശുപാർശ ചെയ്യുന്നുവെന്ന് തില്ലോ? 😉 ഉയർന്നതലത്തിലുള്ള ഭാഷകൾ പരിശീലന ചക്രങ്ങൾ പോലെയാണ്, നീ ഒന്നും നീക്കം ചെയ്യാൻ ആഗ്രഹിക്കില്ല, കാരണം അത് അനുഭവം വളരെ സുഗമമാക്കും! + +```mermaid +flowchart TB + A["👤 മനുഷ്യന്റെ ചിന്ത:
'എനിക്ക് ഫിബൊനാച്ചി സംഖ്യകൾ കണക്കാക്കണം'"] --> B{ഭാഷാ നിലവാരം തിരയുക} + + B -->|ഉയർന്ന നില| C["🌟 ജാവാസ്ക്രിപ്റ്റ്/പൈതൺ
വായിക്കാനും എഴുതാനും എളുപ്പം"] + B -->|താഴ്ന്ന നില| D["⚙️ അസംബ്ലി/സി
നേരിട്ട് ഹാർഡ്വെയർ നിയന്ത്രണം"] + + C --> E["📝 എഴുതുക: fibonacci(10)"] + D --> F["📝 എഴുതുക: mov r0,#00
sub r0,r0,#01"] + + E --> G["🤖 കമ്പ്യൂട്ടർ മനസിലാക്കുന്നു:
ട്രാൻസ്ലേറ്റർ സങ്കീർണ്ണത കൈകാര്യം ചെയ്യുന്നു"] + F --> G + + G --> H["💻 അതേ ഫലം:
0, 1, 1, 2, 3, 5, 8, 13..."] + + style C fill:#e1f5fe + style D fill:#fff3e0 + style H fill:#e8f5e8 +``` +### ഉയർന്നതലത്തിലുള്ള ഭാഷകൾ എങ്ങനെ സുഹൃദയമായിട്ടാണ് കാണുന്നത് എന്ന് ഞാൻ കാണിച്ചുതരാം + +ശരി, ഉയർന്നതലത്തിലുള്ള ഭാഷകളോടുള്ള എന്റെ സ്നേഹം തീർത്തും വ്യക്തമായി കാണിക്കുന്ന ഉദാഹരണം കാണിക്കുകയാണ് – ഇതു കാണുമ്പോൾ ഞെട്ടാതിരിക്കുക. ഇത് ഭീതി തോന്നുന്നാവശ്യവും ആണ്. ആ കാരണമാണ് ഞാൻ പറയുന്നത്! + +നാം ഒരേ ജോലി രണ്ട് വ്യത്യസ്ത രീതികളിൽ എഴുതിയതാണ് കാണുന്നത്. രണ്ട് രീതികളും ഫിബൊനാച്ചി സിക്വൻസ് സൃഷ്ടിക്കുന്നു – ഓരോ സംഖ്യയും മുമ്പത്തെ രണ്ടിന്റെ കൂട്ടമാണ്: 0, 1, 1, 2, 3, 5, 8, 13... (രസകരം: പ്രകൃതിയിൽ എല്ലായിടത്തും ഈ മാതൃക കാണാം – സൂര്യക്കുളം സർക്കിളുകൾ, പൈൻകോൺ മാതൃകകൾ, ഗലക്സി രൂപീകരണം!) + +വ്യത്യാസം കാണാൻ തയ്യാറാണോ? നമുക്ക് പോകാം! + +**ഉയർന്നതല ഭാഷ (ജാവാസ്ക്രിപ്റ്റ്) – മനുഷ്യന് സൗഹൃദം:** + +```javascript +// ഘട്ടം 1: അടിസ്ഥാന ഫിബോണാച്ചി സജ്ജീകരണം +const fibonacciCount = 10; +let current = 0; +let next = 1; + +console.log('Fibonacci sequence:'); +``` + +**ഈ കോഡ് ചെയ്യും:** +- **ഒരുചെരിപ്പ് നിശ്ചയിക്കും**, ഫിബൊനാച്ചി സംഖ്യ എത്രത്തോളം സൃഷ്ടിക്കാനാണ് എന്നത് സംബന്ധിച്ച് +- **രണ്ട്변숫ുകൾ ആരംഭിക്കും**, ഇപ്പോഴത്തെ സംഖ്യയും അടുത്ത സംഖ്യയും ട്രാക്ക് ചെയ്യാനായി +- **സൂരാംശം ക്രമീകരിക്കും** (0, 1) ഫിബൊനാച്ചി മാതൃക നിർവ്വചിക്കാൻ +- **ഒരു തലക്കെട്ട് സന്ദേശം പ്രദർശിപ്പിക്കും** ഞങ്ങളുടെ ഫലം തിരിച്ചറിയാൻ + +```javascript +// ഘട്ടം 2: ലുപ് ഉപയോഗിച്ച് വിപ്രവാഹം സൃഷ്ടിക്കുക +for (let i = 0; i < fibonacciCount; i++) { + console.log(`Position ${i + 1}: ${current}`); + + // അനുക്രമത്തിലെ അടുത്ത സംഖ്യ ഗണിക്കുക + const sum = current + next; + current = next; + next = sum; +} +``` + +**ഇവിടെ സംഭവിക്കുന്ന കാര്യങ്ങൾ:** +- **`for` ലൂപ്പ് ഉപയോഗിച്ച്** സീക്വൻസിലെ ഓരോ സ്ഥാനത്തിലും യാത്രചെയ്യുന്നു +- **ഫലം പ്രദർശിപ്പിക്കുന്നു** ഓരോ സംഖ്യയും അതിന്റെ സ്ഥാനത്തോടുകൂടി ടെംപ്ലേറ്റ് ലിടെറൽ ഉപയോഗിച്ച് +- **അടുത്ത സംഖ്യ കണക്കാക്കുന്നു** ഇപ്പോഴത്തെയും അടുത്തതുമായ സംഖ്യകൾ കൂട്ടിച്ചേർത്ത് +- **ട്രാക്കിംഗ് വേരിയബിളുകൾ പുതുക്കുന്നു** അടുത്ത തവണയുടെ അതിക്രമം കൈകാര്യം ചെയ്യാൻ + +```javascript +// ഘട്ടം 3: ആധുനിക പ്രവർത്തന സമീപനം +const generateFibonacci = (count) => { + const sequence = [0, 1]; + + for (let i = 2; i < count; i++) { + sequence[i] = sequence[i - 1] + sequence[i - 2]; + } + + return sequence; +}; + +// ഉപയോഗ ഉദാഹരണം +const fibSequence = generateFibonacci(10); +console.log(fibSequence); +``` + +**മുൻപുള്ളത്:** +- **ആധുനിക എറോ ഫങ്ഷൻ സംഖ്യ ഉപയോഗിച്ച്** പുനരുപയോഗയോഗ്യമാക്കി പ്രവർത്തനം നിർമ്മിച്ചു +- **ഒരു അറേ നിർമ്മിച്ചു** മുഴുവൻ സീക്വൻസ് സൂക്ഷിക്കാൻ, ഒരൊറ്റ സംഖ്യ പ്രദർശിപ്പിക്കുന്നതിനുപകരം +- **അറേയുടെ ഇൻഡെക്സിംഗും ഉപയോഗിച്ചു** പുതിയ സംഖ്യ കണക്കാക്കാൻ +- **മുഴുവൻ പരമ്പര തിരിച്ചുനൽകി**, നമ്മുടെ പ്രോഗ്രാമിന്റെ ബാക്കി ഭാഗങ്ങളിൽ ഇഷ്ടാനുസരണം ഉപയോഗിക്കാൻ + +**താഴത്തെക്കു വരുന്ന ഭാഷ (ARM Assembly) – കംപ്യൂട്ടറിനോട് സൗഹൃദം:** + +```assembly + area ascen,code,readonly + entry + code32 + adr r0,thumb+1 + bx r0 + code16 +thumb + mov r0,#00 + sub r0,r0,#01 + mov r1,#01 + mov r4,#10 + ldr r2,=0x40000000 +back add r0,r1 + str r0,[r2] + add r2,#04 + mov r3,r0 + mov r0,r1 + mov r1,r3 + sub r4,#01 + cmp r4,#00 + bne back + end +``` + +ജാവാസ്ക്രിപ്റ്റ് പതിപ്പ് ഇംഗ്ലീഷ് നിർദ്ദേശങ്ങൾ പോലെ വായിക്കപ്പെടുന്നത് കാണുക, അസംബ്ലി പതിപ്പ് കംപ്യൂട്ടറിന്റെ പ്രോസസ്സറെ നേരിട്ട് നിയന്ത്രിക്കുന്ന cryptic കമാൻഡുകൾ ഉപയോഗിക്കുന്നു. രണ്ട് പതിപ്പുകളും ഒരേ ജോലി നിർവഹിക്കുന്നു, പക്ഷെ ഉയർന്നതല ഭാഷ മനുഷ്യർക്ക് മനസിലാക്കാനും എഴുതാനും പരിപാലിക്കാനും വളരെ എളുപ്പമാണ്. + +**മുൻകൂർ ശ്രദ്ധിക്കേണ്ട പ്രധാന വ്യത്യാസങ്ങൾ:** +- **വായനാസൗകര്യം**: ജാവാസ്ക്രിപ്റ്റ് വിവരപരമായ പേര് ഉപയോഗിക്കുന്നു, ഉദാ., `fibonacciCount`, അസംബ്ലി cryptic ലേബലുകൾ, ഉദാ., `r0`, `r1` +- **അഭിപ്രായങ്ങൾ**: ഉയർന്ന തലഭാഷകൾ സ്വയം രേഖപ്പെടുത്തുന്ന കോഡ് സൃഷ്ടിക്കുന്നതിന് വിശദീകരണാത്മകമായ വിശദീകരണങ്ങൾ പ്രോത്സാഹിപ്പിക്കുന്നു +- **ഘടന**: ജാവാസ്ക്രിപ്റ്റിന്റെ തർക്കബദ്ധമായ പ്രവാഹം മനുഷ്യർ പ്രശ്നങ്ങളെ ഘട്ടം ഘട്ടമായായി ചിന്തിക്കുന്ന രീതിയിലേക്ക് പൊരുത്തപ്പെടുന്നു +- **പരിപാലനം**: വ്യത്യസ്ത ആവശ്യങ്ങൾക്കായി ജാവാസ്ക്രിപ്റ്റ് പതിപ്പ് പുതുക്കൽ ചെയ്യുന്നത് ലളിതവും വ്യക്തവുമായാണ് + +✅ **ഫിബോണാച്ചി ശ്രേണി കുറിച്ച്**: ഈ അത്യന്തം മനോഹരമായ സംഖ്യാ ശ്രേണി (ഇവിടെയുള്ള ഓരോ സംഖ്യയും അതിന് മുന്നിലുള്ള രണ്ട് സംഖ്യകളുടെ ജോഡിയുടെ ഫലം ആയിരിക്കുന്നു: 0, 1, 1, 2, 3, 5, 8...) പ്രകൃതിയിൽ *എവിടെയും* കാണപ്പെടുന്നു! ഈ ശ്രേണി ഈരളിഞ്ചി ചിറകുകളിൽ, പൈന്കോണിന്റെ മാതൃകകളിൽ, നോട്ടുലസ് ശെല്ലുകളുടെ വളവിൽ, മരം ശാഖുകൾ വളരുന്ന രീതിയിലും കാണാം. ഗണിതവും കോഡും പ്രകൃതിയിലെ പ്രകൃതി സൃഷ്ടിക്കുന്ന സുന്ദരമായ മാതൃകകൾ നമ്മൾ മനസ്സിലാക്കി പുനരാവിഷ്കരിക്കാനും സഹായിക്കുന്നുവെന്ന് കാണുന്നത് സ്‌തബ്ധനാക്കുന്നുണ്ട്! + +## മായാജാലം സൃഷ്ടിക്കുന്ന അടിസ്ഥാനഘടകങ്ങൾ + +നന്നായി, നിങ്ങൾക്ക് പ്രോഗ്രാമിങ് ഭാഷകൾ പ്രവർത്തനത്തിൽ എങ്ങനെയാണ് എന്ന് കാണിച്ചുകഴിഞ്ഞു, ഇനി എല്ലാ പ്രോഗ്രാമുകളും എഴുതിയിരിക്കുന്ന അടിസ്ഥാനഘടകങ്ങൾ പരിശോധിക്കാം. ഇവയെ നിങ്ങളുടെ പ്രിയപ്പെട്ട പാചകക്രമത്തിൽ ഉള്ള അനിവാര്യമായ ഘടകങ്ങൾ പോലെ കരുതുക – ഓരോന്നിന്റെയും പ്രവർത്തനം നിങ്ങൾ മനസ്സിലാക്കി കഴിഞ്ഞാൽ നിങ്ങൾക്ക് ഏതൊരു ഭാഷയിലും കോഡ് വായിക്കാനും എഴുതാനുമാകും! + +ഇത് പ്രോഗ്രാമിങ്ങിന്റെ വ്യാകരണ പഠനത്തോടു സമാനമാണ്. സ്കൂളിൽ നിങ്ങൾ നാമം, ക്രിയ, അരുതായും വാക്യങ്ങൾ എങ്ങനെ പണിയാമെന്നു പഠിച്ച രീതിയെ ഓർക്കൂ! പ്രോഗ്രാമിംഗിന് സ്വന്തം ഒരു വ്യാകരണമുണ്ട്, ആ ഇംഗ്ലീഷ് വ്യാകരണത്തേക്കാൾ വളരെ തർക്കസങ്കേതം കൂടിയതും ക്ഷമയുള്ളതുമാണ്! 😄 + +### പ്രസ്താവനകൾ: ക്രമപൂർവ്വ നിർദ്ദേശങ്ങൾ + +**പ്രസ്താവനകൾ**-ൽ നിന്ന് ആരംഭിക്കാം – ഇ примерно നിങ്ങളുടെ കമ്പ്യൂട്ടറുമായുള്ള സംഭാഷണത്തിലെ വ്യത്യസ്തവാക്കൽ പോലെ. ഓരോ പ്രസ്താവനയും കമ്പ്യൂട്ടറിന് ഒരു പ്രത്യേക കാര്യം ചെയ്യാൻ പറയുന്നു, “ഇവിടെ ഇടതേക്ക് തിരിയൂ,” “ചുവന്ന ലൈറ്റിൽ നിർത്തൂ,” “അവിടെ പാർക്ക് ചെയ്യൂ,” എന്നിങ്ങനെ ഒരു മാര്‍ഗനിർദ്ദേശം നൽകുന്ന പോലെ. + +എനിക്ക് പ്രസ്താവനകൾ ഇഷ്ടം വല്ലപ്പോഴും അവർ എങ്ങനെ വായിക്കാൻ എളുപ്പമാണ് എന്ന് കാണുന്നതു്. ഇതു നോക്കൂ: + +```javascript +// ഏകകാർയങ്ങൾ നടത്തുന്നു അടിസ്ഥാന പ്രസ്താവനകൾ +const userName = "Alex"; +console.log("Hello, world!"); +const sum = 5 + 3; +``` + +**ഈ കോഡ് ചെയ്യുന്നത്:** +- ഒരു സ്ഥിരമായി നാമം സൂക്ഷിക്കാന്‍ സ്ഥിരം വേരിയബിൾ പ്രഖ്യാപിക്കുക +- കോൺസോൾ ഔട്ട്പുട്ടിലേക്ക് ഒരു അഭിവാദന സന്ദേശം പ്രദർശിപ്പിക്കുക +- ഗണിത പ്രവർത്തനത്തിന്റെ ഫലം കണക്കാക്കി സൂക്ഷിക്കുക + +```javascript +// വെബ് പേജുകളുമായി ഇടപെടുന്ന പ്രസ്താവനകൾ +document.title = "My Awesome Website"; +document.body.style.backgroundColor = "lightblue"; +``` + +**കൂടെ സി കൂട്ടത്തിൽ ഇത് നടക്കുന്നത്:** +- ബ്രൗസർ ടാബിൽ കാണുന്ന വെബ്പേജ് തലവാചകം മാറ്റുക +- പേജ് ബോഡിയുടെ പശ്ചാത്തല നിറം മാറ്റുക + +### വേരിയബിളുകൾ: നിങ്ങളുടെ പ്രോഗ്രാമിന്റെ മെമ്മറി സിസ്റ്റം + +ശരി, **വേരിയബിളുകൾ** എന്നത് എന്റെ ഏറ്റവും ഇഷ്ടപ്പെട്ട ആശയങ്ങളിലൊന്നാണ് കാരണം അവ നിങ്ങൾ എല്ലാ ദിവസവും ഉപയോഗിക്കുന്ന കാര്യങ്ങളോട് വളരെ സമാനമാണ്! + +നിങ്ങളുടെ ഫോണിലെ കോൺടാക്റ്റ് ലിസ്റ്റിനെ കുറിച്ച് ചിന്തിക്കു. ഓരോ ഫോൺ നമ്പറും നിങ്ങൾ ഓർക്കുകയില്ല – പകരം, “അമ്മ,” “സ്നേഹിതൻ,” “രാത്രി 2 മണി വരെ ഡെലിവറി ചെയ്യുന്ന പിസ്സാ തുടങ്ങിയവ സംഭരിച്ച് നിങ്ങളുടെ ഫോൺ ആ നമ്പറുകൾ ഓർക്കുന്നു. വേരിയബിളുകൾ യഥാക്രമം അങ്ങനെയാണ്! അവ ലേബൽ ചേർത്ത കുപ്പികളാണ്, അവിടെ നിങ്ങളുടെ പ്രോഗ്രാം വിവരങ്ങൾ സൂക്ഷിക്കാനും പിന്നീട് പേരlynനയിച്ച് ലഭിക്കാനുമാകും. + +മികച്ച കാര്യം: വേരിയബിളുകൾ പ്രോഗ്രാം പ്രവർത്തിക്കുമ്പോൾ മാറാം (അതിനാൽ "വേരിയബിൾ" എന്ന് പേരിട്ടിട്ടുണ്ട് – നോക്കൂ അതിന്റെ രസം!). നിങ്ങൾക്ക് മെച്ചപ്പെട്ട പിസ്സാ ഷോപ്പ് കണ്ടെത്തിയപ്പോൾ കോൺടാക്റ്റ് മാറ്റി കൊടുക്കുന്നതുപോലെ, പ്രോഗ്രാമും പുതിയ വിവരങ്ങൾ ശേഖരിച്ചുകൊണ്ട് വേരിയബിളുകൾ പുതുക്കും! + +ഇത് എത്ര എളുപ്പമാണെന്ന് എനിക്ക് കാണിക്കാം: + +```javascript +// ഘട്ടം 1: അടിസ്ഥാന വ്യത്യസ്തികൾ സൃഷ്ടിക്കൽ +const siteName = "Weather Dashboard"; +let currentWeather = "sunny"; +let temperature = 75; +let isRaining = false; +``` + +**ഈ ആശയങ്ങൾ മനസ്സിലാക്കാം:** +- `const` വേരിയബിളുകളിൽ മാറ്റം ഇല്ലാത്ത മൂല്യങ്ങൾ സൂക്ഷിക്കുക (ഉദാഹരണത്തിന് സൈറ്റ് നാമം) +- ആപ്ലിക്കേഷനിൽ മാറാവുന്ന മൂല്യങ്ങൾക്ക് `let` ഉപയോഗിക്കുക +- വ്യത്യസ്ത ഡാറ്റാ ടൈപ്പുകൾ വിനിയോഗിക്കുക: പദങ്ങൾ, സംഖ്യകൾ, ബൂലിയൻ (true/false) +- ഓരോ വേരിയബിൾ എന്ത് സൂക്ഷിക്കുന്നു എന്ന് വിശദമാക്കുന്ന നാമങ്ങൾ തിരഞ്ഞെടുക്കുക + +```javascript +// ഘട്ടം 2: ബന്ധപ്പെട്ട ഡാറ്റ കൂട്ടിച്ചേർക്കാൻ ഒബ്ജക്ടുകളുമായി പ്രവർത്തിക്കുക +const weatherData = { + location: "San Francisco", + humidity: 65, + windSpeed: 12 +}; +``` + +**മുകളിൽ, നാം:** +- ബന്ധിച്ച കാലാവസ്ഥാ വിവരങ്ങൾ കൂട്ടിയായി സൂക്ഷിക്കാൻ ഒരു ഒബ്ജക്ട് സൃഷ്ടിച്ചു +- ഒരു വേരിയബിൾ നാമത്തിൽ നിരവധി ഡാറ്റാ പീസ് ക്രമപ്പെടുത്തി +- ഓരോ വിവരവും തെളിയിക്കാൻ കീ-വാലു ജോഡികൾ ഉപയോഗിച്ചു + +```javascript +// ചുവടുവയ്പ് 3: ചേരുവകൾ ഉപയോഗിക്കുകയും പുതുക്കുകയും ചെയ്യൽ +console.log(`${siteName}: Today is ${currentWeather} and ${temperature}°F`); +console.log(`Wind speed: ${weatherData.windSpeed} mph`); + +// മാറിവരുന്ന ചേരുവകൾ പുതുക്കൽ +currentWeather = "cloudy"; +temperature = 68; +``` + +**ഓരോ ഭാഗവും മനസ്സിലാക്കാം:** +- `${}` സിന്റാക്സിൽ ടെംപ്ലേറ്റ് ലിറ്ററലുകൾ ഉപയോഗിച്ച് വിവരങ്ങൾ പ്രദർശിപ്പിക്കുക +- ഡോട്ട് നോട്ടേഷൻ ഉപയോഗിച്ച് ഒബ്ജക്ടിന്റെ ഗുണങ്ങൾ എങ്ങനെ ആക്‌സസ് ചെയ്യാം (`weatherData.windSpeed`) +- മാറ്റം വരുത്താവുന്ന അവസ്ഥകൾ `let` കണക്കാക്കിയ വേരിയബിളുകൾ പുതുക്കുക +- പല വേരിയബിളുകളും സംയോജിപ്പിച്ച് പ്രാസംഗിക സന്ദേശങ്ങൾ സൃഷ്ടിക്കുക + +```javascript +// ഘട്ടം 4: ശുചിത്വമുള്ള കോഡിനായി ആധുനിക വിഭജനം +const { location, humidity } = weatherData; +console.log(`${location} humidity: ${humidity}%`); +``` + +**നാം അറിയേണ്ടത്:** +- ഡിസ്ട്രക്ചറിംഗ് അസൈൻമെന്റ് വഴി ഒബ്ജക്ടുകളിലെ പ്രത്യേക ഗുണങ്ങൾപ്പെടുക +- ഒബ്ജക്റ്റ് കീകളും അതേ നാമത്തിലുള്ള പുതിയ വേരിയബിളുകൾ സ്വയം സൃഷ്ടിക്കുക +- ഉത്തരവാദിത്വം വീണ്ടും വീണ്ടും ഡോട്ട് നോട്ടേഷൻ ഒഴിവാക്കാൻ കോഡ് ലളിതമാക്കുക + +### കണ്ട്രോൾ ഫ്ലോ: നിങ്ങളുടെ പ്രോഗ്രാമിനെ ചിന്തിക്കാൻ പഠിപ്പിക്കൽ + +ശരി, ഇവിടെ പ്രോഗ്രാമിങ് അതീവ മനോഹരമായ തലത്തിലേക്ക് എത്തുന്നു! **കണ്ട്രോൾ ഫ്ലോ** എന്നു പറയുന്നത് essentially നിങ്ങൾ കൊടുത്തിട്ടുള്ള if-then വരെ ഉള്ള ലജിക് പ്രോഗ്രാമിന് പഠിപ്പിക്കുകയാണ്, നിങ്ങൾ ദിവസേന യോചിക്കാതെ തന്നെ ചെയ്യുന്നതുപോലെ. + +ഇന്ന് രാവിലെ നിങ്ങൾ “മഴയായി എങ്കിൽ കുട പിടിക്കും, തണുപ്പ് ഉണ്ടെങ്കിൽ ജാക്കറ്റ് ധരിക്കും, വൈകിയാൽ ബ്രേക്കഫാസ്റ്റ് വെട്ടിക്കൊണ്ടുപോവുകയും പാതിയിൽ കോഫി വാങ്ങുകയും ചെയ്യും” എന്ന് തീരുമാനിച്ചതുപോലെ, നിങ്ങളുടെ മസ്തിഷ്കം if-then ലജിക് അനേകം തവണ പ്രയോഗിക്കുന്നു! + +ഇതാണ് പ്രോഗ്രാമുകൾ ബുദ്ധിമുട്ടുകളില്ലാതെ കൃത്രിമ ബുദ്ധി പോലെ തോന്നുന്നതിനുള്ള കാരയം. അവ അവസ്ഥ കാണും, വിലയിരുത്തും, യോജിച്ച വിധം പ്രതികരിക്കും. നിങ്ങളുടെ പ്രോഗ്രാമിന് ഒരു മസ്തിഷ്കം നൽകുന്നതുപോലെ! + +ഇത് എത്ര മനോഹരമായി പ്രവർത്തിക്കുന്നത് കാണാമോ? ഞാൻ കാണിക്കുന്നു: + +```javascript +// ഘട്ടം 1: അടിസ്ഥാന ശരണീയ ന്യായം +const userAge = 17; + +if (userAge >= 18) { + console.log("You can vote!"); +} else { + const yearsToWait = 18 - userAge; + console.log(`You'll be able to vote in ${yearsToWait} year(s).`); +} +``` + +**ഈ കോഡ് ചെയ്യുന്നത്:** +- ഉപയോക്താവിന്റെ പ്രായം വോട്ടിംഗ് അർഹത പൂർത്തിയാകുമോ എന്നു പരിശോധിക്കുക +- വ്യത്യസ്ത കോഡ് ബ്ലോകുകൾ നിബന്ധനയുടെ ഫലപ്രകാരമുള്ള നടപടികൾ നടപ്പിലാക്കുക +- 18കപ്പുറം പ്രായമെങ്കിൽ വോട്ടിംഗിന് എത്ര സമയം ബാക്കി എന്നു കണക്കുകൂട്ടി കാണിക്കുക +- ഓരോ സാഹചര്യത്തിനും പ്രത്യേക ഉപകാരപ്രദമായ പ്രതികരണങ്ങൾ നൽകുക + +```javascript +// ഘട്ടം 2: ലാജിക്കൽ ഓപ്പറേറ്ററുകളുമായി ഒന്നിലധികം നിബന്ധനകൾ +const userAge = 17; +const hasPermission = true; + +if (userAge >= 18 && hasPermission) { + console.log("Access granted: You can enter the venue."); +} else if (userAge >= 16) { + console.log("You need parent permission to enter."); +} else { + console.log("Sorry, you must be at least 16 years old."); +} +``` + +**ഇവിടെ നടക്കുന്നതിനെ വിശദീകരിക്കുക:** +- `&&` (ആൻഡ്) ഒപ്പറേറ്റർ ഉപയോഗിച്ച് നിരവധി നിബന്ധനകൾ കൂട്ടിച്ചേർക്കുക +- വീണ്ടും `else if` ഉപയോഗിച്ച് വിട്ടുവീഴ്ച സാത്ത്വരങ്ങളുള്ള ഒരു അനുക്രമം സൃഷ്ടിക്കുക +- അവസാനത്തിലും എല്ലാവിധ സംഭവങ്ങളും കൈകാര്യം ചെയ്യാൻ `else` സ്റ്റേറ്റ്മെന്റ് നൽകുക +- വ്യത്യസ്ത പ്രതിഭാസങ്ങൾക്ക് വ്യക്തവും പ്രയോഗയോഗ്യവുമായ പ്രതികരണങ്ങൾ നൽകുക + +```javascript +// ഘട്ടം 3: ട്രിനറി ഓപ്പറേറ്ററോടു കൂടിയ സംക്ഷിപ്ത വ്യവസ്ഥിതികം +const votingStatus = userAge >= 18 ? "Can vote" : "Cannot vote yet"; +console.log(`Status: ${votingStatus}`); +``` + +**വിചാരിക്കേണ്ടത്:** +- ശ്ലേഷ്മ മൂല്യങ്ങൾക്കായി ടേണറി ഒപ്പറേറ്റർ (`? :`) ഉപയോഗിക്കുക +- ആദ്യം നിബന്ധനയെ എഴുതുക, തുടർന്ന് `?`, പിന്നീട് സത്യമെങ്കിൽ ഫലം, `:`, പിന്നെ അസത്യം ഫലം +- നിബന്ധനകളുടെ അടിസ്ഥാനത്തിൽ മൂല്യങ്ങൾ നൽകേണ്ട സാഹചര്യം ഉണ്ടെങ്കിൽ ഈ മാതൃക പ്രയോഗിക്കുക + +```javascript +// ഘട്ടം 4: നിരവധി പ്രത്യേക കേസുകൾ കൈകാര്യം ചെയ്യുന്നു +const dayOfWeek = "Tuesday"; + +switch (dayOfWeek) { + case "Monday": + case "Tuesday": + case "Wednesday": + case "Thursday": + case "Friday": + console.log("It's a weekday - time to work!"); + break; + case "Saturday": + case "Sunday": + console.log("It's the weekend - time to relax!"); + break; + default: + console.log("Invalid day of the week"); +} +``` + +**ഈ കോഡ് ഇതു സാധ്യമാക്കുന്നു:** +- വേരിയബിൾ മൂല്യത്തെ നിരവധി പ്രത്യേക സംഭവങ്ങളോട് പൊരുത്തപ്പെടുത്തുക +- ആഴ്ചയിലെ ദിവസം ഒന്നിലധികം കേസുകൾ കൂട്ടിച്ചേർക്കുക (വാരദിനങ്ങളും വാരാന്ത്യവും) +- പൊരുത്തം കണ്ടെത്തിയപ്പോൾ അനുയോജ്യമായ കോഡ് ബ്ലോക്ക് പ്രവർത്തിപ്പിക്കുക +- അനിവാര്യമായ കേസുകൾക്കായി ഡിഫോൾട്ട് കേസ് ഉൾപ്പെടുത്തുക +- അടുത്ത കേസ് അവസരത്തിലേക്ക് കോഡ് തുടരുമെന്നത് തടയാൻ ബ്രേക്ക് സ്റ്റേറ്റ്മെന്റുകൾ ഉപയോഗിക്കുക + +> 💡 **യാഥാർത്ഥ്യത്തിന്റെ ഉദാഹരണം**: കണ്ട്രോൾ ഫ്ലോയെ ഏറ്റവും ക്ഷമയുള്ള GPS നിക്കാൻപകരം നടത്തിപ്പ് ചെയ്യുന്ന രീതിയെന്നു കരുതുക. “മേൻ സ്ട്രീറ്റിൽ ട്രാഫിക് ഉണ്ടെങ്കിൽ ഹൈവേ വഴി പോകൂ. ഹൈവേ തടസപ്പെടുകയാണെങ്കിൽ കൗമാര അഴിമതി വഴി ശ്രമിക്കൂ” എന്നുപോലെ. പ്രോഗ്രാമുകൾ വിവിധ സാഹചര്യങ്ങൾക്ക് ബുദ്ധിമുട്ടില്ലാതെ പ്രതികരിക്കുന്നതിനും ഉപയോക്താക്കളെ മികച്ച അനുഭവം നൽകുന്നതിനും ഈ തരത്തിലുള്ള നിബന്ധനാപരമായ ലജിക് ഉപയോഗിക്കുന്നു. + +### 🎯 **സങ്കൽപ പരിശോധന: അടിസ്ഥാന ഘടകങ്ങൾ പ്രാവീണ്യം** + +**അടിസ്ഥാനങ്ങളിൽ നിങ്ങൾ എങ്ങനെയുണ്ട് നോക്കാം:** +- വേരിയബിൾ ഒപ്പം പ്രസ്താവന എന്നിങ്ങനെ വ്യത്യാസം നിങ്ങളുടെ സ്വത്തുപോലെ വിശദീകരിക്കാമോ? +- ഒരു യാഥാർത്ഥ്യ സാഹചര്യത്തിൽ if-then തീരുമാനവും ഉപയോഗിക്കൂ (നമ്മുടെ വോട്ടിംഗ് ഉദാഹരണത്തെപോലെ) +- പ്രോഗ്രാമിങ് ലജിക്കിൽ നിങ്ങൾക്ക് ആഷ്ചര്യം തോന്നിച്ച ഒരു കാര്യം എന്താണ്? + +**വേഗത്തിലുള്ള ആത്മവിശ്വാസ വർദ്ധനം:** +```mermaid +flowchart LR + A["📝 പ്രസ്താവനകൾ
(നിർദ്ദേശങ്ങൾ)"] --> B["📦 വേരിയബിൾസ്
(സംഭരണം)"] --> C["🔀 നിയന്ത്രണ പ്രവാഹം
(മുന്നണികൾ)"] --> D["🎉 പ്രവർത്തിക്കുന്ന പ്രോഗ്രാം!"] + + style A fill:#ffeb3b + style B fill:#4caf50 + style C fill:#2196f3 + style D fill:#ff4081 +``` +✅ **അടുത്തത് വരുന്നത്**: നമ്മൾ ഈ ആശയങ്ങളിൽ കൂടുതൽ ആഴത്തിൽ ഇറങ്ങിപ്പോകാനിരിക്കുകയാണ്! ഇപ്പോൾ, ഈ അസാധാരണമായ സാധ്യതകളെ കുറിച്ചുള്ള ആവേശം മനസ്സിലാക്കി മനസിലാക്കാൻ ശ്രദ്ധ പകർന്നു. നിബന്ധിതമായ കഴിവുകളും സാങ്കേതിക വിദ്യകളും നമ്മൾ ഒരുമിച്ച് അഭ്യസിക്കുമ്പോൾ സ്വാഭാവികമായി അനുബന്ധിക്കുകയും ചെയ്യും – ഇതു നിങ്ങൾക്ക് കരുതുന്നതേക്കാൾ കൂടുതലായും രസകരമാകും എന്ന് ഞാൻ വാഗ്ദാനം ചെയ്യുന്നു! + +## വ്യാപാര സാങ്കേതികവിദ്യകൾ + +ശരി, ഇത് ഞാൻ ഒരിക്കലും കടന്നുപോകാതെ രസിക്കുന്ന ഭാഗമാണ്! 🚀 ഇനി നാം അവരുടെ പുന്നപ്രസംഗങ്ങൾ കൊണ്ട് നിങ്ങളെ ഡിജിറ്റൽ ബഹ്റൂപാവതാരത്തിലുള്ള കീകൾ ലഭിച്ചവരായി തോന്നിക്കുന്ന അത്ഭുതകരമായ ഉപകരണങ്ങളെക്കുറിച്ച് സംസാരിക്കാനിരിക്കുകയാണ്. + +ഒരു ഷെഫിന് കൈകൾ പോലെയുള്ള സമതൂലിതവും മികവുമായി കത്തികൾ ഉണ്ടെന്നറിയാമല്ലോ? അല്ലെങ്കിൽ ഗാനരചയിതാവിന് സ്പർശം കൊണ്ട് തന്നെ പാട്ടുപാടുന്ന ഒരു ഗിറ്റാർ ഉണ്ടെന്നു? അതുപോലെ, ഡവലപ്പർമാർക്കുണ്ട് അവരുടെ അത്ഭുതകരമായ ഉപകരണങ്ങളെന്നു പറയാനാകുന്നവർ, അവ ചിന്തിക്കാൻ പോലും സാധിക്കാത്തത്രമാത്രം മികവാർന്നവയും പല സ്ഥലവും ഞെട്ടിക്കുന്നവയും ആണെന്ന് നിങ്ങൾ അത്ഭുതപ്പെടും – അവയുടെ മിക്കവരും പൂർണ്ണമായും സൗജന്യമാണ്! + +ഈ ഉപകരണങ്ങൾ എന്റെ മനസ്സ് എത്രമാത്രം ആവേശഭരിതമാക്കുവാൻ കഴിയുന്നുവെന്ന് ഞാൻ വെല്ലുവിളിക്കുന്നു – ഞാൻ അവയെ നിങ്ങളോടും പങ്കിടുകയാണ് കാരണം നമ്മുടെ സോഫ്റ്റ്‌വെയർ നിർമ്മാണത്തിന് ഏതു തരത്തിലോ മാറ്റമുണ്ടാക്കിയവയല്ലാതെ. നാം പറയുന്നത് AI സഹായികൾ അടങ്ങിയ കോഡ് എഴുത്ത് സഹായികൾ (നിങ്ങളെ വളരെ കൂടുതൽ സഹായിക്കുന്നവ!), വൈഫൈ വഴി എവിടെയുകിലും പൂർത്തിയാക്കാവുന്ന ക്ലൗഡ് പരിസ്ഥിതികൾ, പ്രോഗ്രാമിന്റെ X-റേ ദർശനത്തിനായി സമാനമായ ഉന്നത ಪರಿಶോധന ഉപകരണങ്ങൾ എന്നിവയാണ്. + +ഇനി അത്ഭുതപ്പെടുത്തുന്ന ഭാഗം: ഇവ “ആരంభകർക്കുള്ള ഉപകരണങ്ങൾ” അല്ല, നിങ്ങൾ വളർന്ന് വിട്ടുപോവുകേണ്ട തരം അല്ല. ഗൂഗിൾ, നെട്ഫ്ലിക്സ്, നിങ്ങൾ ഇഷ്ടപ്പെടുന്ന ഇന്‍ഡി ആപ്പ് സ്റ്റുഡിയോകൾ ഇപ്പോഴയും ഉപയോഗിക്കുന്ന പുത്തൻ പ്രൊഫഷണൽ ഗ്രേഡ് ഉപകരണങ്ങളാണ് ഇവ. നിങ്ങളെ ഉപയോഗിച്ചപ്പോൾ വളരെ പ്രൊഫഷണൽ ആയെന്ന് തോന്നും! + +```mermaid +graph TD + A["💡 നിങ്ങളുടെ ആശയം"] --> B["⌨️ കോഡ് എഡിറ്റർ
(VS കോഡ്)"] + B --> C["🌐 ബ്രൗസർ ഡെവ്ടൂൾസ്
(പരിശോധനയും ഡീബഗിംഗും)"] + C --> D["⚡ കമാൻഡ് ലൈൻ
(സ്വയംചാലകവും ഉപകരണങ്ങളും)"] + D --> E["📚 ഡോക്യുമെന്റേഷൻ
(അധ്യയനവും റഫറൻസും)"] + E --> F["🚀 അത്യുത്തമമായ വെബ് ആപ്!"] + + B -.-> G["🤖 എ.ഐ സഹായി
(GitHub കോപൈലറ്റ്)"] + C -.-> H["📱 ഉപകരണം പരിശോധന
(റെസ്പോൺസീവ് ഡിസൈൻ)"] + D -.-> I["📦 പാക്കേജ് മാനേജർമാർ
(npm, യാർൺ)"] + E -.-> J["👥 കമ്മ്യൂണിറ്റി
(സ്റ്റാക്ക് ഓവർഫ്ലോ)"] + + style A fill:#fff59d + style F fill:#c8e6c9 + style G fill:#e1f5fe + style H fill:#f3e5f5 + style I fill:#ffccbc + style J fill:#e8eaf6 +``` +### കോഡ് എഡിറ്ററുകളും ഇന്റഗ്രേറ്റഡ് ഡെവലപ്പ്മെന്റ് എൻവയിറൺമെന്റുകളും: നിങ്ങളുടെ പുതിയ ഡിജിറ്റൽ ചെറുക്കന്മാർ + +കോഡ് എഡിറ്ററുകളെക്കുറിച്ച് സംസാരിക്കാം – ഇവ വളരെ വേഗം നിങ്ങളുടെ ഏറ്റവും ഇഷ്ടപ്പെട്ട ഇടങ്ങളാകാൻ പോകുന്നു! അവയെ നിങ്ങളുടെ വ്യക്തിഗത കോഡിങ് അഭയാർത്ഥിയായായി കരുതുക, ഇവിടെ നിങ്ങൾ കൂടുതൽ സമയം ചെലവഴിക്കുമെന്ന്. + +ഇപ്പോൾ ആധുനിക എഡിറ്ററുകളുടെ അത്ഭുതകാരിത മനസ്സിലാക്കുക: അവ സാധാരണ ടെക്സ്റ്റ് എഡിറ്ററുകൾ മാത്രമല്ല. 24/7 എപ്പോഴും നിങ്ങളുടെ അടുത്ത് ഇരിക്കുന്ന അത്ര മനോഹരവും സഹായകവുമായ കോഡിങ് മെന്ററുകൾ പോലെ. അവർ നിങ്ങളെ നിങ്ങൾ കഴിഞ്ഞു കണ്ടുപിടിക്കാനും മുൻപേ തെറ്റുകൾ കണ്ടെത്തി ഉത്തമ നിർദേശങ്ങൾ നൽകുന്നു, ഓരോ കോഡിന്റെയും ഫങ്ഷൻ എന്താണെന്ന് മനസ്സിലാക്കാൻ സഹായിക്കുന്നു, ചിലപ്പോൾ നിങ്ങൾ ടൈപ്പ് ചെയ്യാൻ തുടങ്ങുമ്പോൾ അതിന്റെ പൂര്‍ത്തീകരണം നിർദേശിക്കുന്നു! + +എനിക്ക് ഓർക്കാം, ഓട്ടോ-കമ്പ്ലീഷൻ ആദ്യം കണ്ടപ്പോഴ് ഞാൻ തീർച്ചയായും ഭാവിയിൽ ജീവിക്കുന്നുവെന്നു തോന്നി. നിങ്ങൾ ടൈപ്പ് ചെയ്യുമ്പോൾ, നിങ്ങളുടെ എഡിറ്റർ ചൊല്ലുന്നു, “ഹേ, നീ ചിന്തിച്ചതു ഇതാ, ഈ ഫങ്ഷൻ അതെ ചെയ്യും!” മാനസിക വായനക്കാരനായി നിങ്ങളുടെ കോഡിങ് കൂട്ടുകാരനെ ఉండുന്നത് പോലെയാണ്! + +**ഇവ എനിക്കൊക്കെുന്നതിനുള്ള വിചിത്രം എന്ത്?** + +ആധുനിക കോഡ് എഡിറ്ററുകൾ നിർമ്മിതിയുടെ കാര്യക്ഷമത വർദ്ധിപ്പിക്കാൻ ഈ ഗുണങ്ങൾ വാഗ്ദാനം ചെയ്യുന്നു: + +| ഗുണം | ചെയ്യുന്നത് | സഹായിക്കുന്നതു് | +|---------|--------------|--------------| +| **സിന്റാക്സ് ഹൈലൈറ്റിംഗ്** | നിങ്ങളുടെ കോഡിന്റെ വ്യത്യസ്ത ഭാഗങ്ങൾ നിറം വരയ്ക്കുന്നു | കോഡ് വായിക്കാൻ എളുപ്പവും പിഴവുകൾ കണ്ടുകമറാനും | +| **ഓട്ടോ-കമ്പ്ലീഷൻ** | നിങ്ങൾ ടൈപ്പ് ചെയ്യുമ്പോൾ കോഡ് നിർദ്ദേശിക്കുന്നു | കോഡിംഗ് വേഗത്തിലാക്കുന്നു, പിഴവ് കുറയ്ക്കുന്നു | +| **ഡീബഗ്ഗിംഗ് ടൂൾസ്** | പിഴവുകൾ കണ്ടെത്താനും പരിഹരിക്കാനുമാകും | പിശകുകളെ തിരച്ചിൽ ചെയ്യാനായാൽ മണിക്കൂറുകൾ ലാഭിക്കും | +| **വികസനങ്ങൾ (എക്സ്റ്റൻഷൻസ്)** | പ്രത്യേക സവിശേഷതകൾ ചേർക്കാം | നിങ്ങളുടെ എഡിറ്റർ ഏതു സാങ്കേതികവിദ്യയ്ക്കും അനുയോജ്യമായി ഇഴഗം ചെയ്യാം | +| **AI സഹായികൾ** | കോഡ് നിർദ്ദേശങ്ങളും വിശദീകരണങ്ങളും നൽകുന്നു | പഠനം വേഗത്തിലാക്കുന്നു, ഉൽപ്പെടുക്കൽ വർദ്ധിപ്പിക്കുന്നു | + +> 🎥 **വീഡിയോ റിസോഴ്‌സ്**: ഈ ഉപകരണങ്ങൾ പ്രവർത്തനത്തിൽ കാണാൻ ആഗ്രഹിക്കുന്നുവോ? ഈ [Tools of the Trade വീഡിയോ](https://youtube.com/watch?v=69WJeXGBdxg) സംഗ്രഹം നോക്കുക. + +#### വെബ് വികസനത്തിന് ശുപാർശ ചെയ്ത എഡിറ്ററുകൾ + +**[Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon)** (സൗജന്യം) +- വെബ് ഡെവലപ്പർമാരിൽ ഏറ്റവും പരിപാലിതം +- മികച്ച എക്സ്റ്റൻഷൻ സമാഹാരം +- ഇൻബിൽട്ട് ടെർമിനൽ, Git സംയോജനം +- **ആവശ്യമായ എക്സ്റ്റൻഷനുകൾ**: + - [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) - AI അടിസ്ഥാനത്തിലുള്ള കോഡ് നിർദേശങ്ങൾ + - [Live Share](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare) - യഥാർത്ഥ-സമയ സഹകരണം + - [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) - സ്വയം കോഡ് ഫോർമാറ്റിംഗ് + - [Code Spell Checker](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker) - കോഡിൽ ടൈപ്പോസ് കണ്ടെത്തുക + +**[JetBrains WebStorm](https://www.jetbrains.com/webstorm/)** (പേയ്‍ഡ്, വിദ്യാർത്ഥികൾക്ക് സൗജന്യം) +- മുൻനിര ഡീബഗ്ഗിംഗ്, ടെസ്റ്റിംഗ് ഉപകരണങ്ങൾ +- ബുദ്ധിശാലിയായ കോഡ് ആധികാരികമായ പൂർത്തീകരണം +- ഇൻബിൽട്ട് വേർഷൻ നിയന്ത്രണം + +**ക്ലൗഡ് അടിസ്ഥാനമാക്കിയ IDEകൾ** (വിവിധ വില രൂപകൽപ്പനകൾ) +- [GitHub Codespaces](https://github.com/features/codespaces) - ബ്രൗസറിൽ പൂർണ്ണമായ VS കോഡ് +- [Replit](https://replit.com/) - പഠനത്തിനും കോഡ് പങ്കിടുന്നതിനുമായി മികച്ചത് +- [StackBlitz](https://stackblitz.com/) - ഉടൻ തുടങ്ങാൻ പൂർണ്ണ സ്റ്റാക്ക് വെബ് വികസനം + +> 💡 **ആരംഭിക്കാൻ സൂചന**: Visual Studio Code നിന്നു തുടങ്ങൂ – ഇത് സൗജന്യമാണ്, വ്യവസായത്തിൽ വ്യാപകമായി ഉപയോഗിക്കുന്നു, സഹായകമായ ട്യൂട്ടോറിയലുകളും എക്സ്റ്റൻഷനുകളും സൃഷ്ടിക്കുന്ന വലിയ സമൂഹമുണ്ട്. + +### വെബ് ബ്രൗസറുകൾ: നിങ്ങളുടെ രഹസ്യ ഡെവലപ്പ്മെന്റ് ലബോറട്ടറി + +ശരി, മനസ്സ് പൂര്‍ണമായി ഞെട്ടാൻ തയ്യാറാവുക! നിങ്ങൾ സോഷ്യൽ മീഡിയയിൽ സ്ക്രോൾ ചെയ്യാനും വീഡിയോകൾ കാണാനുമാണ് ബ്രൗസർ ഉപയോഗിക്കുന്നതെന്ന് അറിയാമല്ലോ? എന്നാൽ ബ്രൗസറുകൾ നിങ്ങൾ കണ്ടെത്താനായി സദാ കാത്തിരിക്കുന്ന അത്ഭുതകരമായ രഹസ്യ ഡെവലപ്പ്മെന്റ് ലബോറട്ടറി മറച്ചുവെച്ചിട്ടുണ്ട്! + +ഓരോ തവണയും നിങ്ങൾ ഒരു വെബ്പേജ് മൗസ് റൈറ്റ്-ക്ലിക്ക് ചെയ്ത് "Inspect Element" തിരഞ്ഞെടുക്കുമ്പോൾ, നിങ്ങൾ തുറക്കുന്നുണ്ട് വികസന ടൂളുകളുടെ ഒരു മറഞ്ഞുവച്ച ലോകം, അത് ചില അധിക വിലയുള്ള സോഫ്റ്റ്വെയറുകളേക്കാൾ ശക്തമാണ്. ഇത് നമ്മൾ സാധാരണമായി ഉപയോഗിക്കുന്ന അടുക്കളയുടെ പിന്നിൽ ഒരു പ്രൊഫഷണൽ ഷെഫിന്റെ ലബോറട്ടറി ഉള്ളതെന്നു കണ്ടെത്തുന്നതുപോലെ! +ഒരു ജോലിക്കാരൻ ആദ്യമായി ബ്രൗസർ DevTools എന്നത് എനിക്ക് കാണിച്ചതുകൾ കാണുമ്പോൾ, ഞാൻ ഏകദേശം മൂന്ന് മണിക്കൂറുകളോളം ചുറ്റി ക്ലിക്ക് ചെയ്യുകയായിരുന്നു, "കങ്ക, ഇതിനും സാധിക്കുമോ?!" നിങ്ങൾ യഥാർത്ഥ സമയത്ത് ഏതും വെബ്സൈറ്റ് എഡിറ്റ് ചെയ്യാനാകും, എത്ര വേഗം എല്ലാമും ലോഡ് ചെയ്യുന്നു എന്ന് കൃത്യമായി കാണാനാകും, നിങ്ങളുടെ സൈറ്റ് വ്യത്യസ്ത ഉപകരണങ്ങളിൽ എങ്ങനെ കാണപ്പെടുന്നു എന്ന് പരീക്ഷിക്കാം, സ്രഷ്ടാവ് പോലെ ജാവാസ്ക്രിപ്റ്റും ഡീബഗ് ചെയ്യാം. ഇത് ശരിക്കും മനോഹരമാണ്! + +**ബ്രൗസറുകൾ നിങ്ങളുടെ രഹസ്യ ആയുധമാണ് എന്നതു കൊണ്ട്:** + +നിങ്ങൾ ഒരു വെബ്സൈറ്റ് അല്ലെങ്കിൽ വെബ് അപ്ലിക്കേഷൻ സൃഷ്ടിക്കുമ്പോൾ, അത് യഥാർത്ഥ ലോകത്തിൽ എങ്ങനെ കാണപ്പെടുന്നു എന്നും എങ്ങനെ പ്രവർത്തിക്കുന്നു എന്നും കാണേണ്ടതാണ്. ബ്രൗസറുകൾ നിങ്ങളുടെ പ്രവർത്തനം പ്രദർശിപ്പിക്കുന്നതിനാൽ മാത്രമല്ല, പ്രകടനം, പ്രവേശനക്ഷമത, സാധ്യതയുള്ള പ്രശ്‌നങ്ങൾ എന്നിവയെക്കുറിച്ച് വിശദമായ ഫീഡ്ബാക്കും നൽകുന്നു. + +#### ബ്രൗസർ ഡെവലപ്പർ ടൂൾസ് (DevTools) + +ആധുനിക ബ്രൗസറുകൾ സമഗ്രമായ ഡെവലപ്‌മെന്റ് സ്യൂട്ടുകൾ ഉൾക്കൊള്ളുന്നു: + +| ടൂൾ വിഭാഗം | എന്ത് ചെയ്യുന്നു | ഉദാഹരണ ഉപയോഗം | +|-------------|---------------|------------------| +| **എലമെന്റ് ഇൻസ്പക്ടർ** | യഥാർത്ഥ സമയത്ത് HTML/CSS കാണാനും എഡിറ്റ് ചെയ്യാനും | തൽക്ഷണ ഫലങ്ങൾ കാണാൻ സ്റ്റൈലിംഗ് ക്രമീകരിക്കുക | +| **കോൺസോൾ** | പിശക് സന്ദേശങ്ങൾ കാണാനും ജാവാസ്ക്രിപ്റ്റ് പരീക്ഷിക്കാനും | പ്രശ്‌നങ്ങൾ ഡീബഗ് ചെയ്യാനും കോഡ് പരീക്ഷിക്കാനും | +| **നെറ്റ്‌വർക്ക് മൊണിറ്റോർ** | ഉറവിടങ്ങൾ എങ്ങനെ ലോഡ് ചെയ്യുന്നു എന്ന് പിന്തുടരുക | പ്രകടനം മെച്ചപ്പെടുത്താനും ലോഡിങ് സമയം കുറക്കാനും | +| **പ്രവേശനക്ഷമത ചെക്കർ** | ഉൾപ്പെടുത്തിയ ഡിസൈനിന് പരിശോധന നടത്തുക | നിങ്ങളുടെ സൈറ്റ് എല്ലാ ഉപയോക്താക്കൾക്കും പ്രവർത്തിക്കുന്നത്രെ ഉറപ്പാക്കുക | +| **ഉപകരണം സിമുലേറ്റർ** | വിവിധ സ്ക്രീൻ വലുപ്പങ്ങളിൽ പരിചയം നേടുക | பல ഉപകരണങ്ങൾ ഇല്ലാതെയും പ്രതിക്രിയാശേഷിയായ ഡിസൈന് പരിശോധിക്കുക | + +#### ഡെവലപ്‌മെന്റിന് ശുപാർശ ചെയ്ത ബ്രൗസറുകൾ + +- **[ക്രോം](https://developers.google.com/web/tools/chrome-devtools/)** - വിപുലമായ ഡോക്യുമെന്റേഷനിൽ പരിചിതമായ വ്യവസായ സ്റ്റാൻഡേർഡ് DevTools +- **[ഫയർഫോക്സ്](https://developer.mozilla.org/docs/Tools)** - CSS ഗ്രിഡും പ്രവേശനക്ഷമത ടെൂളുകളും ഉത്തമം +- **[എഡ്ജ്](https://docs.microsoft.com/microsoft-edge/devtools-guide-chromium/?WT.mc_id=academic-77807-sagibbon)** - ക്രോമിയത്തിൽ അടിസ്ഥാനമാക്കിയെടുത്ത മൈക്രോസോഫ്റ്റിന്റെ ഡെവലപ്പർ റിസോഴ്‌സുകൾ + +> ⚠️ **പ്രധാന പരീക്ഷണ ടിപ്പ്**: എപ്പോഴും വെബ്സൈറ്റുകൾ പല ബ്രൗസറുകളിലും പരിശോധിക്കുക! ക്രോമിൽ പൂർണ്ണമായും പ്രവർത്തിക്കുന്നതു സഫാരിയിൽ അല്ലെങ്കിൽ ഫയർഫോക്സിൽ വ്യത്യസ്തമായി കാണാനിടയുണ്ട്. പ്രൊഫഷണൽ ഡെവലപ്പർമാർ എല്ലാ പ്രധാന ബ്രൗസറുകളിലും പരീക്ഷണം നടത്തുന്നു, ഒരേ പോലെ ഉപയോക്താവ് അനുഭവം ഉറപ്പാക്കാൻ. + +### കമാൻഡ് ലൈനുകൾ: ഡെവലപ്പർ സൂപർപവർസിലേക്ക് നിങ്ങളുടെ കവാടം + +അതെ, കമാൻഡ് ലൈൻ സംബന്ധിച്ചു നമ്മൾ ഒരു സത്യസന്ധമായ നിമിഷം ചിലവിടാം, കാരണം ഞാൻ നിങ്ങൾ എന്തെന്ന് മനസിലാക്കുന്ന ഒരാൾക്കു നിന്നാണ് ഇത് പറയാൻ ആഗ്രഹിക്കുന്നത്. ആദ്യമായി ഞാൻ അത് കണ്ടപ്പോൾ – കറുത്തസ്ക്രീനിൽ ടൈപ്പ് ചെയ്യുന്ന വന്നു നീന്തിപ്പോകുന്ന അക്ഷരങ്ങളുള്ളത് – ഞാൻ ശരിക്കും കരുതി, "ഇല്ല, പൂർണ്ണമായും ഇല്ല! ഇത് 1980-കളിലെ ഹാക്കർ സിനിമയിൽനിന്നുള്ളത് പോലെ തോന്നുന്നു, ഞാൻ ഇതിന് മതി കുഴപ്പമില്ല!" 😅 + +പക്ഷെ, ആ സമയത്ത് ആരെയെങ്കിലും പറഞ്ഞുതരണമെന്നും ഞാൻ ആഗ്രഹിക്കുന്നത് ഇപ്പോൾ നിങ്ങൾക്ക് പറയും: കമാൻഡ് ലൈൻ ഭയപ്പെടേണ്ട ഒന്നല്ല – അത് നിങ്ങളുടെ കമ്പ്യൂട്ടറുമായി നേരിട്ട് സംഭാഷണം നടത്തുന്നതുപോലെയാണ്. ഫോട്ടോകളും മെനുവുകളും അടങ്ങിയ ഒരു ആപ്പിലൂടെ ഭക്ഷണം ഓർഡർ ചെയ്യുന്നതും (അതെളുപ്പമാണ്) നിങ്ങളുടെ ഇഷ്ടങ്ങൾ അറിയുന്ന ഒരു ഷെഫ് ഉള്ള പ്രിയപ്പെട്ട റെസ്റ്റോറന്റിലേക്ക് നേരിട്ടു ചേർന്ന് "എന്തെങ്കിലും അത്ഭുതം തരൂ" എന്ന് പറഞ്ഞുടനെ പുണ്യപുണ്യമായ ഒരിടവേള സൃഷ്ടിക്കപ്പെട്ടോ പോലെ. + +കമാൻഡ് ലൈനിൽ ഡെവലപ്പർമാർ മുഴുവൻ മായാജാലക്കാരെന്ന് തോന്നുന്നു. ചില മായാജാല വാക്കുകൾ (അതെ, നിങ്ങൾക്ക് അത്രേകമല്ല, അവ കമാൻഡുകൾ മാത്രമാണ്, പക്ഷെ അവ മായാജാലമുപോലെയാണ്) ടൈപ്പ് ചെയ്യുക, എന്റർ അമർത്തുക, പിന്നെ ബൂം- നിനക്ക് എന്റയർ പ്രോജക്റ്റ് റ്റ്രീകൾ സൃഷ്ടിച്ചിട്ടുണ്ടാകും, ലോകമാകെ നിന്ന് ഭീകരമായ ടൂളുകൾ ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ടാകും, അല്ലെങ്കിൽ നിങ്ങളുടെ അപ്ലിക്കേഷൻ ഇന്റർനെറ്റിൽ കോടികൾക്കായി പ്രക്ഷിപ്തമാക്കിയിട്ടുണ്ടാകും. ആദ്യം ആ ശക്തിയുടെ സ്വാദ് ലഭിച്ചാൽ, അത് സത്യം വളരെ പതിവാകും! + +**കമാൻഡ് ലൈൻ നിങ്ങളുടെ പ്രിയപ്പെട്ട ടൂൾ ആയേക്കാനുള്ള കാരണം:** + +ഗ്രാഫിക്കൽ ഇന്റർഫേസുകൾ പല ജോലികൾക്കും വിഗ്രഹമാണ്, പക്ഷെ കമാൻഡ് ലൈൻ ഓട്ടോമേഷൻ, കൃത്യത, അതിവേഗത എന്നിവയിൽ മികവ് പുലർത്തുന്നു. നിരവധി ഡെവലപ്മെന്റ് ടൂളുകൾ പ്രധാനമായും കമാൻഡ് ലൈൻ മുഖേന പ്രവർത്തിക്കുന്നു, അവ ശീഘ്രം പഠിച്ച് ഉപയോഗിക്കുന്നത് നിങ്ങളുടെ ഉൽപാദനക്ഷമത വൻ രീതിയിൽ മെച്ചപ്പെടുത്തും. + +```bash +# പടി 1: പ്രോജക്റ്റ് ഡയറക്ടറി സൃഷ്ടിച്ച് അവിടെ പോകുക +mkdir my-awesome-website +cd my-awesome-website +``` + +**ഈ കോഡ് ചെയ്യുന്നത്:** +- പ്രോജക്റ്റിന് പുതിയ ഡയറക്ടറി "my-awesome-website" സൃഷ്ടിക്കുക +- പുതിയ സൃഷ്ടിച്ച ഡയറക്ടറിയിലെക്ക് നീങ്ങുക ജോലി തുടങ്ങാൻ + +```bash +# ഘട്ടം 2: project പാക്കജ്.json ഉപയോഗിച്ച് ആരംഭിക്കുക +npm init -y + +# ആധുനിക വികസന ടൂളുകൾ ഇൻസ്റ്റാൾ ചെയ്യുക +npm install --save-dev vite prettier eslint +npm install --save-dev @eslint/js +``` + +**പടി പടി സംഭവിക്കുന്നത്:** +- `npm init -y` ഉപയോഗിച്ച് ഡീഫോൾട്ട് ക്രമീകരണത്തോടെ പുതിയ Node.js പ്രോജക്റ്റ് തുടക്കംവിടെക്കുക +- വേഗതയുള്ള ഡെവലപ്പ്മെന്റിനും പ്രൊഡക്ഷൻ ബിൽഡുകൾക്കുമായി ആധുനിക ബിൽഡ്‌ടൂൾ Vite ഇൻസ്റ്റാൾ ചെയ്യുക +- കോഡ് ഫോർമാറ്റിംഗ് ഓട്ടോമാറ്റിക്കും കോഡ് ഗുണമേന്മാ പരിശോധനയ്ക്ക് Prettier, ESLint ചേർക്കുക +- ഈ ഡിപ്പെൻഡൻസികൾ ഡെവലപ്മെന്റിനായി മാത്രം എന്നതിന് `--save-dev` ഫ്ലാഗ് ഉപയോഗിക്കുക + +```bash +# ഘട്ടം 3: പ്രോജക്റ്റ് ഘടനയും ഫയലുകളും സൃഷ്ടിക്കുക +mkdir src assets +echo 'My Site

Hello World

' > index.html + +# ഡവലപ്പ്മെന്റ് സർവർ ആരംഭിക്കുക +npx vite +``` + +**മുകളിൽ, ഞങ്ങൾ:** +- സോഴ്‌സ് കോഡിനും അസറ്റിനും പ്രത്യേകം ഫോൾഡറുകൾ സൃഷ്ടിച്ച് പ്രോജക്റ്റ് ക്രമീകരിച്ചു +- വിശദമായ ഡോക്യുമെന്റ് ഘടനയോടെ അടിസ്ഥാന HTML ഫയൽ ജനറേറ്റ് ചെയ്തു +- ലൈവ് റീലോഡിംഗിനും ഹോട്ട് മോഡ്യൂൾ റിപ്ലെയ്‌സ്‌മെന്റിനും Vite ഡെവലപ്‌മെന്റ് സെർവർ ആരംഭിച്ചു + +#### വെബ് ഡെവലപ്‌മെന്റിന് അടിസ്ഥാന കമാൻഡ് ലൈൻ ടൂൾസ് + +| ടൂൾ | ഉദ്ദേശ്യം | നിങ്ങൾക്ക് അതിന്റെ ആവശ്യം എന്തിന്? | +|-------|----------|------------------------------| +| **[Git](https://git-scm.com/)** | വെർഷൻ നിയന്ത്രണം | മാറ്റങ്ങൾ പിന്തുടരുക, മറ്റു പേർക്ക് സഹകരിക്കാൻ, ബാക്കപ്പ് എടുക്കാൻ | +| **[Node.js & npm](https://nodejs.org/)** | ജാവാസ്ക്രിപ്റ്റ് റണ്ണൈം & പാക്കേജ് മാനേജ്‌മെന്റ് | ബ്രൗസറിന് പുറത്തും ജാവാസ്ക്രിപ്റ്റ് റൺ ചെയ്യുക, ആധുനിക ടൂളുകൾ ഇൻസ്റ്റാൾ ചെയ്യുക | +| **[Vite](https://vitejs.dev/)** | ബിൽഡ് ടൂൾ & ഡെവ് സെർവർ | അതിവേഗ ഡെവലപ്മെന്റ് ഹോട്ട് മോഡ്യൂൾ റിപ്ലേസ്‌മെന്റ് ഉപയോഗിച്ച് | +| **[ESLint](https://eslint.org/)** | കോഡ് ഗുണമേന്മ | ജാവാസ്ക്രിപ്റ്റിലെ പ്രശ്‌നങ്ങൾ സ്വയം കണ്ടെത്തിയും പരിഹരിക്കുകയും ചെയ്യുക | +| **[Prettier](https://prettier.io/)** | കോഡ് ഫോർമാറ്റിംഗ് | നിങ്ങളുടെ കോഡ് സ്ഥിരമായി ഫോർമാറ്റ് ചെയ്ത് വായിക്കാൻ അനുകൂലമാക്കുക | + +#### പ്ലാറ്റ്ഫോം-നിർദിഷ്ട ഓപ്ഷനുകൾ + +**Windows:** +- **[Windows Terminal](https://docs.microsoft.com/windows/terminal/?WT.mc_id=academic-77807-sagibbon)** - ആധുനികവും സവിശേഷതകളുള്ള ടെർമിനൽ +- **[PowerShell](https://docs.microsoft.com/powershell/?WT.mc_id=academic-77807-sagibbon)** 💻 - ശക്തമായ സ്ക്രിപ്റ്റിംഗ് പരിസരം +- **[Command Prompt](https://docs.microsoft.com/windows-server/administration/windows-commands/?WT.mc_id=academic-77807-sagibbon)** 💻 - പാരമ്പര്യ വിംഡോസ് കമാൻഡ് ലൈൻ + +**macOS:** +- **[Terminal](https://support.apple.com/guide/terminal/)** 💻 - സിസ്റ്റത്തിൽ കഴിഞ്ഞു വരുന്ന ടെർമിനൽ അപ്ലിക്കേഷൻ +- **[iTerm2](https://iterm2.com/)** - ആണ് ടെർമിനൽ വീണ്ടും മേന്മയാർന്ന സവിശേഷതകളോടെ + +**Linux:** +- **[Bash](https://www.gnu.org/software/bash/)** 💻 - സ്റ്റാൻഡേഡ് ലിനക്സ് ഷെൽ +- **[KDE Konsole](https://docs.kde.org/trunk5/en/konsole/konsole/index.html)** - പുരോഗമനഫലമായി ടെർമിനൽ എമുലേറ്റർ + +> 💻 = പ്രവർത്തനവ്യവസ്ഥയിൽ മുൻകൂട്ടിയെഴുത്തായാണ് ഉൾപ്പെടുന്നത് + +> 🎯 **പഠന മാർഗ്ഗം**: `cd` (ഡയറക്ടറി മാറ്റുക), `ls` അല്ലെങ്കിൽ `dir` (ഫയലുകൾ പട്ടിക ചെയ്യുക), `mkdir` (ഫോൾഡർ ആക്കി ലഭിക്കുക) പോലുള്ള അടിസ്ഥാന കമാൻഡുകളിലൂടെ തുടങ്ങുക. ആധുനിക പ്രവാഹ കമാൻഡുകൾ `npm install`, `git status`, `code .` (നിലവിലെ ഡയറക്ടറി VS കോഡിൽ തുറക്കുന്നു) പരിശീലിക്കുക. കൂടുതൽ അഭ്യാസത്തോടെ, കൂടുതൽ പുരോഗമന കമാൻഡുകളും ഓട്ടോമേഷൻ സാങ്കേതികവിദ്യകളും സ്വാഭാവികമായി നിങ്ങൾക്ക് സാന്ദ്രമായിരിക്കും. + +### ഡോക്യുമെന്റേഷൻ: നിങ്ങളുടെ എപ്പോഴും ലഭ്യമായ പഠന ഗുരു + +നന്നായി, തുടക്കക്കാർക്കായി നിങ്ങൾക്ക് മനസിലാകാൻ സഹായിക്കുന്ന ഒരു രഹസ്യം പങ്കിടാം: ഏറ്റവും പരിചയസമ്പന്നരായ ഡെവലപ്പർമാർ പോലും അവരുടെ സമയത്തിന് വലിയൊരു ഭാഗം ഡോക്യുമെന്റേഷൻ വായിക്കുന്നതിനാണ് ചിലവിടുന്നത്. അവർ അറിയാത്തതിനാൽ അല്ല – പതിവിലായി ബുദ്ധിമുട്ടില്ലാതിരിക്കാൻ! + +ഡോക്യുമെന്റേഷൻ നിങ്ങളെപ്പോലെ 24/7 ലഭ്യമായ ലോകത്തെ ഏറ്റവും ക്ഷമയുള്ള, ജ്ഞാനമുള്ള അധ്യാപകരെ പോലെ തന്നെ കരുതുക. 2 AM-ന് ഒരു പ്രശ്‌നം പട്രിച്ച് പിടിച്ചാൽ? ഡോക്യുമെന്റേഷൻ ഉണ്ട് ഒരു വേനലക്കാറ്റു പോലെ, നിങ്ങൾക്ക് ആവശ്യമായ ഉത്തരം നൽകാൻ. എല്ലാവരോ സംസാരിക്കുന്ന പുതിയ ഫീച്ചർ പഠിക്കണമോ? ഡോക്യുമെന്റേഷൻ നിങ്ങളുടെ പിന്തുണയാണ് സുവിന്യാസം കൂടാതെ ഉദാഹരണങ്ങളോടെ. എന്തെങ്കിലും എങ്ങനെ പ്രവർത്തിക്കുന്നു എന്ന് മനസ്സിലാക്കാൻ ശ്രമിക്കുമ്പോൾ? അതാണ്, ഡോക്യുമെന്റേഷൻ തീർച്ചയായും അത് വ്യക്തമായി വിശദീകരിക്കും! + +ഇതൊന്നു എന്റെ തീർച്ചയായ ദൃഷ്ടികോണം മാറ്റി: വെബ് ഡെവലപ്പ്മെന്റ് ലോകം അതിവേഗം മാറുകയാണ്, ആരും എല്ലാം മനസ്സിലാക്കുവാൻ സാധിക്കും എന്ന് കരുതരുത് (പുതിയതായി പറയാനുതകും, ആരും അല്ല!). 15+ വർഷം പരിചയമുള്ള മുതിർന്ന ഡെവലപ്പർമാർ അടിക്കുറിപ്പുകൾ നോക്കുന്നത് ഞാൻ കണ്ടിട്ടുണ്ട്, അറിയാമോ? അത് ലജ്ജിക്കാൻ പാടില്ല – അത് ബുദ്ധിമുട്ടല്ല! ഇത് ഒരു മികച്ച സ്മരണയല്ല, മുൻകൂട്ടലായി എവിടെയാണ് വിശ്വസനീയമായ ഉത്തരം കണ്ടെത്താമെന്ന് അറിയുന്നത്. + +**ഇവിടെ യഥാർത്ഥ മാജിക് നടക്കുന്നു:** + +പ്രൊഫഷണൽ ഡെവലപ്പർമാർ അവരുടെ സമയം വലിയൊരു ശതമാനം ഡോക്യുമെന്റേഷൻ വായിക്കാൻ ചിലവിടുന്നു – അവർ അറിയാത്തതിനാൽ അല്ല, വെബ് ഡെവലപ്പ്മെന്റ് ലോക്കൻഡ് അതിവേഗം മാറിവരുന്നതുകൊണ്ട്, സുതാര്യമായി പഠനം തുടർച്ചയായിരിക്കണം. നല്ല ഡോക്യുമെന്റേഷൻ നിങ്ങളെ വെറും *എങ്ങനെ* ഉപയോഗിക്കാമെന്ന് മാത്രമല്ല, *എന്തിന്*, *എപ്പോൾ* ഉപയോഗിക്കാമെന്നും മനസിലാക്കാൻ സഹായിക്കുന്നു. + +#### അനിവാര്യ ഡോക്യുമെന്റേഷൻ വിഭവങ്ങൾ + +**[Mozilla Developer Network (MDN)](https://developer.mozilla.org/docs/Web)** +- വെബ് ടെക്നോളജി ഡോക്യുമെന്റേഷനിൽ സ്വർണ്ണ സ്റ്റാൻഡേർഡ് +- HTML, CSS, ജാവാസ്ക്രിപ്റ്റ് സംബന്ധിച്ച സമഗ്ര ഗൈഡുകൾ +- ബ്രൗസർ അനുഭവ്യത വിവരങ്ങൾ ഉൾപ്പെടുന്നു +- പ്രായോഗിക ഉദാഹരണങ്ങളും ഇന്ററാക്ടീവ് ഡെമോകളും + +**[Web.dev](https://web.dev)** (ഗൂഗിൾ) +- ആധുനിക വെബ് ഡെവലപ്പ്മെന്റ് മികച്ച രീതികൾ +- പ്രകടനം മെച്ചപ്പെടുത്തുന്ന മാർഗ്ഗനിർദ്ദേശങ്ങൾ +- പ്രവേശനക്ഷമതയും ഉൾപ്പെട്ട രൂപകൽപ്പന പ്രിൻസിപ്പളുകളും +- വാസ്തവ ലോക പദ്ധതികളിൽ നിന്നുള്ള കേസ് സ്റ്റഡികൾ + +**[Microsoft Developer Documentation](https://docs.microsoft.com/microsoft-edge/#microsoft-edge-for-developers)** +- എഡ് ബ്രൗസർ ഡെവലപ്പ്മെന്റ് വിഭവങ്ങൾ +- പ്രോഗ്രസ്സീവ് വെബ് ആപ്പ് മാര്‍ഗ്ഗ നിർദ്ദേശങ്ങൾ +- ക്രോസ്-പ്ലാറ്റ്ഫോം ഡെവലപ്പ്മെന്റ് അറിവുകൾ + +**[Frontend Masters Learning Paths](https://frontendmasters.com/learn/)** +- ഘടിത പഠന പരിപാടികൾ +- വ്യവസായ വിദഗ്ധരുടെ വീഡിയോ കോഴ്സുകൾ +- ഹന്റ്സോൺ കോഡിംഗ് അഭ്യാസങ്ങൾ + +> 📚 **പഠന തന്ത്രം**: ഡോക്യുമെന്റേഷൻ മനംമാറാതെ പഠിക്കാതെ അവിടെ എങ്ങനെ സുഖപ്രദമായി നാവിഗേറ്റ് ചെയ്യാമെന്ന് മനസ്സിലാക്കുക. സ്ഥിരമായി ഉപയോഗിക്കുന്ന റഫറൻസ് ബുക്ക് മാർക്ക് ചെയ്യുക, വേഗത്തിൽ പ്രത്യേക വിവരങ്ങൾ കണ്ടെത്താൻ തേടൽ സംവിധാനങ്ങൾ ഉപയോഗിക്കുന്നത് അഭ്യാസം നടത്തുക. + +### 🔧 **ടൂൾ മാസ്റ്ററി പരിശോധന: നിങ്ങൾക്ക് ഏത് താല്പര്യമുണ്ട്?** + +**ഒരു നിമിഷം ചിന്തിക്കാം:** +- നിങ്ങൾ ആദ്യം പരീക്ഷിക്കാൻ ഏറ്റവും ഉത്സുകനായ ടൂൾ ഏതാണ്? (തെറ്റില്ലാത്ത ഉത്തരം ഉണ്ടായിരിക്കും!) +- കമാൻഡ് ലൈൻ ഇപ്പോഴും ഭയപ്പെടുന്നുണ്ടോ, അതോ അതിൽ കാഴ്ചപ്പാട് ഉണ്ടായിരിക്കുന്നു? +- നിങ്ങൾക്ക് ബ്രൗസർ DevTools ഉപയോഗിച്ച് നിങ്ങളുടെ ഇഷ്ട വെബ്സൈറ്റുകളുടെ മറവിൽ ചുവടു നോക്കാമെന്ന് സ്വപ്‌നം കാണാനാകുന്നുണ്ടോ? + +```mermaid +pie title "ഉൽപ്പന്ന വികസ്വരതയ്ക്കുള്ള ടൂൾസുകൾക്കൊപ്പം വേള" + "കോഡ് എഡിറ്റർ" : 40 + "ബ്രൗസർ ടെസ്റ്റിംഗ്" : 25 + "കമ്മാൻഡ് ലൈൻ" : 15 + "ഡോകുകൾ വായിക്കൽ" : 15 + "ഡബഗ്ഗിങ്" : 5 +``` +> **വിനോദകരമായ അറിവ്**: ഡെവലപ്പർമാർ അവരുടെ കോഡ് എഡിറ്ററിൽ ഏകദേശം 40% സമയം ചിലവിടുന്നു, പക്ഷെ പരീക്ഷണം, പഠനം, പ്രശ്‌ന പരിഹാരം കാണുന്നതിൽ എത്ര സമയം ചെലവാകുന്നു ശ്രദ്ധിക്കുക. പ്രോഗ്രാമിംഗ് വെറും കോഡ് എഴുതൽ മാത്രം അല്ല – അനുഭവങ്ങൾ രൂപപ്പെടുത്തലാണ്! + +✅ **ചിന്തിക്കാൻ:** വെബ്സൈറ്റ് നിർമ്മാണത്തിനുള്ള ടൂളുകളും (ഡെവലപ്‌മെന്റും) അവയുടെ രൂപകൽപ്പനയ്ക്കുള്ള ടൂളുകൾ തമ്മിലുള്ള വ്യത്യാസം നിങ്ങൾക്ക് എങ്ങനെ തോന്നുന്നു? മനസിലാക്കാൻ സഹായിക്കുന്ന മറ്റ് അനുപാതമായ സ്വഭാവമാണ് ഇത് – ഒരു ആർക്കിടെക്റ്റാണ് ആഭരണം ഡിസൈൻ ചെയുന്നത്, മറ്റൊരാൾ കൺട്രാക്ടർ ആണ് അതിന്റെ നിർമ്മാണം നടത്തുന്നത്. രണ്ട് വഴികളും അനിവാര്യമാണ്, പക്ഷെ അവയ്ക്കും വ്യത്യസ്ത ടൂളുകൾ ആവശ്യമുണ്ട്! ഇത്തരം ചിന്തനങ്ങൾ നിങ്ങൾക്ക് വെബ്സൈറ്റുകൾ എങ്ങനെ പ്രാപിച്ചിരിക്കുന്നു എന്ന വലിയ ചിത്രം കാണാൻ സഹായിക്കും. + +## GitHub Copilot Agent Challenge 🚀 + +Agent മോഡ് ഉപയോഗിച്ച് താഴെ കൊടുത്തിരിക്കുന്ന ചലഞ്ച് പൂർത്തിയാക്കുക: + +**വിവരണം:** ആധുനിക കോഡ് എഡിറ്റർ അല്ലെങ്കിൽ IDE-യുടെ സവിശേഷതകൾ പരിചയപ്പെടുക, അത് വեբ് ഡെവലപ്പറായി നിങ്ങളുടെ പ്രവാഹം എങ്ങനെ മെച്ചപ്പെടുത്തുന്നു എഡീക്റ്റ് ചെയ്ത് കാണിക്കുക. + +**പ്രേരണ:** ഒരു കോഡ് എഡിറ്റർ അല്ലെങ്കിൽ IDE (ഉദാഹരണത്തിന് Visual Studio Code, WebStorm, അല്ലെങ്കിൽ ക്ലൗഡ്-അധിഷ്ഠിത IDE) തിരഞ്ഞെടുക്കുക. കോഡ് എഴുതാനും, ഡീബഗ് ചെയ്യാനും, പരിപാലിക്കാനുമുള്ള സഹായം നൽകുന്ന മൂന്ന് സവിശേഷതകൾ/എക്സ്റ്റൻഷനുകൾ പട്ടികപ്പെടുത്തുക. ഓരോതിൽ, നിങ്ങളുടെ പ്രവാഹത്തിന് ലഭിക്കുന്ന പ്രയോജനം ചുരുക്കം വിശദീകരിക്കുക. + +--- + +## 🚀 ചലഞ്ച് + +**ശരി, ഡിറ്റക്ടീവ്, നിങ്ങളുടെ ആദ്യ കേസിനായി തയ്യാറാകുവോ?** + +ഇപ്പോൾ നിങ്ങൾക്ക് ഈ ഉത്തമ അടിസ്ഥാനമുണ്ടാകും, ഞാൻ നിങ്ങളെ സഹായിക്കാൻ ഒരു സാഹസികതയുണ്ട്, പ്രോഗ്രാമിംഗ് ലോകം എത്ര വ്യത്യസ്തവും ആകർഷകവുമാണെന്ന് നിങ്ങൾക്കു കാണാൻ. കേൾക്കു – ഇതു ഇതുവരേയും കോഡ് എഴുതാനുള്ള കാര്യമല്ല, അതിനാൽ സമ്മർദ്ദം വേണ്ട! നിങ്ങളെ പ്രോഗ്രാമിംഗ് ഭാഷാ ഡിറ്റക്ടീവായി കരുതുക, നിങ്ങളുടെ ആദ്യ രസകരമായ കേസ്സിൽ! + +**നിങ്ങളുടെ ദൗത്യം, നിങ്ങൾ ഇത് സ്വീകരിച്ചാൽ:** +1. **ഭാഷാ എണ്ണയാളൻ ആവുക**: പൂർണ്ണമായും വ്യത്യസ്ത ലോകങ്ങളിലുള്ള മൂന്ന് പ്രോഗ്രാമിംഗ് ഭാഷകൾ തിരഞ്ഞെടുക്കുക – ഒരുവത് വെബ്സൈറ്റുകൾ നിർമ്മിക്കുന്ന ഭാഷ ആയിരിക്കും, മറ്റൊന്ന് മൊബൈൽ ആപ്പുകൾ സൃഷ്ടിക്കുന്നത്, മറ്റൊന്ന് ശാസ്ത്രജ്ഞർക്കായി ഡാറ്റ കണക്കുകൂട്ടുന്ന ഭാഷ. ഒരേ ലളിതമുള്ള പ്രവൃത്തി മൂന്നു ഭാഷകളിൽ എഴുതിയ ഉദാഹരണങ്ങൾ കണ്ടെത്തുക. ഒരിലവിൽ എത്ര വ്യത്യസ്തമായി കാണാമെന്നു നിങ്ങൾ വിസ്മയിക്കും! + +2. **അവരുടെ ആരംഭകഥകൾ കണ്ടെത്തുക**: ഓരോ ഭാഷയുടെ പ്രത്യേകത എന്താണ്? ഓരോ പ്രോഗ്രാമിംഗ് ഭാഷയും സൃഷ്ടിച്ചു കൊണ്ടിരുന്നത് "ഇതിനെക്കുറിച്ച് മികച്ചൊരു മാർഗ്ഗം ഉണ്ടാകണം" എന്ന മനസ്സ് കൊണ്ടായിരുന്നു. ആ പ്രശ്‌നങ്ങൾ എന്തൊക്കെയാണെന്ന് കണ്ടെത്തൂ. ചില കഥകൾ അതിന്ദ്രിയമാണ്! + +3. **സമൂഹങ്ങളെ പരിചയപ്പെടുക**: ഓരോ ഭാഷയുടെ സമൂഹം എത്ര ക്ഷണപ്രിയവും ഉത്സാഹപരവുമാണ് എന്ന് പരിശോധിക്കുക. ചിലർ കോടികളുടെ ഡെവലപ്പർമാരുള്ള വലുതായ സമുഹങ്ങൾ, മറ്റ് ചെറിയ പക്ഷേ വളരെയധികം കൂട്ടായ്മയും പിന്തുണയും ഉള്ള സമുഹങ്ങൾ. ഈ വ്യത്യസ്ത വ്യക്തിത്വങ്ങൾ കാണാൻ പാടില്ല! + +4. **അന്തരീക്ഷം അനുസരിച്ച് തിരഞ്ഞെടുക്കുക**: ഇപ്പോൾ ഏത് ഭാഷ നിങ്ങൾക്ക് ഏറ്റവും അടുത്തതായി തോന്നുന്നു? "പരമ" തിരഞ്ഞെടുപ്പിന് സമ്മർദ്ദം നൽകേണ്ടതില്ല – നിങ്ങളുടെ ഇഷ്ടാനുസരണം മാത്രം കേൾക്കുക! തെറ്റൊരു ഉത്തരം ഈ മേഖലയിൽ ഇല്ല, പിന്നീട് മറ്റുള്ളവയും പരിശോധിക്കാം. + +**ബോണസ് ഡിറ്റക്ടീവ് പ്രവർത്തനം**: ഓരോ ഭാഷയും ഉപയോഗിച്ച് നിർമ്മിച്ച പ്രധാന വെബ്‌സൈറ്റുകളോ ആപ്പുകളോ കണ്ടെത്താൻ ശ്രമിക്കുക. നിങ്ങൾ ഇഷ്ടപ്പെടുന്ന ഇൻസ്റ്റാഗ്രാം, നെറ്റ്ഫ്ലിക്സ്, അല്ലെങ്കിൽ ആ മൊബൈൽ ഗെയിം ഏതെല്ലാം ഭാഷ ഉപയോഗിക്കുന്നുവെന്ന് അറിഞ്ഞാൽ ഞെട്ടും! + +> 💡 **സ്മരിക്കുക**: ഇന്ന് ഈ ഭാഷകളിലെ കൈകഴിവിൽ മാത്തൃകയാകാൻ ശ്രമിക്കേണ്ടത് അല്ല. നിങ്ങളുടെ ആവാസസ്ഥലം തെരഞ്ഞെടുക്കുന്നതിനു മുമ്പ് പരിസരത്തെ മാത്രം അറിഞ്ഞിരിക്കുകയാണ് ലക്ഷ്യം. ധൈര്യം ചെയ്തു, രസിച്ച് പഠിക്കുക, നിങ്ങളുടെ കൗതുകം വഴി മുന്നോട്ട് പോകുക! + +## നിങ്ങൾ കണ്ടെത്തിയതിനെ ആഘോഷിക്കാം! + +ഓ മഹാത്മാ, ഇന്ന് നിങ്ങൾ എത്ര അത്ഭുതകരമായ വിവരങ്ങൾ സ്വീകാര്യമാക്കി! നിങ്ങൾ ഈ അത്ഭുതകരമായ യാത്രയിൽ എത്രയെത്ര കാര്യങ്ങൾ മനസ്സിലാക്കിയെന്ന് കാണാൻ ഞാൻ യഥാർത്ഥത്തിൽ ആവേശത്തിലാണ്. ഓർമ്മിക്കുക – ഇത് ഒരു പരീക്ഷണമല്ല, എല്ലാം തികച്ചും ശരിയല്ലാതെ ചെയ്യേണ്ടത്. നിങ്ങൾ പഠിച്ച എല്ലാ തികച്ചും ഉറ്റ ബന്ധങ്ങളുടെ ആഘോഷമാണ് ഇതു! + +[പോസ്റ്റ്-ലക്ഷൻ ക്വിസ് എടുത്തു നോക്കൂ](https://ff-quizzes.netlify.app/web/) +## അവലോകനം & സ്വയമാധ്യനം + +**ഇത് അന്വേഷിക്കാൻ സമയമെടുത്ത് അത് ആസ്വദിക്കുക!** + +നീങ്ങൾ ഇന്ന് വളരെ കാര്യങ്ങൾ പഠിച്ചു, അത് അഭിമാനിക്കാൻ പാടുള്ളതാണ്! ഇപ്പോൾ രസകരമായ ഭാഗമാകും – നിങ്ങളുടെ കൗതുകം ഉണർത്തുന്ന വിഷയങ്ങളിൽ ആഴത്തിൽ അന്വേഷണമാരംഭിക്കുന്നത്. ഓർമ്മിക്കുക, ഇത് ഹോംവർക്ക് അല്ല – ഇത് ഒരു സാഹസിക യാത്രയാണ്! + +**നിങ്ങളെ ആവേശവതിയാക്കുന്ന കാര്യങ്ങളിൽ കൂടുതൽ ആഴത്തിൽ പോകൂ:** + +**പ്രോഗ്രാമിംഗ് ഭാഷകളിൽ പ്രായോഗിക പരിചയം നേടുക:** +- നിങ്ങൾ ശ്രദ്ധേയമായ 2-3 ഭാഷകളുടെ ഔദ്യോഗിക വെബ്‌സൈറ്റുകൾ സന്ദർശിക്കുക. ഓരോന്നിന്റെയും തനതായ സ്വഭാവവും കഥയും ഉണ്ടാകാം! +- [CodePen](https://codepen.io/), [JSFiddle](https://jsfiddle.net/), അല്ലെങ്കിൽ [Replit](https://replit.com/) പോലുള്ള ഓൺലൈൻ കോഡിംഗ് പ്ലേഗ്രൗണ്ടുകളിൽ പരീക്ഷണങ്ങൾ നടത്തുക. പരീക്ഷിക്കാൻ ഭയപ്പെടേണ്ട! ഒന്നും തകരാറിലാകില്ല! +- നിങ്ങളുടെ ഇഷ്ടഭാഷ എന്തു തരത്തിൽ രൂപപ്പെട്ടുവെന്ന് വായിക്കുക. ചില കഥകൾ ശ്രദ്ധേയവും ചേതസ്സിലാക്കുന്നതുമായവയാണ്, അതിലൂടെ ഭാഷകൾ എന്തുകൊണ്ട് ആ രീതിയിൽ പ്രവർത്തിക്കുന്നു എന്ന് മനസ്സിൽ വരും. + +**നിങ്ങളുടെ പുതിയ ഉപകരണങ്ങളുമായി പരിചിതരാകൂ:** +- നിങ്ങൾ ഇനിയും ഡൗൺലോഡ് ചെയ്തില്ലേെങ്കിൽ Visual Studio Code ഡൗൺലോഡ് ചെയ്യൂ – ഇത് ഫ്രീയും നിങ്ങൾക്ക് വളരെ പ്രിയപ്പെട്ടതാകും! +- ഒരു കുറച്ച്പ്രാവശ്യം Extensions മാര്‍ക്കറ്റ്പ്ലേസ് ബ്രൗസ് ചെയ്യൂ. ഇത് നിങ്ങളുടെ കോഡ് എഡിറ്ററിന്റെ ആപ്പ് സ്റ്റോറുപോലെ ആണ്! +- ബ്രൗസറിലെ Developer Tools തുറന്ന് ഇതിലൊക്കെ നോക്കൂ, ക്ലിക്കു ചെയ്യൂ. എല്ലാം മനസ്സിലാക്കാൻ ഉദ്ദേശിക്കേണ്ട, പൊതു പരിചയം നേടുക. + +**കമ്മ്യൂണിറ്റിയിലേക്ക് ചേരൂ:** +- [Dev.to](https://dev.to/), [Stack Overflow](https://stackoverflow.com/), അല്ലെങ്കിൽ [GitHub](https://github.com/) പോലുള്ള ചില ഡെവലപ്പർ കമ്മ്യൂണിറ്റികൾ പിന്തുടരൂ. പ്രോഗ്രാമിംഗ് കമ്മ്യൂണിറ്റി പുതിയവരും അംഗീകരിക്കുന്ന വിധത്തിൽ വളരെ സൗഹൃദപരമാണ്! +- തുടക്കക്കാരന് അനുയോജ്യമായ കോഡിംഗ് വീഡിയോകൾ YouTube-ൽ കാണൂ. അനേകം നല്ല സൃഷ്ടിപ്രവണരുണ്ട്, അവരെ തുടക്കകാലം എങ്ങനെ അതിജീവിച്ചു എന്നത് അവർ ഓർക്കുന്നു. +- പ്രാദേശിക മീറ്റപ്പുകളോ ഓൺലൈൻ കമ്മ്യൂണിറ്റികളോ ചേരുന്നത് പരിഗണിക്കുക. വിശ്വസിക്കൂ, ഡെവലപ്പർമാർ തുടക്കക്കാരെ സഹായിയെ സ്‌നേഹിക്കുന്നു! + +> 🎯 **കേൾക്കൂ, ഇങ്ങനെ ഞാന് നിങ്ങൾക്ക് ഓർമ്മപ്പെടുത്താൻ ആഗ്രഹിക്കുന്നത്**: ഒരിക്കലും ഒരുനൈപുണ്യശാലിയായ കോഡർ ആകണമെന്നു പ്രതീക്ഷിക്കരുത്! ഇപ്പോള്‍ നിങ്ങൾ ഈ അത്ഭുതകരമായ പുതിയ ലോകം പരിചയപ്പെടുകയാണ്. സമയം എടുത്ത്, യാത്രയെ ആസ്വദിക്കുക, ഓര്‍മിക്കുക – നിങ്ങളെ അപരിചിതനാക്കി മാറ്റുന്ന എല്ലാ ഡെവലപ്പർമാരും ഒരു കാലത്ത് നിങ്ങളോടു സദൃശമായ നിലയിൽ ഇരുന്നിരുന്നത്, ഉദ്ദേശം ഉണരുകയും ചെറിയ ഞെട്ടലുമായി. അതാണ് സ്വാഭാവികം, അത് നിങ്ങൾ ശരിയായ മാര്‍ഗത്തിലാണ് എന്നതിന് തെളിവാണ്! + + + +## അസൈൻമെന്റ് + +[Reading the Docs](assignment.md) + +> 💡 **നിങ്ങളുടെ അസൈൻമെന്റിനുള്ള ചെറിയ പ്രേരണം**: നമ്മൾ ഇതുവരെ പരാമർശിച്ചിട്ടില്ലാത്ത ചില ഉപകരണങ്ങൾ നിങ്ങൾ അന്വേഷിക്കുന്നതിന് ഞാൻ ആഗ്രഹിക്കുന്നു! ഞങ്ങൾ ഇതിനകം പറഞ്ഞ എഡിറ്ററുകളും ബ്രൗസറുകളുടെയും കമാൻഡ് ലൈനിലും ഉള്ള ടൂളുകളും ഒഴിവാക്കുക – അവിടെയുണ്ട് അത്ഭുതകരമായ ഡെവലപ്പ്മെന്റ് ടൂൾസിന്റെ ഒരു വലിയ രാജ്യം, അവ കണ്ടെത്താൻ കാത്തിരിക്കുന്നു. സജീവമായി പരിപാലിക്കപ്പെടുന്ന, ഉത്സാഹപരവും സഹായകവുമായ കമ്മ്യൂണിറ്റികൾ ഉള്ളവ തിരഞ്ഞെടുക്കൂ (ഇവയ്ക്ക് മികച്ച ട്യൂട്ടോറിയലുകളും, നേരിടുമ്പോൾ സഹായിക്കാൻ ഇഷ്ടപ്പെടുന്ന ആളുകളും ഉണ്ടായിരിക്കും). + +--- + +## 🚀 നിങ്ങളുടെ പ്രോഗ്രാമിംഗ് യാത്രാ ടൈംലൈൻ + +### ⚡ **അടുത്ത 5 മിനുട്ടിൽ ചെയ്യാവുന്ന കാര്യങ്ങൾ** +- [ ] ശ്രദ്ധേയമായ 2-3 പ്രോഗ്രാമിംഗ് ഭാഷാ വെബ്സൈറ്റുകൾ ബുക്ക്മാർക്ക് ചെയ്യുക +- [ ] നിങ്ങൾക്ക് ഇനിയും ഡൗൺലോഡ് ചെയ്യാതെ ഉണ്ടെങ്കിൽ Visual Studio Code ഡൗൺലോഡ് ചെയ്യുക +- [ ] ബ്രൗസറിന്റെ DevTools (F12) തുറന്ന് ഏതെങ്കിലും വെബ്സൈറ്റിൽ ക്ലിക്ക് ചെയ്യുക +- [ ] ഒരു പ്രോഗ്രാമിംഗ് കമ്മ്യൂണിറ്റിയിൽ ചേരുക (Dev.to, Reddit r/webdev, അല്ലെങ്കിൽ Stack Overflow) + +### ⏰ **ഈ മണിക്കൂറിൽ നേടാവുന്ന കാര്യങ്ങൾ** +- [ ] പാഠം കഴിഞ്ഞ് ക്വിസ് പൂരിപ്പിക്കുകയും ഉത്തരങ്ങൾ അവലോകനം ചെയ്യുകയും ചെയ്യുക +- [ ] VS Code-നെ GitHub Copilot എക്സ്റ്റൻഷനോടെ സജ്ജമാക്കുക +- [ ] ഓൺലൈനിൽ 2 വ്യത്യസ്ത പ്രോഗ്രാമിംഗ് ഭാഷകളിൽ "Hello World" ഉദാഹരണങ്ങൾ പരീക്ഷിക്കുക +- [ ] YouTube-ൽ “ഒരു ഡെവലപ്പറുടെ ദിനചര്യ” വീഡിയൊ കാണുക +- [ ] ഭാഷാന്വേഷണത്തെ തുടക്കം കുറിക്കുക (ചലഞ്ച് അനുസരിച്ച്) + +### 📅 **നിങ്ങളുടെ ആഴ്ച നളംഭ مؤتمرകൂഷാർ** +- [ ] അസൈൻമെന്റ് പൂര്‍ത്തിയാക്കി 3 പുതിയ ഡെവലപ്പുമെന്റ് ഉപകരണങ്ങൾ പരീക്ഷിക്കുക +- [ ] 5 ഡെവലപ്പർമാരെ അല്ലെങ്കിൽ പ്രോഗ്രാമിംഗ് അക്കൗണ്ടുകൾ സോഷ്യൽ മീഡിയയിൽ പിന്തുടരുക +- [ ] CodePen അല്ലെങ്കിൽ Replit-ൽ ചെറിയൊരു കൃതി നിർമ്മിക്കാൻ ശ്രമിക്കുക ("Hello, [Your Name]!" മാത്രം ആണെങ്കിൽ പോലും) +- [ ] ആരെയോ ഒരു ഡെവലപ്പറുടെ കോഡിംഗ് യാത്രയെ കുറിച്ചുള്ള ബ്ലോഗ് പോസ്റ്റ് വായിക്കുക +- [ ] ഒരു വിർച്വൽ മീറ്റപ്പ് ചേരുക അല്ലെങ്കിൽ പ്രോഗ്രാമിംഗ് ടോക്ക് കാണുക +- [ ] നിങ്ങളുടെ തിരഞ്ഞെടുത്ത ഭാഷ ഓൺലൈൻ ട്യൂട്ടോറിയലുകൾ ഉപയോഗിച്ച് പഠനാരംഭം നടത്തുക + +### 🗓️ **നിങ്ങളുടെ മാസാന്ത മാറ്റം** +- [ ] നിങ്ങളുടെ ആദ്യ ছোটൊരു പ്രോജക്റ്റ് നിർമ്മിക്കുക (ഒരു ലളിതമായ വെബ്പേജ് പോലും മതിയാകും!) +- [ ] ഒരു ഓപ്പൺ സോഴ്‌സ് പ്രോജക്റ്റിൽ സംഭാവന നൽകുക (ഡോക്യുമെന്റേഷൻ പരിഷ്ക്കാരങ്ങളിൽ നിന്ന് ആരംഭിക്കുക) +- [ ] പ്രോഗ്രാമിങ്ങ് യാത്ര ആരംഭിക്കുന്ന ആരെയെങ്കിലും മെന്റോർ ചെയ്യുക +- [ ] നിങ്ങളുടെ ഡെവലപ്പർ പോർട്ട്ഫോളിയോ വെബ്സൈറ്റ് സൃഷ്ടിക്കുക +- [ ] പ്രാദേശിക ഡെവലപ്പർ കമ്മ്യൂണിറ്റികളുമായി ബന്ധം സ്ഥാപിക്കുക അല്ലെങ്കിൽ പഠന സംഘം രൂപീകരിക്കുക +- [ ] നിങ്ങളുടെ അടുത്ത പഠന ഘട്ടം പദ്ധതിയിടുക + +### 🎯 **അവസാന പ്രതിഫലനം** + +** മുന്നോട്ട് പോകും മുൻപ്, ഒരു നിമിഷം ആഘോഷിക്കൂ:** +- ഇന്ന് പ്രോഗ്രാമിംഗിൽ ഏത് ഒരു കാര്യം നിങ്ങളെ ആവേശവതിയാക്കി? +- ഏതു ഉപകരണം അല്ലെങ്കിൽ ആശയം ആദ്യം അന്വേഷിക്കാൻ ആഗ്രഹിക്കുന്നു? +- ഈ പ്രോഗ്രാമിംഗ് യാത്ര ആരംഭിക്കാൻ എങ്ങിനെ നിങ്ങൾ അനുഭവിക്കുന്നു? +- ഇപ്പോൾ ഒരു ഡെവലപ്പറോട് ചോദിക്കാൻ നിങ്ങൾക്ക് ഒരു ചോദ്യമുണ്ടോ? + +```mermaid +journey + title നിങ്ങളുടെ ആത്മവിശ്വാസം വളര്‍ത്തുന്ന യാത്ര + section ഇന്നലെ + കൗതുകം: 3: You + ഭ്രാന്ത്: 4: You + ആവേശം: 5: You + section ഈ ആഴ്‌ച + കണ്ടെത്തല്‍: 4: You + പഠനം: 5: You + ബന്ധപ്പെടല്‍: 4: You + section അടുത്ത മാസം + നിര്‍മാണം: 5: You + ആത്മവിശ്വാസം: 5: You + മറ്റുള്ളവരേക്കാള്‍ സഹായം: 5: You +``` +> 🌟 **ഓർമ്മിക്കൂ**: എല്ലാ വിദഗ്ധരും ഒരുമിച്ചു ആരംഭിച്ചവരാണ്. എല്ലാ മുതിർന്ന ഡെവലപ്പർമാരുമെർക്കും ഇപ്പോഴത്തെ നിങ്ങൾപോലെയായിരുന്നു – ആവേശത്തോടെ, പെട്ടെന്നൊട്ടും അലസപ്പെടാതെ, എന്ത് സാധ്യമല്ല എന്നതിന് കൂടുതൽ സഹായികൾ തേടിക്കൊണ്ട്. നിങ്ങൾ അത്ഭുതകരമായ കൂട്ടത്തിലൊരുക്കപ്പെട്ടിരിക്കുന്നു, ഈ യാത്ര അസാധ്യമല്ലാത്ത ഒന്നാകും. പ്രോഗ്രാമിംഗിൻറെ അത്ഭുതകരമായ ലോകത്തിലേക്ക് സ്വാഗതം! 🎉 + +--- + + +**ബോധിപ്പിക്കൽ**: +ഈ ഡോക്യുമെന്റ് [Co-op Translator](https://github.com/Azure/co-op-translator) എന്ന AI വിവർത്തന സേവനം ഉപയോഗിച്ച് അനുവദമായതാണ്. നമുക്ക് കൃത്യത ഉറപ്പാക്കാൻ ശ്രമിച്ചിട്ടുണ്ടെങ്കിലും, ഓട്ടോമേറ്റഡ് വിവർത്തനങ്ങളിൽ പിഴവുകൾ അല്ലെങ്കിൽ അയോഗ്യതകൾ ഉണ്ടാകാമെന്ന് ദയവായി ശ്രദ്ധിക്കുക. അതിന്റെ മാതൃഭാഷയിലുള്ള കാര്യപ്രമാണം കൂടുതൽ വിശ്വസനീയമായ ഉറവിടമായി പരിഗണിക്കാൻ ഉചിതമാണ്. പ്രധാനമായ വിവരങ്ങൾക്ക് പ്രൊഫഷണൽ മനുഷ്യ വിവർത്തനം ശുപാർശ ചെയ്യപ്പെടുന്നു. ഈ വിവർത്തനം ഉപയോഗിക്കുന്നതിനാൽ ഉണ്ടാകുന്ന误വശേഷിയോ തെറ്റായ വ്യാഖ്യാനങ്ങളോ സംബന്ധിച്ച് ഞങ്ങൾ ഉത്തരവാദിത്വം ഏറ്റെടുക്കുന്നില്ല. + \ No newline at end of file diff --git a/translations/ml/1-getting-started-lessons/1-intro-to-programming-languages/assignment.md b/translations/ml/1-getting-started-lessons/1-intro-to-programming-languages/assignment.md new file mode 100644 index 000000000..b5b9b149b --- /dev/null +++ b/translations/ml/1-getting-started-lessons/1-intro-to-programming-languages/assignment.md @@ -0,0 +1,78 @@ + +# അസൈൻമെന്റ്: ആധുനിക വെബ് ഡവലപ്പ്മെന്റ് ടൂളുകൾ അന്വേഷിക്കൽ + +## നിർദ്ദേശങ്ങൾ + +വെബ് ഡവലപ്പ്മെന്റ് പരിസരത്ത് നൂറ്റുകണക്കിന് പ്രത്യേക ടൂളുകൾ ഉൾപ്പെടുന്നു, അവ ഡവലപ്പർമാർക്ക് അപ്ലിക്കേഷനുകൾ കാര്യക്ഷമമായി നിർമ്മിക്കാൻ, പരീക്ഷിക്കാൻ, സംരക്ഷിക്കാൻ സഹായിക്കുന്നു. ഈ പാഠത്തിൽ ഉൾപ്പെടുത്താത്ത, അതിന്റെ പൂരകമായ ടൂളുകൾ അന്വേഷിക്കുകയും മനസ്സിലാക്കുകയും ചെയ്യുക എന്നതാണ് നിങ്ങളുടെ പണി. + +**നിങ്ങളുടെ ദൗത്യമായിരിക്കും:** ഈ പാഠത്തിൽ ഉൾക്കൊണ്ടിട്ടില്ലാത്ത **മൂന്നു ടൂൾസ്** തിരഞ്ഞെടുക്കുക (ഇവിടെ നൽകിയ കോഡ് എൻഡിറ്ററുകൾ, ബ്രൗസറുകൾ, കമാൻഡ് ലൈനിൽ ഉപയോഗിക്കുന്ന ടൂളുകൾ തിരഞ്ഞെടുക്കാതിരിക്കുക). ആധുനിക വെബ് ഡവലപ്പ്മെന്റ് പ്രവൃത്തിസ്രോതസ്സുകളിൽ പ്രത്യേക പ്രശ്നങ്ങൾ പരിഹരിക്കുന്ന ടൂളുകളിലാണ് ശ്രദ്ധ കേന്ദ്രീകരിക്കേണ്ടത്. + +**ഓരോ ടൂളിനും നൽകേണ്ടത്:** + +1. **ടൂൾ പേര്‌യും വിഭാഗവും** (ഉദാഹരണത്തിന് "Figma - ഡിസൈൻ ടൂൾ" അല്ലെങ്കിൽ "Jest - ടെസ്റ്റിംഗ് ഫ്രെയിംവർക്ക्") +2. **ഉദ്ദേശ്യം, പ്രയോക്ഷങ്ങളും** - 2-3 വാക്യത്തിൽ വെബ് ഡവലപ്പർ ഈ ടൂൾ ഉപയോഗിക്കുന്നതിന്റെ കാരണവും അത് പരിഹരിക്കുന്ന പ്രശ്നങ്ങളും വിശദീകരിക്കുക +3. **അധികൃത ഡോക്യുമെന്റേഷൻ ലിങ്ക്** - ടൂളിന്റെ അധികൃത ഡോക്യുമെന്റേഷൻ അല്ലെങ്കിൽ വെബ്സൈറ്റിലേയ്ക്ക് ലിങ്ക് നൽകുക (പഠനസൈറ്റുകൾ അല്ല) +4. **സാങ്കേതിക പ്രവർത്തന പശ്ചാത്തലം** - പ്രൊഫഷണൽ ഡവലപ്പ്മെന്റ് പ്രവൃത്തിസ്രോതസ്സിൽ ഈ ടൂൾ എങ്ങനെ ഉൾക്കൊള്ളുന്നു എന്ന് ഒന്ന് പറയുക + +## നിർദേശിച്ച ടൂൾ വിഭാഗങ്ങൾ + +ഈ വിഭാഗങ്ങളിൽ നിന്നുള്ള ടൂളുകൾ അന്വേഷിക്കുക: + +| വിഭാഗം | ഉദാഹരണങ്ങൾ | അവ ചെയ്യുന്നത് | +|----------|----------|--------------| +| **ബിൽഡ് ടൂളുകൾ** | Vite, Webpack, Parcel, esbuild | പ്രൊഡക്ഷൻ വേണ്ടി കോഡ് ബണ്ടിൽ ചെയ്ത് ഓപ്റ്റിമൈസ് ചെയ്യുകയും വേഗത്തിലുള്ള ഡവലപ്പ്മെന്റ് സെർവറുകൾ നൽകുകയും ചെയ്യുന്നു | +| **ടെസ്റ്റിംഗ് ഫ്രെയിംവർക്കുകൾ** | Vitest, Jest, Cypress, Playwright | കോഡ് ശരിയായി പ്രവർത്തിക്കുന്നുണ്ടെന്ന് ഉറപ്പാക്കുകയും ബഗുകൾ കണ്ടെത്തുകയും ചെയ്യുന്നു | +| **ഡിസൈൻ ടൂളുകൾ** | Figma, Adobe XD, Penpot | മോകപ്പുകൾ, പ്രോട്ടോട്ടൈപ്പുകൾ, ഡിസൈൻ സിസ്റ്റങ്ങൾ സഹകരിച്ച് സൃഷ്ടിക്കുന്നു | +| **ഡിപ്ലോയ്മെന്റ് പ്ലാറ്റ്ഫോമുകൾ** | Netlify, Vercel, Cloudflare Pages | സൈറ്റ് ഹോസ്റ്റ് ചെയ്ത് സ്വയം CI/CD ആണോട് വിതരണം ചെയ്യുന്നു | +| **വർഷൻ കൺട്രോൾ** | GitHub, GitLab, Bitbucket | കോഡ് മാറ്റങ്ങൾ, സഹകരണം, പ്രോജക്ട് പ്രവൃത്തിസ്രോതസ്സുകൾ നിയന്ത്രിക്കുന്നു | +| **CSS ഫ്രെയിംവർക്കുകൾ** | Tailwind CSS, Bootstrap, Bulma | മുൻകൂട്ടി തയ്യാറാക്കിയ കോംപോണന്റ് ലൈബ്രറികൾ ഉപയോഗിച്ച് സ്റ്റൈലിംഗ് വേഗത്തിലാക്കുന്നു | +| **പ్యാക്കേജ് മാനേജർമാർ** | npm, pnpm, Yarn | കോഡ് ലൈബ്രറികൾ, ഡിപെൻഡൻസികൾ ഇൻസ്റ്റാൾ ചെയ്ത് മാനേജ് ചെയ്യുന്നു | +| **ആക്സസിബിലിറ്റി ടൂളുകൾ** | axe-core, Lighthouse, Pa11y | ഉൾപ്പെടുത്തലുള്ള ഡിസൈൻ, WCAG പാലന പരിശോധന നടത്തുന്നു | +| **API ഡവലപ്പ്മെന്റ്** | Postman, Insomnia, Thunder Client | ഡവലപ്പ്മെന്റിനിടെ APIകൾ പരീക്ഷിക്കുകയും ഡോക്യുമെന്റ് ചെയ്യുകയും ചെയ്യുന്നു | + +## ഫോർമാറ്റ് ആവശ്യങ്ങൾ + +**ഓരോ ടൂളിനും:** +``` +### [Tool Name] - [Category] + +**Purpose:** [2-3 sentences explaining why developers use this tool] + +**Documentation:** [Official website/documentation link] + +**Workflow Integration:** [1 sentence about how it fits into development process] +``` + +## ഗുണമേന്മ ഗൈഡ്ലൈനുകൾ + +- **നിലവിലുള്ള ടൂളുകൾ തിരഞ്ഞെടുക്കുക**: 2025-ൽ സജീവമായി പരിപാലിക്കുകയും വ്യാപകമായി ഉപയോഗിക്കപ്പെടുന്നതുമായ ടൂളുകൾ തിരഞ്ഞെടുക്കുക +- **പ്രാധാന്യമേൽക്കുക**: ടൂൾ എന്ത് ചെയ്യുന്നതാണ് ഞെളിയാക്കരുത്, പക്ഷേ അതിന്റെ പ്രത്യേക പ്രയോജനങ്ങൾ വിശദീകരിക്കുക +- **കൃത്യമായ സാങ്കേതിക പശ്ചാത്തലം**: മന:പൂർവം സാങ്കേതിക ടീമുകൾ ഉപയോഗിക്കുന്ന ടൂളുകൾ പരിഗണിക്കുക, ഹോബിസ്റ്റുകൾ മാത്രം അല്ല +- **വിവിധ വിഭാഗങ്ങൾ**: വ്യത്യസ്ത വിഭാഗത്തിൽ നിന്നുള്ള ടൂളുകൾ തിരഞ്ഞെടുക്കുക, പരിസരത്തിന്റെ വിപുലത കാണിക്കാൻ +- **ആധുനിക പ്രസക്തി**: ഇപ്പോഴത്തെ വെബ് ഡവലപ്പ്മെന്റ് പ്രവണതകൾക്കും മികച്ച രീതികൾക്കും അനുയോജ്യമായ ടൂളുകൾ മുൻനിരയിൽ വയ്ക്കുക + +## റൂബ്രിക് + +| ഉത്തമം | നന്നാണ് | മെച്ചപ്പെടുത്തലിന് ആവശ്യം | +|-----------|------|-------------------| +| **പ്രതിയായിട്ടും ടൂൾ ഉപയോക്താക്കളും അവ പരിഹരിക്കുന്ന പ്രശ്നങ്ങളും വ്യക്തമായി വിശദീകരിച്ചു** | **ടൂൾ എന്ത് ചെയ്യുന്നതെന്ന് വിശദീകരിച്ചു, പ്രയോജനത്തെ കുറിച്ചുള്ള ചില പശ്ചാത്തലങ്ങൾ വിട്ടുപോയി** | **ടൂളുകൾ അപരിചിതരായി എണ്ണിയിരിക്കുന്നു, അവയുടെ ഉദ്ദേശ്യം അല്ലെങ്കിൽ പ്രയോജനങ്ങൾ വ്യക്തമാക്കിയിട്ടില്ല** | +| **എല്ലാ ടൂളുകളുടെ അധികൃത ഡോക്യുമെന്റേഷൻ ലിങ്കുകൾ നൽകിയിട്ടുണ്ട്** | **അധികം അധികൃത ലിങ്കുകൾ നൽകി, ചിലത് 1-2 പഠനസൈറ്റുകൾ** | **പ്രധാനമായും പഠനസൈറ്റുകളിൽ ആശ്രയിച്ചു, അധികൃത ഡോക്യുമെന്റേഷൻ കുറഞ്ഞു** | +| **നിലവിലുള്ള, പ്രൊഫഷണൽ ഉപയോഗത്തിലുള്ള, വ്യത്യസ്ത വിഭാഗങ്ങളിൽ നിന്നുള്ള ടൂളുകൾ തിരഞ്ഞെടുക്കപ്പെട്ടു** | **നന്നായി ടൂളുകൾ തെരഞ്ഞെടുത്തു, എന്നാൽ വിഭാഗ വ്യത്യാസം സിമിതമായിരുന്നു** | **പഴയാ ടൂളുകൾ മാത്രം, അല്ലെങ്കിൽ ഒരേ വിഭാഗത്തിൽ നിന്നുള്ള ടൂളുകൾ മാത്രം** | +| **ടൂളുകൾ ഡവലപ്പ്മെന്റ് പ്രവൃത്തിസ്രോതസ്സിൽ എങ്ങനെ ചേരുന്നു എന്നുള്ള മനസ്സിലാക്കൽ തെളിയിച്ചു** | **പ്രൊഫഷണൽ പ്രവൃത്തിസ്രോതസ്സിലെ ചില ബോധം കാണിച്ചു** | **ടൂൾ ഫീച്ചറുകളിലുള്ള ശ്രദ്ധ മാത്രമാണ്, പ്രവൃത്തിസ്രോതസ്സിലെ ഗൂഢനിർവചനങ്ങൾ ഇല്ല** | + +> 💡 **അന്വേഷണ ഇനം:** വെബ് ഡവലപ്പർമാർക്ക് ജോബ് പോസ്റ്റിംഗുകളിൽ പ്രത്യക്ഷപ്പെടുന്ന ടൂളുകൾ അന്വേഷിക്കുക, ജനപ്രിയ ഡവലപ്പർ സർവേകൾ പരിശോധിക്കുക, യഥാർത്ഥത്തിൽ വിജയിച്ച ഓപ്പൺ സോഴ്സ് പ്രോജക്ടുകളിൽ ഉപയോഗിക്കുന്ന ഡിപെൻഡൻസികൾ കണ്ടുപിടിക്കുക! + +--- + + +**അസ്വീകാര്യം**: +ഈ രേഖ [Co-op Translator](https://github.com/Azure/co-op-translator) എന്ന എ.ഐ. ഭാഷാ പരിഭാഷാ സേവനം ഉപയോഗിച്ച് പരിഭാഷ ചെയ്തിരിക്കുന്നു. ഞങ്ങൾ കാര്യക്ഷമതയിലേക്ക് ശ്രമിക്കുന്നുവെങ്കിലും, സ്വയമേറ്റ പരിഭാഷകളിൽ പിശകുകളും അസത്യതകളും ഉണ്ടാകാനുള്ള സാധ്യതയുണ്ട് എന്ന് കരുതുക. അതിനാൽ, യഥാർത്ഥ പ്രമാണം അതിന്റെ സ്വതന്ത്ര ഭാഷയിൽ തികച്ചും പ്രാമാണികമായ ഉറവിടമെന്ന നിലയിൽ പരിഗണിക്കണമെന്നും ശുപാർശ ചെയ്യുന്നു. പ്രധാനപ്പെട്ട വിവരങ്ങൾക്ക് പ്രൊഫഷണൽ മനുഷ്യ പരിഭാഷ ഉപഭോഗിക്കുന്നത് ഉചിതമാണ്. ഈ പരിഭാഷ ഉപയോഗിക്കുന്നതിനാൽ സൃഷ്ടമായ ഏതെങ്കിലും തെറ്റിദ്ധാരണകൾക്കും തെറ്റായ വ്യഖ്യാനങ്ങൾക്കും ഞങ്ങൾ ഉത്തരവാദിത്വം വഹിക്കുന്നില്ല. + \ No newline at end of file diff --git a/translations/ml/1-getting-started-lessons/2-github-basics/README.md b/translations/ml/1-getting-started-lessons/2-github-basics/README.md new file mode 100644 index 000000000..1573b44cf --- /dev/null +++ b/translations/ml/1-getting-started-lessons/2-github-basics/README.md @@ -0,0 +1,774 @@ + +# ഗിറ്റ്ഹബ്ബ് പരിചയം + +ഹൈ, ഭാവിയിലെ ഡെവലപ്പർ! 👋 ലോകമെമ്പാടും ലക്ഷങ്ങൾ കോഡർമാരെ ചേർന്നുവരാൻ തയ്യാറാണോ? ഗിറ്റ്ഹബ്ബിനെ നിങ്ങൾക്കു പരിചയപ്പെടുത്താൻ ഞാൻ അസാധാരണമായി ആവേശത്തിലാണ് – പ്രോഗ്രാമർമാർക്കുള്ള സോഷ്യൽ മീഡിയ പ്ലാറ്റ്‌ഫോമാണ് എന്ന് കരുതുക, എന്നാൽ നിങ്ങളുടെ ലഞ്ചിന്റെ ഫോട്ടോകൾ പങ്കിടുന്നതിനിടയ്ക്ക് പകരം, നാം കോഡ് പങ്കുവെച്ച് അത്ഭുതകരമായ കാര്യങ്ങൾ ერთად സൃഷ്ടിക്കുന്നു! + +എനിക്ക് തീർച്ചയായും മനസിലാകാത്തത് ഇതാണ്: നിങ്ങൾ ഫോൺ ഉപയോഗിക്കുന്ന എല്ലാ ആപ്ലിക്കേഷനുകളും, നിങ്ങൾ സന്ദർശിക്കുന്ന ഓരോ വെബ്‌സൈറ്റും, നിങ്ങൾ പഠിക്കാനുദ്ദേശിക്കുന്ന ഉറപ്പിക്കുന്പോഴും ടൂൾസും, ദൃശ്യമായി GitHub പോലെയുള്ള പ്ലാറ്റ്ഫോമുകളിൽ സഹകരിച്ച് നിർമ്മിച്ചത് ഡെവലപ്പർമാരുടെ ടീമുകളാണ്. നിങ്ങൾ പ്രിയമുള്ള സംഗീത ആപ്പ്? ആപ്ലിക്കേഷനിൽ നിങ്ങൾ പോലൊരു ഒരാൾ സംഭാവന നൽകിയതാണ്. നിങ്ങൾ വിട്ടുകിട്ടാനാകാത്ത ആ ഗെയിം? അതും ഒരുപക്ഷെ GitHub സഹകരണത്തോടെ ആണ് നിർമ്മിച്ചത്. ഇപ്പോൾ നിങ്ങൾ ആ അത്ഭുതകരമായ സമുദായത്തിന്റെ ഭാഗമാകാൻ പഠിക്കുകയാണ്! + +ആദ്യം ഇതെല്ലാം ആഭ്യന്തരമായി ഭീതികരമായിരിക്കാം എന്ന് എനിക്ക് അറിയാം – ഞാൻ എന്റെ ആദ്യ GitHub പേജ് നോക്കി "ഇത് എന്താണെന്ന് മനസ്സിലാകുന്നില്ല" എന്ന് ഞാൻ ഓർക്കുന്നു. പക്ഷേ ഇതാണ് കാര്യം: ഓരോ ഡെവലപ്പറും നിങ്ങൾ നിലവിലുള്ള സമയത്ത് ഏതേക്കുകയുമാണ് ആരംഭിച്ചത്. ഈ പാഠത്തിനൊടുവിൽ, നിങ്ങൾക്ക് നിങ്ങളുടെ സ്വന്തം GitHub റെപ്പോസിറ്ററി ഉണ്ടാകും (ഇത് നിങ്ങളുടെ വ്യക്തിഗത പ്രോജക്ട് പ്രദർശനശാലയായി കണക്കാക്കാം), നിങ്ങൾ നിങ്ങളുടെ പ്രവർത്തനം എങ്ങനെ സംരക്ഷിക്കാമെന്നും, മറ്റുള്ളവർക്കൊപ്പവും പങ്കുവെക്കാനും, മാസങ്ങളോളം ആളുകൾ ഉപയോഗിക്കുന്ന പ്രോജക്ടുകളിൽ സംഭാവന ചെയ്യാനും അറിയാം. + +ഈ യാത്ര ഞങ്ങൾ ഒന്നിച്ച് കാൽ ചവിട്ടി തുടരും. വേഗം വേണ്ട, സമ്മർദ്ദം വേണ്ട – നിങ്ങൾക്കും, എനിക്കും, ഇനി നിങ്ങളുടെ പുതിയ മികച്ച കൂട്ടുകാരായി മാറാൻ പോകുന്ന ചില മികച്ച ഉപകരണങ്ങൾക്കുമൊത്ത്! + +![Intro to GitHub](../../../../translated_images/webdev101-github.8846d7971abef6f9.ml.png) +> സ്കെച്ച്നോട്ട് [Tomomi Imura](https://twitter.com/girlie_mac) द्वारा + +```mermaid +journey + title നിങ്ങളുടെ GitHub സാഹസിക യാത്ര ഇന്നകം + section ക്രമീകരിക്കൽ + Git ഇൻസ്റ്റാൾ ചെയ്യുക: 4: You + അക്കൗണ്ട് സൃഷ്‌ടിക്കുക: 5: You + ആദ്യ റീപോസിറ്ററി: 5: You + section Git മാസ്റ്റർ ചെയ്യുക + ലൊക്കൽ മാറ്റങ്ങൾ: 4: You + കമ്മിറ്റുകളും പുഷുകളും: 5: You + ബ്രാഞ്ച് ചെയ്യൽ: 4: You + section സഹകരിക്കുക + പ്രോജക്റ്റുകൾ ഫോർക്ക് ചെയ്യുക: 4: You + പുൾ റിക്വസ്റ്റുകൾ: 5: You + ഓപ്പൺ സോഴ്‌സ്: 5: You +``` +## പ്രീ-ലെക്ടർ ക്വിസ് +[പ്രീ-ലെക്ചർ ക്വിസ്](https://ff-quizzes.netlify.app) + +## പരിചയം + +വളരെ രസകരമായ കാര്യങ്ങളിൽ ചാടിവരുന്നതിനു മുമ്പായി, GitHub മാജിക് ചെയ്യാൻ നിങ്ങളുടെ കമ്പ്യൂട്ടർ തയ്യാറാക്കാം! ഇതെന്തെന്നാൽ ഒരു കലാത്മക കൃതിക്ക് മുൻപ് ഞങ്ങൾ കലാസാധനങ്ങൾ ക്രമീകരിക്കുന്നത് പോലെ തന്നെ – ശരിയായ ഉപകരണങ്ങൾ ഒരുക്കിക്കൊള്ളുന്നത് എല്ലാം മെച്ചപ്പെടുത്തി കൂടുതൽ രസകരമാക്കും. + +പ്രത്യേകിച്ച് ഓരോ സേഠപ്പും ഞാൻ നിങ്ങൾക്കൊപ്പം നടക്കാൻ പോകുന്നു, ആദ്യനോട്ടത്തിൽ ഭീതിയുണ്ടാവേണ്ടതായി തോന്നിക്കില്ല. ഏതെങ്കിലും കാര്യം ഉടൻ മനസ്സിലാകുന്നതല്ലെങ്കിൽ ഇത് സാധാരണമാണ്! ഞാൻ എന്റെ ആദ്യ ഡവലപ്പ്മെന്റ് പരിസരവും സജ്ജമാക്കുമ്പോൾ പുരാതന ഹിയറോഗ്ലിഫ്സുകൾ വായിക്കുന്നതുപോലെ തോന്നിയതാണ്. ഓരോ ഡെവലപ്പറും നിങ്ങൾ ഇപ്പോൾ ഉണ്ടാകുന്ന സ്ഥാനത്ത് ഒരിക്കൽ എത്തിയിട്ടുണ്ട്, അവർ ശരിയാവോ എന്ന് സംശയിച്ച്. സ്പോയിലർ ലവ്: நீங்கள் ഇവിടെ പഠിച്ചുകൊണ്ടിരിക്കുകയാണെങ്കിൽ, നിങ്ങൾ ഇതിനകം ശരിയാണെന്ന് തെളിയിച്ചു! 🌟 + +ഈ പാഠത്തിൽ നമ്മൾ പൂരംചെയ്യുന്നത്: + +- നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ ചെയ്യുന്ന പ്രവർത്തനങ്ങൾ ട്രാക്ക് ചെയ്യുക +- മറ്റ് ആളുകളുമായി പ്രോജക്ടുകളിൽ പ്രവർത്തിക്കുക +- ഓപ്പൺ സോഴ്സ് സോഫ്റ്റ്‌വെയറിൽ സംഭാവന ചെയ്യുന്നത് എങ്ങനെ എന്നത് + +### മുൻ‌നിയമങ്ങൾ + +GitHub മാജിക് ചെയ്യാൻ നിങ്ങളുടെ കമ്പ്യൂട്ടർ തയ്യാറാക്കാം! വിഷമിക്കേണ്ട, സജ്ജീകരണം ഒന്നേ സമയം മാത്രം ചെയ്യണം, പിന്നീട് നിങ്ങളുടെ മുഴുവനായ കോഡിംങ് യാത്രക്കായി നിങ്ങൾ സജ്ജമാണ്. + +സർവ്വതോലൂസ്ക്കരം തുടങ്ങാം! ആദ്യം, നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ Git ഇതിനകം സ്ഥലമുണ്ടോ എന്ന് പരിശോധിക്കാം. Git എന്ന് വെളിപ്പെടുത്തുക ഒരു അത്യന്തം ബുദ്ധിമുട്ടുള്ള അസിസ്റ്റന്റിനെയാണ്, നിങ്ങളുടെ കോഡിൽ നിങ്ങൾ ചെയ്യുന്ന എല്ലാ മാറ്റങ്ങളും ഓർക്കുന്നതിൽ വളരെ കഴിവുള്ളത് – Ctrl+S ബട്ടൺ തുടർച്ചയായി അമർത്തുന്നതു പോലെയല്ല (നാം എല്ലാവരും അങ്ങനെ ചെയ്തിട്ടുണ്ട്!). + +Git ഇതിനകം ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ടോ എന്ന് നോക്കാം, ടെർമിനലിൽ ഈ majiic കമാൻഡ് ടൈപ്പ് ചെയ്യൂ: +`git --version` + +Git ഇൻസ്റ്റാൾ ചെയ്തിട്ടില്ലെങ്കിൽ, വിഷമിക്കേണ്ട! [download Git](https://git-scm.com/downloads) എന്നിടങ്ങളിലേക്ക് ചെന്ന് അത് പിടിച്ചെടുക്കൂ. ഇൻസ്റ്റാൾ ചെയ്തശേഷം, Git നെ നിങ്ങൾക്കു പരിചയപ്പെടുത്തേണ്ടതുണ്ട്: + +> 💡 **ആദ്യ സെറ്റ് അപ്പ്**: ഈ കമാൻഡുകൾ Git നിന്‍റെ പേര് എന്താണെന്ന് പറയും. ഈ വിവരങ്ങൾ നിങ്ങൾ ചെയ്യുന്ന ഓരോ കമിറ്റ്-നടത്തലിനും ചേർക്കപ്പെടും, അതിനാൽ നിങ്ങൾ പൊതുവായി പങ്കുവെക്കാൻ തക്ക പേര്-ഇമെയിൽ തിരഞ്ഞെടുക്കുക. + +```bash +git config --global user.name "your-name" +git config --global user.email "your-email" +``` + +Git ഇതിനകം കോൺഫിഗർ ചെയ്തിട്ടുണ്ടോ എന്ന് പരിശോധിക്കാൻ നിങ്ങൾക്ക് ടൈപ്പ് ചെയ്യാം: +```bash +git config --list +``` + +GitHub അക്കൗണ്ട്, ഒരു കോഡ് എഡിറ്റർ (Visual Studio Code പോലുള്ള) ഉണ്ടായിരിക്കണം, കൂടാതെ ടെർമിനൽ (അഥവാ കമാൻഡ് പ്രാമ്പ്റ്റ്) തുറക്കേണ്ടിയിരിക്കും. + +[github.com](https://github.com/) സന്ദർശിച്ച് അക്കൗണ്ട് ഉണ്ടാക്കൂ, അല്ലെങ്കിൽ ലോഗിൻ ചെയ്ത് പ്രൊഫൈൽ പൂരിപ്പിക്കൂ. + +💡 **ആധുനിക ഉപദേശം**: പാസ്‌വേഡുകൾ ഇല്ലാതെ കൂടുതൽ ലളിതമായ സ്ഥിരീകരണത്തിന് [SSH കീകൾ](https://docs.github.com/en/authentication/connecting-to-github-with-ssh) സജ്ജമാക്കാമെന്നു പരിഗണിക്കുക അല്ലെങ്കിൽ [GitHub CLI](https://cli.github.com/) ഉപയോഗിക്കുക. + +✅ GitHub യേകമാത്രമായ കോഡ് റിപ്പോസിറ്ററി അല്ല; മറ്റ് പലരും ഉണ്ട്, പക്ഷേ GitHub ഏറ്റവും ഏറെ അറിയപ്പെടുന്നതാണ്. + +### തയ്യാറെടുപ്പ് + +നിങ്ങൾക്ക് ഒരു കോഡ് പ്രോജക്ട് അടങ്ങിയ ഫോള്ഡർ (ലാപ്‌ടോപ്പ് അല്ലെങ്കിൽ പിസി) കൂടാതെ GitHub ല്‍ പൊതു റെപ്പോസിറ്ററി ഉണ്ടായിരിക്കണം, ഇത് മറ്റുള്ളവരുടെ പ്രോജക്ടുകളിൽ എങ്ങനെ സംഭാവന നൽകാമെന്ന് ഉദാഹരണമായി സേവിക്കുകയും ചെയ്യും. + +### നിങ്ങളുടെ കോഡ് സുരക്ഷിതമാക്കുക + +നാം കുറച്ചു സമയം സെക്യൂരിറ്റി സംബന്ധിച്ച് സംസാരിക്കാം – പക്ഷേ പേടിപ്പെടുത്തുന്ന കാര്യങ്ങൾ നിങ്ങളെ അടിച്ചമർത്തില്ല! ഇവാ സെക്യൂരിറ്റി പാടവങ്ങൾ നിങ്ങളുടെ കാറോ വീട്ടിലോ തലപ്പൊത്ത് അടക്കുന്നതുപോലെയാണ്. അവ സാമൂഹ്യപ്രവർത്തനങ്ങളായി മാറുകയും നിങ്ങളുടെ കഠിനാധ്വാനത്തെ സംരക്ഷിക്കുകയും ചെയ്യും. + +GitHub ഉപയോഗിക്കുമ്പോൾ, സുരക്ഷാ മികച്ച രീതികൾ പാലിക്കുക എന്നത് പ്രധാനമാണ്: + +| സുരക്ഷാ മേഖല | മികച്ച പ്രഥിഷ്ഠ | അതിന്റെ പ്രാധാന്യം | +|---------------|---------------|----------------| +| **അടയാളപ്പെടൽ** | SSH കീകൾ അല്ലെങ്കിൽ വ്യക്തിഗത ആക്‌സസ് ടോകൺകൾ ഉപയോഗിക്കുക | പാസ്‌വേഡുകൾ കുറച്ചുകൂടി സുരക്ഷിതമല്ല, പണ്ടാരിച്ചതായി മാറുന്നു | +| **ഇരട്ട-ഘട്ട അംഗീകാരം** | GitHub അക്കൗണ്ടിൽ 2FA തുറക്കുക | അക്കൗണ്ട് സംരക്ഷണത്തിന് ഒരു അധിക പാളി കൂട്ടുന്നു | +| **റെപ്പോസിറ്ററി സുരക്ഷ** | സംവേദനശീല വിവരങ്ങൾ ഒരിക്കലും കമിറ്റ് ചെയ്യരുത് | API കീകൾ, പാസ്സ്‌വേഡുകൾ പൊതു റെപ്പോസിറ്ററികളിൽ പബ്ലിഷ് ചെയ്യരുത് | +| **ഡിപൻഡൻസി മാനേജ്മെന്റ്** | അപ്‌ഡേറ്റുകൾക്കായി Dependabot തുറക്കുക | നിങ്ങളുടെ ആശ്രിതങ്ങൾ സുരക്ഷിതമാക്കുകയും പുതുക്കുകയും ചെയ്യും | + +> ⚠️ **നിബന്ധനാപൂർവ ഓർമ്മപ്പെടുത്തൽ**: API കീകൾ, പാസ്‌വേഡുകൾ, അല്ലെങ്കിൽ മറ്റെന്തെങ്കിലും സംവേദനശീല വിവരങ്ങൾ ഒരിക്കലും ഏതെങ്കിലും റെപ്പോസിറ്ററിയിൽ കമിറ്റ് ചെയ്യരുത്. പരിസ്ഥിതി വേരിയബിളുകളും `.gitignore` ഫയലുകളും ഉപയോഗിക്കുക. + +**ആധുനിക അംഗീകാര സജ്ജീകരണം:** + +```bash +# SSH കീ ജനറേറ്റ് ചെയ്യുക (ആധുനിക ed25519 ആൽഗോറിതം) +ssh-keygen -t ed25519 -C "your_email@example.com" + +# Git നു SSH ഉപയോഗിക്കാൻ ക്രമീകരിക്കുക +git remote set-url origin git@github.com:username/repository.git +``` + +> 💡 **പ്രൊ ടിപ്പ്**: SSH കീകൾ പാസ്‌വേഡുകൾ നിന്ന് പുനരാധാര സമയം നൽകാതിരിക്കാനും പാരമ്പര്യ അംഗീകാര രീതികളെ അപേക്ഷിച്ച് കൂടുതൽ സുരക്ഷിതമാണെന്ന് തെളിയിക്കുന്നു. + +--- + +## പ്രൊഫഷണലായി നിങ്ങളുടെ കോഡ് മാനേജ് ചെയ്യുക + +ഇപ്പോഴാണ് കാര്യങ്ങൾ വല്ലാതെ രസകരമാകുന്നത്! 🎉 നിങ്ങൾക്കുപോലുള്ള പ്രൊമാർ കോഡ് എങ്ങനെ ട്രാക്ക് ചെയ്യുകയും മാനേജ് ചെയ്യുകയും ചെയ്യുന്നുവെന്ന് പഠിക്കാൻ പോകുന്നു, ഇത് പഠിപ്പിക്കാനായുള്ള ഞാൻ ഏറെ ഇഷ്ടപ്പെടുന്ന വിഷയമാണ്, കാരണം ഇത് ഒരു ഗെയിം ചേഞ്ചർ ആണ്. + +നിരൂപണം ചെയ്യൂ: നിങ്ങൾ ഒരു അസാധാരണ കഥ എഴുതുന്നു, ഓരോ ഡ്രാഫ്റ്റും, ഓരോ മാന്യമായ എഡിറ്റും, ഓരോ "അയ, അതാണ് ജീനിയസ്!" എന്ന നിമിഷവും ട്രാക്ക് ചെയ്യാൻ ആഗ്രഹിക്കുന്നു. അതെ Git നിങ്ങളുടെ കോഡിനെയാണ് ചെയ്യുന്നത്! എല്ലാം ഓര്‍ക്കുന്ന വായ്പ്പുള്ള സമയयാത്ര 수행്‍ ബുക്ക് പോലെയാണ് - ഓരോ കീസ്ട്രോക്ക്, ഓരോ മാറ്റം, "അമ്പിള്ളി, ഇത് എല്ലാവരും തകരം" എന്ന് നിമിഷം ഉടൻ പിന്തള്ളാവുന്നതു വരെ ഓർക്കുന്നു. + +സത്യമായി പറഞ്ഞാൽ - ഇത് ആദ്യം വഷളാകാം. ഞാൻ ആരംഭിച്ചപ്പോൾ, "എന്തുകൊണ്ട് സാധാരണ പോലെ എന്റെ ഫയലുകൾ സംരക്ഷിക്കാനാകുന്നില്ല?" എന്നും ഞാൻ ചിന്തിച്ചു. പക്ഷേ വിശ്വസിക്കുക: Git നിങ്ങൾക്കായി ക്ലിക്ക് ചെയ്യുമ്പോൾ (അതും ചെയ്യും!), നിങ്ങൾക്കു ഒരിക്കലും സ്മ രിക്കാവുന്ന ലോകം തുറക്കും "എനിക്ക് ഇതിനൊപ്പമുള്ള ആദ്യകാലത്തേയുള്ള കോഡിങ്ങ് എങ്ങനെ ചെയ്തു?" എന്ന പോലെ! നിങ്ങളുടെ രാവിലെ നടക്കുമ്പോൾ പറക്കാൻ നിങ്ങൾക്കായിരുന്നെന്നു കണ്ടെത്തുന്നതുപോലെ! + +നിങ്ങളുടെ ലാപ്‌ടോപിൽ (അല്ലെങ്കിൽ പിസി) ഏതെങ്കിലും കോഡ് പ്രോജക്ട് അടങ്ങിയ ഫോള്ഡർ ഉണ്ടെന്ന് കരുതുക, നിങ്ങൾ git എന്ന വേർഷൻ കണ്ട്രോൾ സംവിധാനമായി ഉപയോഗിച്ച് നിങ്ങളുടെ പുരോഗതി ട്രാക്ക് ചെയ്യാൻ തുടങ്ങാൻ ആഗ്രഹിക്കുന്നു. ചിലരൊക്കെ git ഉപയോഗിക്കുന്നത് ഭാവിയിൽ നിങ്ങള്‍ക്ക് എന്നെ കാണിക്കുന്ന "പ്രണയം കത്ത്" എഴുതുക എന്നു താരതമ്യം ചെയ്യും. നിങ്ങളുടെ കമ്മിറ്റ് മെസ്സേജുകൾ ദിവസങ്ങളോ ആഴ്ചകളോ മാസങ്ങളോ കഴിഞ്ഞ ശേഷവും വായിക്കുമ്പോൾ നിങ്ങൾ നിര്‍ദ്ദേശം നല്‍കിയ കാരണങ്ങളെ നിങ്ങൾ തിരിച്ചറിയാനും "റോൾബാക്ക്" ചെയ്യാനും കഴിയും - അത് നല്ല കമ്മിറ്റ് മെസ്സേജുകള്‍ എഴുതുമ്പോഴാണ്. + +```mermaid +flowchart TD + A[📁 നിങ്ങളുടെ പ്രോജക്‌റ്റ് ഫയലുകൾ] --> B{ഇത് ഒരു ഗിറ്റ് റിപ്പോസിറ്ററി ആണോ?} + B -->|ഇല്ല| C[git init] + B -->|അതെ| D[മാറ്റങ്ങൾ ചെയ്യുക] + C --> D + D --> E[git add .] + E --> F["git commit -m 'സന്ദേശം'"] + F --> G[git push] + G --> H[🌟 GitHub-ൽ കോഡ്!] + + H --> I{സഹകരിക്കണോ?} + I -->|അതെ| J[Fork & Clone] + I -->|ഇല്ല| D + J --> K[ബ്രാഞ്ച് സൃഷ്ടിക്കുക] + K --> L[മാറ്റങ്ങൾ ചെയ്യുക] + L --> M[പുൾ റിക്വസ്റ്റ്] + M --> N[🎉 സഹകരിക്കുന്നു!] + + style A fill:#fff59d + style H fill:#c8e6c9 + style N fill:#ff4081,color:#fff +``` +### ടാസ്‌ക്: നിങ്ങളുടെ ആദ്യ റെപ്പോസിറ്ററി സൃഷ്ടിക്കുക! + +> 🎯 **നിങ്ങളുടെ ദൗത്യം (ഞാൻ അതിനായി ഏറെ ആവേശത്തിലാണ്!)**: നമ്മൾ ഒരുമിച്ച് നിങ്ങളുടെ ആദ്യ GitHub റെപ്പോസിറ്ററി സൃഷ്ടിക്കാനാണ് പോകുന്നത്! ഇതു കഴിഞ്ഞാൽ, നിങ്ങളുടെ കോഡ് താമസിക്കുന്ന ഇന്റർനെറ്റിന്റെ ചെറിയ മുറിയുണ്ടാകും, നിങ്ങൾ ആദ്യ “കമിറ്റ്” (വളരെ ബുദ്ധിമുട്ടുള്ള രീതിയിൽ നിങ്ങളുടെ പ്രവർത്തി സംരക്ഷിക്കുന്നതിന് ഡെവലപ്പർമാരുടെ ഭാഷ) നടത്തി കഴിഞ്ഞിരിക്കും. +> +> ഇത് സ്‌നേഹപൂർവമായ ഒരു പ്രത്യേക നിമിഷമാണ് – നിങ്ങൾ ഔദ്യോഗികമായി ആഗോള ഡെവലപ്പർമാരുടെ സമൂഹത്തിൻറെ ഭാഗമാകും! എന്റെ ആദ്യ റെപ്പോ സൃഷ്ടിച്ചതിന്റെ ആവേശം ഞാൻ ഇപ്പോഴും ഓർക്കുന്നു "വാവ്, ഞാൻ ഇതു കാര്യമായി ചെയ്യുന്നുവെന്ന്!" + +ഈ സഞ്ചാരത്തിലൂടെ നമ്മൾ ഒരുമിച്ച് കൂട്ടായി നടക്കുന്നുവെന്ന് കരുതാം, ഓരോ ഘട്ടവും ശ്രദ്ധയോടെ. വേഗത്തിലോട്ടുപോകാൻ അവകാശമില്ല, ഓരോ ഘട്ടവും മനസ്സിലാക്കും എന്ന് ഞാൻ ഉറപ്പുനൽകുന്നു. നിങ്ങളെ സ്നേഹിക്കുന്ന എല്ലാ കോഡിങ്ങ് സൂപ്പർസ്റ്റാർമാരും ഒരിക്കൽ നിങ്ങളുടെ നിലയിൽ ഇരുന്നു അവരുടെ ആദ്യ റെപ്പോ ഇല്ലാതാക്കാൻ പോകുകയായിരുന്നു. എത്ര കൂള്‍ ആണോ അത്? + +> വീഡിയോ കാണുക +> +> [![Git and GitHub basics video](https://img.youtube.com/vi/9R31OUPpxU4/0.jpg)](https://www.youtube.com/watch?v=9R31OUPpxU4) + +**നമുക്ക് ഇത് ചേർന്ന് ചെയ്യാം:** + +1. **GitHub-ൽ നിങ്ങളുടെ റെപ്പോസിറ്ററി സൃഷ്ടിക്കുക**. GitHub.com-ൽ പോകുക, മുകൾ വലത് കോണിൽ ആ ഇരുട്ടും പച്ച **New** ബട്ടണോ (അല്ലെങ്കിൽ **+** ചിഹ്നമോ) തിരയുക. അതിൽ ക്ലിക് ചെയ്ത് **New repository** തിരഞ്ഞെടുക്കുക. + + ചെയ്യാനുള്ള കാര്യങ്ങൾ: + 1. നിങ്ങളുടെ റെപ്പോസിറ്ററിക്ക് ഒരു പേര് നൽകൂ – അതൊരു ഇതുസബ് മനസ്സിലാക്കാവുന്ന പേര് ആയിരിക്കണം! + 1. നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെങ്കിൽ ഒരു വിവരണം ചേർക്കൂ (ഇത് മറ്റുള്ളവർ നിങ്ങളുടെ പ്രോജക്ട് എന്താണെന്ന് മനസ്സിലാക്കാൻ സഹായിക്കുന്നു) + 1. ഇത് പൊതു (ഏവർക്കും കാണാൻ സാധിക്കും) ആക്കണമോ അല്ലെങ്കിൽ സ്വകാര്യതാനുസരണം (നിങ്ങള്ക്ക് മാത്രം) ആക്കണമോ തീരുമാനിക്കുക + 1. README ഫയൽ ചേർക്കാൻ ബോക്സ് പരിശോധിക്കാനായി ഞാൻ ശുപാർശ ചെയ്യുന്നു – ഇത് നിങ്ങളുടെ പ്രോജക്ടിന്റെ മുൻ പേജിനെപ്പോലെ ആണ് + 1. **Create repository** ക്ലിക്ക് ചെയ്ത് ആഘോഷിക്കൂ – നിങ്ങൾ ആദ്യ റെപ്പോ സൃഷ്ടിച്ചു! 🎉 + +2. **നിങ്ങളുടെ പ്രോജക്ട് ഫോളഡറിൽ നാവിഗേറ്റ് ചെയ്യുക**. ഇപ്പോൾ നിങ്ങളുടെ ടെർമിനൽ തുറക്കാം (ഭീതിയില്ല, അത്ര ഭയങ്കരമല്ല!). കമ്പ്യൂട്ടറിന് നിങ്ങളുടെ പ്രോജക്ട് ഫയലുകൾ എവിടെയാണ് എന്ന് പറയേണ്ടതുണ്ട്. ഈ കമാൻഡ് ടൈപ്പ് ചെയ്യൂ: + + ```bash + cd [name of your folder] + ``` + + **ഇവിടെ നമ്മൾ ചെയ്യുന്നത്:** + - "ഹേ, കമ്പ്യൂട്ടർ, എന്നെ എന്റെ പ്രോജക്ട് ഫോളഡർക്ക് കൊണ്ടുപോ!" + - ഇത് നിങ്ങളുടെ ഡെസ്ക്ടോപ്പിലെ പ്രത്യേക ഒരു ഫോളഡർ തുറക്കുന്നതുപോലെ ആണ്, പക്ഷേ ടെക്സ്റ്റ് കമാൻഡുകൾ ഉപയോഗിച്ച് ചെയ്യുന്നു + - `[name of your folder]` എന്നത് നിങ്ങളുടെ പ്രോജക്ട് ഫോളഡറിന്റെ യഥാർത്ഥ പേരായി മാറ്റുക + +3. **ഫോളഡർ Git റെപ്പോസിറ്ററിയായി മാറ്റുക**. മാജിക്ക് ഇവിടെ നടക്കുന്നു! ടൈപ്പ് ചെയ്യൂ: + + ```bash + git init + ``` + + **ഇവിടെ സംഭവിച്ചത് (വളരെ കൂള്‍ കാര്യങ്ങൾ!):** + - Git നിങ്ങളുടെ പ്രോജക്ടിൽ ഒളിഞ്ഞ `.git` ഫോൾഡർ സൃഷ്ടിച്ചു – കാണാൻ കഴിയില്ല പക്ഷേ നിലനിൽക്കുന്നു! + - നിങ്ങളുടെ സാധാരണ ഫോളഡർ ഇനി ഒരു "റെപ്പോസിറ്ററി" ആയി മാറി, നിങ്ങളുടെ ഓരോ മാറ്റവും ട്രാക്ക് ചെയ്യാൻ കഴിയും + - നിങ്ങളുടെ ഫോളഡർക്കൊരു സൂപ്പർപവറുകൾ സമ്മാനിച്ചതുപോലെ കരുതുക അതെല്ലാം ഓർക്കാനുള്ള കഴിവ് + +4. **സാമ്പത്തികങ്ങൾ പരിശോധിക്കുക**. Git നിങ്ങളുടെ പ്രോജക്ടിനെ ഇപ്പോൾ എങ്ങനെ കാണുന്നു എന്ന് നോക്കാം: + + ```bash + git status + ``` + + **Git പറഞ്ഞതിനെ മനസിലാക്കുക:** + + നിങ്ങൾ ഇങ്ങനെ ഒരു സ്ഥലത്ത് കാണുന്നുണ്ട്: + + ```output + Changes not staged for commit: + (use "git add ..." to update what will be committed) + (use "git restore ..." to discard changes in working directory) + + modified: file.txt + modified: file2.txt + ``` + + **ഭയപ്പെടുത്താതെ! ഇതിന് അർത്ഥം:** + - **ചുവപ്പ്** നിറത്തിലുള്ള ഫയലുകൾ മാറ്റങ്ങളുള്ളതായിരിക്കും, പക്ഷേ ഇപ്പോൾ സേവ് ചെയ്യാൻ തയ്യാറല്ല + - **പച്ച** നിറത്തിലുള്ള ഫയലുകൾ (നിങ്ങൾ ഇവ കാണുമ്പോൾ) സേവ് ചെയ്യാൻ തയ്യാറാണ് + - Git ഉപകാരപ്രദമാണ്, നിങ്ങൾക്ക് അടുത്ത എന്തുചെയ്യാമെന്ന് വ്യക്തമാക്കുന്നു + + > 💡 **പ്രൊ ടിപ്പ്**: `git status` കമാൻഡ് നിങ്ങളുടെ മികച്ച സുഹൃത്താണ്! എന്ത് സംഭവിച്ചെന്ന് പുറകിൽ മിണ്ടുമ്പോൾ ഏതു സമയവും ഇത് ഉപയോഗിക്കൂ. Git-നെ ചോദിക്കുന്നത് പോലെ "ഹേ, ഇപ്പോഴത്തെ സ്ഥിതി എന്താണ്?" + +5. **നിങ്ങളുടെ ഫയലുകൾ സേവ് ചെയ്യാൻ ഒരുക്കുക** ("സ്റ്റേജിംഗ്" എന്നു പറയുന്നു): + + ```bash + git add . + ``` + + **നാം ഇപ്പോഴത്തെത്തിച്ചത്:** + - Git-നെ ഞങ്ങൾ "എല്ലാ ഫയലുകളും അടുത്ത സേവ്-ലെ ഉൾപ്പെടുത്തണം" എന്ന് പറഞ്ഞു + - `.` എന്നത് "ഈ ഫോളഡറിലെ എല്ലാം" എന്നു പറയുന്നതുപോലെ + - ഇപ്പോൾ നിങ്ങളുടെ ഫയലുകൾ "സ്റ്റേജ്" ചെയ്തു, അടുത്ത ഘട്ടത്തിനായി തയ്യാറായി + + **കുറച്ച് തിരഞ്ഞെടുക്കാനുദ്ദേശിക്കുന്നുണ്ടോ?** നിങ്ങൾ ചില പ്രത്യേക ഫയലുകൾ മാത്രം ചേർക്കാം: + + ```bash + git add [file or folder name] + ``` + + **എന്തുകൊണ്ട് ഇതു ചെയ്യണം?** + - ചിലപ്പോൾ ബന്ധപ്പെട്ട മാറ്റങ്ങൾ പാകമാക്കി സേവ് ചെയ്യാനാകുന്നു + - നിങ്ങളുടെ പ്രവർത്തനം ലജിക്കൽ ചുക്കുകളിൽ ക്രമപ്പെടുത്തി സഹായിക്കുന്നു + - എന്ത് മാറ്റം എപ്പോൾ ഉണ്ടായി എന്നത് മനസ്സിലാക്കാനും സഹായിക്കുന്നു + + **മനസ്സിലാക്കിയിരിക്കുന്നത് മാറ്റിയാൽ?** പ്രശ്നമില്ല! സ്റ്റേജ് ചെയ്ത ഫയലുകൾ ഇങ്ങനെ ഒഴിവാക്കാം: + + ```bash + # എല്ലാം unstaging ചെയ്യുക + git reset + + # ഒരു ഫയൽ മാത്രം unstaging ചെയ്യുക + git reset [file name] + ``` + + ഭയപ്പെടേണ്ട, ഇത് നിങ്ങളുടെ പ്രവർത്തി ഇല്ലാതാക്കില്ല, "സേവ് ചെയ്യാൻ തയ്യാറായ" സ്റ്റാക്കിൽ നിന്നും ഫയലുകൾ പുറത്താക്കുന്നു. + +6. **നിങ്ങളുടെ പ്രവർത്തി സ്ഥിരതയോടെ സേവ് ചെയ്യുക** (ആദ്യ കമ്മിറ്റ്!): + + ```bash + git commit -m "first commit" + ``` + + **🎉 അഭിനന്ദനങ്ങൾ! നിങ്ങൾ നിങ്ങളുടെ ആദ്യ കമ്മിറ്റ് ചെയ്തു!** + + **ഇവിടെ സംഭവിച്ചത്:** + - Git ഈ നിമിഷത്തെ എല്ലാ സ്റ്റേജ് ചെയ്ത ഫയലുകളുടെയും "സ്നാപ്ഷോട്ട്" എടുത്തു + - നിങ്ങളുടെ "first commit" എന്ന മെസ്സേജ് ഈ സേവ് പോയിന്റ് വിദ്യാർത്ഥിക്കുന്നു + - Git ഈ സ്നാപ്ഷോട്ടിന് യുണീക്ക് ഐഡി നൽകുകയും പിന്നീട് എപ്പോഴും നിങ്ങൾക്ക് അത് കണ്ടെത്താൻ കഴിയും + - നിങ്ങൾ ഔദ്യോഗികമായി നിങ്ങളുടെ പ്രോജക്ട് ചരിത്രം ട്രാക്ക് ചെയ്യാൻ തുടങ്ങി! + + > 💡 **ഇനിയും കമ്മിറ്റുകൾക്ക് മെച്ചപ്പെട്ട മെസ്സേജുകൾ**: അടുത്തപ്പോഴും "updated stuff"െ പകരം "Add contact form to homepage" അല്ലെങ്കിൽ "Fix navigation menu bug" പോലുള്ള വിവരവും ഉള്ള മെസ്സേജുകൾ ഉപയോഗിക്കുക. നിങ്ങളുടെ ഭാവിയിലെ ഞാൻ നന്ദിപറയും! + +7. **നിങ്ങളുടെ പ്രാദേശിക പ്രോജക്ട് GitHub-നെ കണക്റ്റ് ചെയ്യുക**. ഇപ്പോൾ, നിങ്ങളുടെ പ്രോജക്ട് നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ മാത്രമാണ്. GitHub റെപ്പോസിറ്ററിയുമായി കണക്റ്റ് ചെയ്തു ലോകവുമായി പങ്കുവെക്കാം! + + ആദ്യം, GitHub റെപ്പോസിറ്ററി പേജിൽ പോയി URL കോപ്പിയെടുക്കൂ. പിന്നെ ഇവിടെ واپس വന്ന് ടൈപ്പ് ചെയ്യുക: + + ```bash + git remote add origin https://github.com/username/repository_name.git + ``` + + (രണ്ടാമത്തെ URL യഥാർത്ഥ റിപോസിറ്ററി URL കൊണ്ട് മാറുക!) + + **നാം ഇപ്പോഴത്തെത്തിച്ചത്:** + - ഞങ്ങൾ നിങ്ങളുടെ ലോക്കൽ പ്രോജക്റ്റും നിങ്ങളുടെ GitHub റിപ്പോസിറ്ററിയും തമ്മിൽ ഒരു കണക്ഷൻ സൃഷ്ടിച്ചു + - "Origin" എന്നത് നിങ്ങളുടെ GitHub റിപ്പോസിറ്ററിയുടെ ഒരു പകർപ്പ് മാത്രമാണ് – ഇത് നിങ്ങളുടെ ഫോൺയിലെ ഒരു കോൺടാക്റ്റ് കൂട്ടിച്ചേർക്കുന്നതുപോലെ ആണ് + - ഇനി നിങ്ങളുടെ ലോക്കൽ Git-ന് നിങ്ങൾ നിങ്ങളുടെ കോഡ് പങ്ക് വെക്കാൻ സജ്ജമായപ്പോൾ എവിടെ അയയ്ക്കണമെന്ന് അറിയാം + + 💡 **ഇളവുള്ള വഴി**: നിങ്ങൾക്ക് GitHub CLI ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ടെങ്കിൽ, നിങ്ങള്ക്കു ഇത് ഒരു കമാൻഡിൽ ചെയ്യാം: + ```bash + gh repo create my-repo --public --push --source=. + ``` + +8. **നിങ്ങളുടെ കോഡ് GitHub-ക്ക് അയയ്ക്കുക** (പ്രധാന നിമിഷം!): + + ```bash + git push -u origin main + ``` + + **🚀 ഇതാ, നിങ്ങൾ നിങ്ങളുടെ കോഡ് GitHub-ലേക്ക് അപ്‌ലോഡ് ചെയ്യുകയാണ്!** + + **എന്ത് നടക്കുന്നു:** + - നിങ്ങളുടെ കമിറ്റുകൾ നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ നിന്ന് GitHub-ിലേക്കു പോകുന്നു + - `-u` ഫ്ലാഗ് ഭാവിയിലെ പുഷ്‌കൾക്ക് എളുപ്പം പ്ര永久മായ കണക്ഷൻ സജ്ജമാക്കുന്നു + - "main" നിങ്ങളുടെ പ്രധാന ബ്രാഞ്ചിന്റെ പേര് ആണ് (പ്രധാന ഫോൾഡറുപോലെ) + - ഇതിന് ശേഷം നിങ്ങൾക്ക് ഭാവിയിൽ सिर्फ `git push` ടൈപ്പ് ചെയ്ത് അപ്‌ലോഡുകൾ ചെയ്യാം! + + 💡 **പെട്ടെന്നുള്ള കുറിപ്പ്**: നിങ്ങളുടെ ബ്രാഞ്ചിന് മറ്റേതെങ്കിലും പേര് ഉണ്ടെങ്കിൽ ("master" പോലുള്ളത്), ആ പേര് ഉപയോഗിക്കുക. അറിയാൻ `git branch --show-current` ഉപയോഗിക്കാം. + +9. **നിങ്ങളുടെ പുതിയ ദിനസ്രവ്ഷം** (ഇതിൽ നിങ്ങൾക്ക് നശിക്കുന്നത് തുടരും!): + + ഇനി മുതൽ, നിങ്ങളുടെ പ്രോജക്റ്റിൽ മാറ്റം വരുത്തുമ്പോൾ, നിങ്ങൾക്ക് ഈ സിംപിള്‍ മൂന്ന് ഘട്ടമുള്ള നൃത്തമുണ്ട്: + + ```bash + git add . + git commit -m "describe what you changed" + git push + ``` + + **ഇതാണ് നിങ്ങളുടെ കോഡിങ്ങ് ഹൃദയം:** + - നിങ്ങളുടെ കോഡിൽ ചില മനോഹരമായ മാറ്റങ്ങൾ ചെയ്യുക ✨ + - അവയെ സ്റ്റേജ് ചെയ്യുക `git add` വഴി ("ഹായ് Git, ഈ മാറ്റങ്ങൾ ശ്രദ്ധിക്കുക!") + - സേവ് ചെയ്യുക `git commit` കമാൻഡും വിശദീകരണത്തോടെ (ഭാവിയിലെ നിങ്ങൾ നന്ദി പറയും!) + - ലോകത്തോട് പങ്കുവെക്കുക `git push` 🚀 + - ആവർത്തിക്കുക - ഈ പ്രവൃത്തി ശ്വാസം എടുക്കുന്നതുപോലെ സ്വാഭാവികം ആകും! + + എനിക്ക് ഈ പ്രവൃത്തി പ്രണയം കാരണം, ഇത് ഒരു വീഡിയോ ഗെയിമിലെ അനേകം സേവ് പോയിന്റുകൾ പോലെ ആണ്. നിങ്ങൾക്ക് ഇഷ്ടമായ ഒരു മാറ്റം ചെയ്തുവോ? കമിറ്റ് ചെയ്യുക! റിസ്കി ഒരു കാര്യം പരീക്ഷിക്കാനോ? പ്രശ്നമില്ല - ആളുപോകരുത് നിങ്ങളുടെ അവസാന കമിറ്റിലേക്കു പോകാം! + + > 💡 **ടിപ്പ്**: GitHub-ൽ കാണാൻ നിങ്ങൾ ആഗ്രഹിക്കാത്ത ഫയലുകൾ ട്രാക്ക് ചെയ്യാതിരിക്കാനുള്ള ഒരു `.gitignore` ഫയൽ സ്വീകരിക്കാനും ആഗ്രഹിക്കാം - പോലെ നിങ്ങള്‍ വെളിപ്പെടുത്താതെ പുലർത്തുന്ന കുറിപ്പുകൾക്ക്. `.gitignore` ടമ്പ്‌ലേറ്റുകൾക്കായി [.gitignore templates](https://github.com/github/gitignore) സന്ദർശിക്കുക അല്ലെങ്കിൽ [gitignore.io](https://www.toptal.com/developers/gitignore) ഉപയോഗിച്ച് ഒരാൾ സൃഷ്ടിക്കാം. + +### 🧠 **ആദ്യ റിപ്പോസിറ്ററി ചെക്കിൻ: എങ്ങനെ അനുഭവപ്പെട്ടു?** + +**ഒരിക്കൽ വഴികാട്ടാനും വൈകല്യം വിലയിരുത്താനും:** +- നിങ്ങളുടെ കോഡ് ആദ്യമായി GitHub-ൽ പ്രദർശിപ്പിക്കുന്നത് എങ്ങനെ അനുഭവപ്പെട്ടു? +- ഏത് ഘട്ടം ഏറ്റവും ആശയക്കുഴപ്പമുണ്ടായിരുന്നു, ഏത് വലിയ എളുപ്പമാണ്? +- `git add`, `git commit`, `git push` തമ്മിലുള്ള വ്യത്യാസം നിങ്ങളുടെ വാക്കുകളിൽ വിശദീകരിക്കാമോ? + +```mermaid +stateDiagram-v2 + [*] --> LocalFiles: പദ്ധതി സൃഷ്ടിക്കുക + LocalFiles --> Staged: git add . + Staged --> Committed: git commit + Committed --> GitHub: git push + GitHub --> [*]: വിജയി! 🎉 + + note right of Staged + ഫയലുകൾ സേവ് ചെയ്യാന്‍ تييارുള്ളത് + end note + + note right of Committed + സ്നാപ്ഷോട്ട് സൃഷ്ടിച്ചിട്ടുണ്ട് + end note +``` +> **ഓർക്കുക**: പരിചയസമ്പന്നർ പോലും കമാൻഡുകൾ മറക്കാറുണ്ട്. ഈ പ്രവൃത്തി മെമ്മറി പരിശീലനം അനിവാര്യമാണ് - നിങ്ങൾ നല്ല നിലയിൽ വരുന്നു! + +#### ആധുനിക Git പ്രവൃത്തിതന്ത്രങ്ങൾ + +ഈ ആധുനിക രീതികൾ സ്വീകരിക്കാൻ പരിഗണിക്കുക: + +- **Conventional Commits**: `feat:`, `fix:`, `docs:` പോലുള്ള മാനകൃതമായ കമിറ്റ് സന്ദേശ ഫോർമാറ്റ് ഉപയോഗിക്കുക. കൂടുതൽ അറിയാൻ [conventionalcommits.org](https://www.conventionalcommits.org/) +- **ആറ്റോമിക് കമിറ്റുകൾ**: ഓരോ കമിറ്റും ഒരൊറ്റ ലോഗിക്കൽ മാറ്റം പ്രതിനിധാനം ചെയ്യണം +- **മിതമായ ഇടവേളകളിൽ കമിറ്റ് ചെയ്യുക**: വ ശക്തമായ വിവരണങ്ങളോടുകൂടി പതിവായി കമിറ്റ് ചെയ്യുക + +#### Commit സന്ദേശങ്ങൾ + +ഒരു മികച്ച Git commit വിഷയം താഴെപറയുന്ന വാക്യം പൂർണ്ണമാക്കണം: +ഇപ്രകാരം ചെയ്താൽ, ഈ കമിറ്റ് <നിങ്ങളുടെ വിഷയം ഇവിടെ> ചെയ്യും + +വിഷയത്തിന് നിർദ്ദേശ պաշտոնം, ഇപ്പോഴത്തെ കാലം ഉപയോഗിക്കുക: "change" പകരം "changed" അല്ലെങ്കിൽ "changes" വേണ്ട. +വിഷയത്തെ പോലെ, ശരീരഭാഗത്തും (ഐച്ഛികം) നിർദ്ദേശകാലം ഉപയോഗിക്കുക. ശരീരഭാഗം മാറ്റത്തിനുള്ള പ്രേരണയും മുൻപത്തെ പെരുമാറ്റവുമായി താരതമ്യം ചെയ്യുക. നിങ്ങൾ `why` ആണ് വിശദീകരിക്കുന്നത്, `how` അല്ല. + +✅ GitHub അന്വേക്ഷിക്കാൻ ചില മിനിറ്റുകൾ ചെലവഴിക്കൂ. നിങ്ങള്‍ക്ക് വളരെ മികച്ച ഒരു commit സന്ദേശം കണ്ടെത്താമോ? ഏറ്റവും ലളിതമായ ഒന്ന് കണ്ടെത്താമോ? ഒരു commit സന്ദേശത്തിൽ ഏറ്റവും പ്രധാനപ്പെട്ടതും ഉപയോഗപ്രദവുമായ വിവരമെന്നുള്ളത് എന്തെന്ന് നിങ്ങൾക്ക് തോന്നുന്നു? + +## മറ്റുള്ളവരോട് പ്രവർത്തിക്കൽ (വൈക്കം ഭാഗം!) + +നിങ്ങളുടെ തൊപ്പി പിടിച്ചിരിക്കുക, കാരണം GitHub ഇവിടെ അത്യന്തം മായാജാലമേ ഉള്ളത്! 🪄 നിങ്ങൾ നിങ്ങളുടെ സ്വതന്ത്ര കോഡ് കൈകാര്യം ചെയ്യാൻ പഠിച്ചു, എന്നാൽ ഇപ്പോൾ ഞങ്ങൾ ലോകമാകെ അതുല്യമായ ആളുകളുമുള്ള സഹകരണത്തിലേക്ക് പ്രവേശിക്കുന്നു. + +ഇതാണ് ചിത്രം: നിങ്ങൾ നാളെ എഴുന്നേറ്റപ്പോഴേ someone ടോക്കിയോയിൽ നിന്നു നിങ്ങളുടെ കോഡ് മെച്ചപ്പെടുത്തിയതായി കാണുക. പിന്നീട് ബെर्लിൻ മേൽ നിന്നു ഒരാൾ ഒരു ബഗ് പറ്റിനടപ്പിക്കുന്നു. വൈകുന്നേരം വരെ സൗ പോളോയിലെ ഒരു ഡെവലപ്പർ നിങ്ങൾക്കു സങ്കൽപ്പിക്കാത്ത ഒരു ഫീച്ചർ ചേർക്കുന്നു. ഇത് ശാസ്ത്ര കഥയല്ല - GitHub പ്രപഞ്ചത്തിലെ അങ്ങേയറ്റം സാധാരണ കണ്ടം! + +എനിക്ക് വളരെയധികം ആവേശം നൽകുന്നത് നിങ്ങളുടെ പഠിക്കുന്ന സഹകരണശക്തികൾ ആണ്. ഗൂഗിള്, മൈക്രോസോഫ്റ്റ്, നിങ്ങളുടെ ഇഷ്ട സ്റ്റാർട്ടപ്പുകൾ എല്ലാം എന്നും ഈ ഘടനകളിൽ പ്രവർത്തിക്കുന്നു. നിങ്ങൾക്ക് സാങ്കേതികമായി ഒരു ഉപകരണം മാത്രമല്ല - നിങ്ങൾ ആഗോള സോഫ്റ്റ്വേർ ലോകത്തെ ഒന്നാക്കുന്ന രഹസ്യഭാഷയാണ് പഠിക്കുന്നത്. + +ഭേദഗതി ഒന്നാം പുൾ റിക്വസ്റ്റ് അവരുടെ ആദ്യ മർജ് പ്രക്രിയകൾ അനുഭവിച്ചതിനു ശേഷം, വികസകർക്കു ഓപ്പൺ സോഴ്സ് വിദഗ്ധതയിലേക്കുള്ള വലിയ ഉത്സാഹം വളരുന്നു. ലോകത്തിലെ ഏറ്റവും വലിയ, ഏറ്റവും സൃഷ്ടിച്ച ടീം പ്രോജക്ടിന്റെ ഭാഗമാകുന്നത് പോലെയാണ്! + +> Video കാണുക +> +> [![Git and GitHub basics video](https://img.youtube.com/vi/bFCM-PC3cu8/0.jpg)](https://www.youtube.com/watch?v=bFCM-PC3cu8) + +GitHub-ലേക്ക് കാര്യങ്ങൾ ലഭ്യമാക്കാനുള്ള പ്രധാന കാരണം മറ്റുള്ള ഡെവലപ്പർമാർക്കൊപ്പമുളള സഹകരണം സാധ്യമാക്കാനായിരുന്നു. + +```mermaid +flowchart LR + A[🔍 പ്രോജക്റ്റ് കണ്ടെത്തുക] --> B[🍴 റീപോസിറ്ററി ഫോർക്ക് ചെയ്യൂ] + B --> C[📥 ലോക്കലിലേക്ക് ക്ലോൺ ചെയ്യൂ] + C --> D[🌿 ബ്രാഞ്ച് സൃഷ്ടിക്കുക] + D --> E[✏️ മാറ്റങ്ങൾ ചെയ്യുക] + E --> F[💾 മാറ്റങ്ങൾ കമ്മിറ്റുചെയ്യുക] + F --> G[📤 ബ്രാഞ്ച് പുഷ് ചെയ്യുക] + G --> H[🔄 പുൾ रिक്വസ്റ്റ് സൃഷ്ടിക്കുക] + H --> I{മെയ്ൻടൈനർ റിവ്യൂ} + I -->|✅ അംഗീകൃതം| J[🎉 മേഴ്ജ്!] + I -->|❓ മാറ്റങ്ങൾ ആവശ്യപ്പെട്ടിരിക്കുന്നു| K[📝 അപ്ഡേറ്റുകൾ ചെയ്യുക] + K --> F + J --> L[🧹 ബ്രാഞ്ചുകൾ ശുദ്ധമാക്കുക] + + style A fill:#e3f2fd + style J fill:#e8f5e8 + style L fill:#fff3e0 +``` +നിങ്ങളുടെ റിപ്പോസിറ്ററിയിൽ, പ്രാവർത്തികം `Insights > Community` വഴി പ്രോജക്റ്റ് ശുഭ്രം ഞാറ്റുക GitHub കമ്മ്യൂണിറ്റി മാനദണ്ഡങ്ങൾ നിയന്ത്രിക്കുന്നു എന്ന് പരിശോധിക്കുക. + +നിങ്ങളുടെ റിപ്പോസിറ്ററി പ്രൊഫഷണലായും സ്വാഗതം ചെയ്യുന്നതുമാക്കാൻ ആഗ്രഹിക്കുന്നുണ്ടോ? നിങ്ങളുടെ റിപ്പോസിറ്ററിയിലേക്ക് പോവുക, ശേഷം `Insights > Community` ക്ലിക്ക് ചെയ്യുക. ഈ പ്രത്യേകത "നല്ല റിപ്പോസിറ്ററി പ്രാക്ടീസുകൾ" എന്ന GitHub കമ്മ്യൂണിറ്റി പരിഗണിക്കുന്നതിനൊപ്പം നിങ്ങളുടെ പ്രോജക്റ്റ് എങ്ങനെ തുല്യമാണ് എന്ന് കാണിക്കുന്നു. + +> 🎯 **നിങ്ങളുടെ പ്രോജക്റ്റ് തെളിയിക്കുക**: സുസംഘടിതവും നല്ല ഡോക്യുമെന്റേഷനുള്ളൊരു റിപ്പോസിറ്ററി ശുഭ്രവും സ്വാഗതം ചെയ്യുന്ന ഒരു സ്റ്റോർഫ്രണ്ട് പോലെ ആണ്. ഇത് നിങ്ങൾ നിങ്ങളുടെ ജോലി ശ്രദ്ധിക്കുമെന്ന് കാണിക്കുന്നു, മറ്റുള്ളവരുടെ സംഭാവനക്ക് പ്രേരിപ്പിക്കുന്നു! + +**രെപ്പോസിറ്ററി മനോഹരമാക്കുന്നത് എന്താണ്:** + +| എന്ത് ചേർക്കണം | അത് എന്തുകൊണ്ട് പ്രധാനമാണ് | അത് നിങ്ങള്ക്ക് എന്ത് നൽകുന്നു | +|-------------|-------------------|---------------------| +| **Description** | ആദ്യ ദൃശ്യപ്രഭാതം പ്രധാനം! | ആളുകൾക്കു ഉടൻ അറിയാം നിങ്ങളുടെ പ്രോജക്റ്റ് എന്ത് ചെയ്യുന്നു | +| **README** | നിങ്ങളുടെ പ്രോജക്റ്റിന്റെ ഫണ്ട് പേജ് | പുതിയ സന്ദർശകർക്കുള്ള സൗഹൃദ വീക്ഷണാതിഥി പോലെയാണ് | +| **Contributing Guidelines** | സഹായം സ്വാഗതം ചെയ്യുന്നുവെന്ന് കാണിക്കുന്നു | ആളുകൾക്ക് കൃത്യമായി എങ്ങനെ സഹായിക്കാമെന്ന് അറിയാം | +| **Code of Conduct** | സൗഹൃദപരമായ സ്ഥലം സൃഷ്ടിക്കുന്നു | എല്ലാവർക്കും പങ്കാളിത്തത്തിന് സ്വാഗതം | +| **License** | നിയമ വ്യവസ്ഥകൾ വ്യക്തമാക്കുന്നു | മറ്റുള്ളവര്‍ നിങ്ങളുടെ കോഡ് എങ്ങനെ ഉപയോഗിക്കാമെന്ന് മനസ്സിലാക്കും | +| **Security Policy** | നിങ്ങൾ ഉത്തരവാദിത്വമുള്ളവനെന്നു കാണിക്കുന്നു | പ്രൊഫഷണൽ രീതികൾ പ്രദർശിപ്പിക്കുന്നു | + +> 💡 **പ്രൊ ടിപ്പ്**: GitHub ഈ എല്ലാ ഫയലുകൾക്കും ടെംപ്ളേറ്റുകൾ നൽകുന്നു. പുതിയ റിപ്പോസിറ്ററി സൃഷ്ടിക്കുമ്പോൾ ബോക്സുകൾ ടിക്ക് ചെയ്ത് സ്വയം ഈ ഫയലുകൾ സൃഷ്ടിക്കാം. + +**ആധുനിക GitHub ഫീച്ചറുകൾ അന്വേഷിക്കുക:** + +🤖 **ഓട്ടോമേഷൻ & CI/CD:** +- **GitHub Actions** ഓട്ടോമേറ്റഡ് ടെസ്റ്റിംഗും ഡിപ്ലോയ്‌മെന്റും വേണ്ടി +- **Dependabot** എൻറോൾ ചെയ്ത ഡിപെൻഡൻസി അപ്പ്‌ഡേറ്റുകൾക്ക് + +💬 **കമ്മ്യൂണിറ്റി & പ്രോജക്റ്റ് മാനേജ്‌മെന്റ്:** +- **GitHub Discussions** പ്രശ്നങ്ങളിൽപ്പറ്റിയുള്ള കമ്മ്യൂണിറ്റി സംഭാഷണങ്ങൾക്കായി +- **GitHub Projects** കാൻബൻ സ്റ്റൈൽ പ്രോജക്റ്റ് മാനേജ്‌മെന്റിനായി +- **ബ്രാഞ്ച് പ്രൊട്ടക്ഷൻ നിയമങ്ങൾ** കോഡിന്റെ ഗുണനിലവാരം ഉറപ്പാക്കാനായി + +ഈ എല്ലാ സ്രോതസ്സുകളും പുതിയ ടീം അംഗങ്ങളെ ഓൺബോർഡ് ചെയ്യുന്നതിനും ഉപയോഗപ്രദമാണ്. സാധാരണയായി പുതിയ സംഭാവനക്കാർ ഇത് ആദ്യമാണ് പരിശോധിക്കുന്നത്, നിങ്ങൾക്കുള്ള പ്രോജക്റ്റ് സമയം ചെലവഴിക്കാനുള്ള ശരിയായ സ്ഥാനം ആണോ എന്നു കണ്ടുനോക്കാൻ. + +✅ README ഫയലുകൾ തയ്യാറാക്കാൻ സമയം എടുക്കുന്നു, പക്ഷെ ബിസി മാനേജർമാർ പലപ്പോഴും അവ അവഗണിക്കുന്നു. നിങ്ങൾക്ക് വളരെ വിവരണപരമായ README കണ്ടെത്താമോ? കുറിപ്പ്: മികച്ച README സൃഷ്ടിക്കാൻ സഹായിക്കുന്ന ചില [ഉപകരണങ്ങൾ](https://www.makeareadme.com/) ഉണ്ട്, പരീക്ഷിക്കാം. + + +### ടാസ്‌ക്: ചില കോഡ് മർജ് ചെയ്യുക + +Contributing ഡോക്യുമെന്റുകൾ ആളുകൾക്ക് പ്രോജക്റ്റിൽ സംഭാവന ചെയ്യാൻ സഹായിക്കുന്നു. നിങ്ങൾക്കു തരത്തിലുള്ള സംഭാവനകൾ വേണമെന്ന്, പ്രക്രിയ എങ്ങനെ നടക്കും എന്ന് വിശദീകരിക്കുന്നു. സംഭാവനക്കാർ GitHub ലെ നിങ്ങളുടെ റിപ്പോസിറ്ററിയിലേക്ക് സംഭാവന ചെയ്യാൻ ഒരു പരമ്പരാ ഘട്ടങ്ങൾ പാലിക്കേണ്ടി വരും: + +1. **നിങ്ങളുടെ റിപ്പോ ഫോർക്ക് ചെയ്യൽ** மக்கள் നിങ്ങളുടെ പ്രോജക്റ്റ് _fork_ ചെയ്യാൻ ആഗ്രഹിക്കാം. ഫോർക്ക് ചെയ്യുക എന്നാൽ അവരുടെ GitHub പ്രൊഫൈലിൽ നിങ്ങളുടെ റിപ്പോസിറ്ററിയുടെ പകർപ്പ് സൃഷ്ടിക്കുക എന്നാര്ത്ഥം. +1. **ക്ലോൺ ചെയ്യുക**. അവിടെ നിന്നും അവർ പ്രോജക്റ്റ് നിങ്ങളുടെ ലോക്കൽ മെഷീനിലേക്കു ക്ലോൺ ചെയ്യും. +1. **ഒരു ബ്രാഞ്ച് സൃഷ്ടിക്കുക**. അവർക്ക് അവരുടെ ജോലി വെക്കാൻ ഒരു _ബ്രാഞ്ച്_ സൃഷ്ടിക്കാൻ പറയും. +1. **മാറ്റത്തെ ഒറ്റഫലകത്തിലുള്ള മാറ്റみに‍ച്ച് ഫോക്കസ് ചെയ്യുക**. സംഭാവനക്കാർ ഒരു സമയം ഒരേ ഒരു വിഷയത്തിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കാൻ വേണം - അങ്ങനെ അവർ നൽകിയ മാറ്റങ്ങൾ വെട്ടിപ്പിഴച്ചു ചേർക്കാനാകും. അവരെ കണക്കാക്കുക, ഒരു ബഗ് പരിഹാരവും ഒരു പുതിയ ഫീച്ചറും വിവിധ ടെസ്റ്റുകൾ അപ്ഡേറ്റു ചെയ്യുകയും ചെയ്താൽ - നിങ്ങൾക്ക് ഏത് രണ്ട് മെച്ചപ്പെടുത്തലുകൾ അല്ലെങ്കിൽ ഒരു മെച്ചപ്പെടുത്തൽ മാത്രമേ ശരിക്കും നടപ്പിലാക്കാൻ കഴിയും എന്നറിയാതെ? + +✅ നല്ല കോഡ് എഴുതാനും ലഭ്യമാക്കാനും ബ്രാഞ്ചുകൾ നിർണായകമായ സാഹചര്യങ്ങൾ സങ്കൽപിക്കുക. നിങ്ങൾക്ക് എന്ത് ഉപയോക്തൃകേസുകൾ വരാം? + +> ഓർക്കുക, നിങ്ങൾ ലോകത്തിൽ കാണാൻ ആഗ്രഹിക്കുന്ന മാറ്റം നിങ്ങൾ തന്നെ ആകുക, നിങ്ങളുടെ ജോലിക്കും ബ്രാഞ്ചുകൾ സൃഷ്ടിക്കുക. നിങ്ങൾ ചെയ്യുന്ന ഓരോ കമിറ്റും നിങ്ങൾ ഇപ്പോൾ "checkout" ചെയ്തിരിക്കുന്ന ബ്രാഞ്ചിൽ ഉണ്ടാകും. ഏതു ബ്രാഞ്ച് ആണെന്ന് കാണാൻ `git status` ഉപയോഗിക്കുക. + +ഒരു സംഭാവനാ പ്രവൃത്തി പാത വഴി നമുക്ക് പോകാം. സംഭാവനാകാരി ഇതിനകം മാത്രമേ _fork_ ചെയ്ത് _clone_ ചെയ്തിട്ടുള്ളൂ എന്ന് ധരിക്കുക; അവർക്ക് ലോക്കൽ മെഷീനിൽ പ്രവർത്തിക്കാൻ Git റിപ്പോ തയ്യാറായി: + +1. **ഒരു ബ്രാഞ്ച് സൃഷ്ടിക്കുക**. സംഭാവനകൾ അടങ്ങുന്ന ബ്രാഞ്ച് സൃഷ്ടിക്കാൻ `git branch` കമാൻഡ് ഉപയോഗിക്കുക: + + ```bash + git branch [branch-name] + ``` + + > 💡 **ആധുനിക സമീപനം**: നിങ്ങൾ ഒരു കമാൻഡിൽ പുതിയ ബ്രാഞ്ച് സൃഷ്ടിച്ച് ഉൾപ്പെടുത്താവുന്നതാണ്: + ```bash + git switch -c [branch-name] + ``` + +1. **പ്രവൃത്തി ബ്രാഞ്ചിലേക്ക് മാറുക**. നിർദ്ദിഷ്ട ബ്രാഞ്ചിലേക്ക് മാറി വർക്കിംഗ് ഡയറക്ടറി അപ്ഡേറ്റ് ചെയ്യാൻ `git switch` ഉപയോഗിക്കുക: + + ```bash + git switch [branch-name] + ``` + + > 💡 **ആധുനിക കുറിപ്പ്**: ബ്രാഞ്ചുകൾ മാറാൻ `git switch` ഉപയോഗിക്കുക, ഇത് `git checkout` ന്റെ ആധുനിക, കൂടുതൽ വ്യക്തമായ, സുരക്ഷിതമായ പകരമാണ്. + +1. **ജോലി ചെയ്യുക**. ഈ ഘട്ടത്തിൽ മാറ്റങ്ങൾ ചേർക്കുക. Git-ന് അറിയിക്കാൻ താഴെപ്പറയുന്ന കമാൻഡുകൾ മറക്കരുത്: + + ```bash + git add . + git commit -m "my changes" + ``` + + > ⚠️ **കമിറ്റ് സന്ദേശ നിലവാരം**: നിങ്ങളുടെ കമിറ്റിന് നല്ല പേര് നൽകുക, നിങ്ങൾക്കും സഹായം ചെയ്യുന്ന maintainer-നും വേണ്ടി. നടത്തിയ മാറ്റം നിഷ്കളങ്കമായി വിശദീകരിക്കുക! + +1. **നിങ്ങളുടെ ജോലി `main` ബ്രാഞ്ച്‌ൽ ചേർക്കുക**. നിങ്ങള്‍ക്ക് ജോലി കഴിഞ്ഞാൽ അതിനെ `main` ബ്രാഞ്ചിനൊപ്പം സംയോജിപ്പിക്കണം. `main` ബ്രാഞ്ച് ഇടയ്ക്കായി മാറിയിരിക്കാം, അതിനാൽ ആദ്യം താഴെപ്പറയുന്ന കമാൻഡുകൾ പ്രവർത്തിപ്പിച്ച് ഇത് ഏറ്റവും പുതിയത് ആക്കുക: + + ```bash + git switch main + git pull + ``` + + ഈ ഘട്ടത്തിൽ Git നിർവഹിച്ചു ചേർക്കാൻ കഴിയാത്ത **സംഘർഷങ്ങൾ(conflicts)** ഉണ്ടാകുന്ന സ്ഥലങ്ങൾ ഒരുങ്ങുക. അതിനായി താഴെപ്പറയുന്ന കമാൻഡുകൾ പ്രവർത്തിപ്പിക്കുക: + + ```bash + git switch [branch_name] + git merge main + ``` + + `git merge main` കമാൻഡ് `main` ന്റെ എല്ലാ മാറ്റങ്ങളും നിങ്ങളുടെ ബ്രാഞ്ചിലേക്ക് കൊണ്ടുവരും. സാധാരണ നിലയിൽ തുടരാം. ഇല്ലെങ്കിൽ VS Code Git എവിടെ പ്രശ്നമുണ്ട് എന്ന് കാണിക്കുകയും, നിങ്ങൾ ദൃശ്യഫയലുകളിൽ ഏറ്റവും കൃത്യമായ ഉള്ളടക്കം എത്രയെന്ന് തിരുത്തുകയുമാകും. + + 💡 **ആധുനിക ബദൽ**: ശുഭ്രമായ ചരിത്രത്തിനായി `git rebase` പരിഗണിക്കുക: + ```bash + git rebase main + ``` + ഇത് പുതിയ `main` ബ്രാഞ്ചിന്റെ മുകളിലായി നിങ്ങളുടെ കമിറ്റ് പുനരാവൃത്തിയാക്കുന്നു, സാദ്ധ്യമാക്കുന്നു സുതാര്യമായ ചരിത്രം. + +1. **നിങ്ങളുടെ ജോലി GitHub-ലേക്ക് അയക്കുക**. GitHub-നു നിങ്ങളുടെ ജോലി അയക്കുന്നത് രണ്ട് കാര്യങ്ങൾക്കായി ആണ്. നിങ്ങൾ നിങ്ങളുടെ ബ്രാഞ്ച് നിങ്ങളുടെ റിപ്പോസിറ്ററിയിലേക്കു പുഷ് ചെയ്യണം, പിന്നെയും ഒരു PR, പുൾ റിക്വസ്റ്റ് തുറക്കണം. + + ```bash + git push --set-upstream origin [branch-name] + ``` + + മേൽ പറയപ്പെട്ട കമാൻഡ് നിങ്ങളുടെ ഫോർക്ക് ചെയ്ത റിപ്പോയിൽ ബ്രാഞ്ച് സൃഷ്ടിക്കും. + +### 🤝 **സഹകരണ നൈപുണ്യ പരിശോധന: മറ്റുള്ളവരോടൊപ്പം പ്രവർത്തിക്കാനാണ് തയ്യാറോ?** + +**സഹകരണം എങ്ങനെ അനുഭവപ്പെടുന്നു പരിശോധിക്കാം:** +- ഫോർക്കിംഗ്, പുൾ റിക്വസ്റ്റ് ആശയം ഇപ്പോൾ മനസ്സിലാവുന്നുണ്ടോ? +- ബ്രാഞ്ചുകളിൽ പ്രവർത്തനത്തോട് ബന്ധപ്പെട്ട ഒരു കാര്യത്തിൽ കൂടുതൽ പരിശീലനം ചെറുതാക്കാൻ ആഗ്രഹിക്കുന്നുണ്ടോ? +- മറ്റാരുടെയും പ്രോജക്റ്റിൽ സംഭാവന ചെയ്യുന്നതിൽ നിങ്ങൾ എത്രത്തോളം സ്വസ്ഥയാണെന്ന് തോന്നുന്നു? + +```mermaid +mindmap + root((Git സഹകരണഘടകം)) + Branching + Feature branches + Bug fix branches + Experimental work + Pull Requests + Code review + Discussion + Testing + Best Practices + Clear commit messages + Small focused changes + Good documentation +``` +> **ആത്മവിശ്വാസം വർദ്ധിപ്പിക്കുക**: നിങ്ങൾ ആദരിക്കുന്ന ഓരോ ഡെവലപ്പറും ആദ്യ പുൾ റിക്വസ്റ്റ് തുടങ്ങുമ്പോൾ നർവസ് ആയിരുന്നു. GitHub സമൂഹം പുതെത്തെവർക്കും അതി സ്നേഹപൂർവ്വം വരവേൽക്കുന്നു! + +1. **ഒരു PR തുറക്കുക**. ഇനി, നിങ്ങൾ ഒരു PR തുറക്കണം. GitHub-ലെ ഫോർക്കുചെയ്ത റിപ്പോസിറ്ററിയിലേക്ക് പോകുക. GitHub നിങ്ങൾ പുതിയ PR സൃഷ്ടിക്കാൻ ആഗ്രഹിക്കുന്നുണ്ടോ എന്ന് ചോദിക്കുന്ന ഒരു സൂചന കാണിക്കും, അതിൽ ക്ലിക്ക് ചെയ്യുക, Commit സന്ദേശത്തിന്റെ തലക്കെട്ട് മാറ്റാനോ മികച്ച വിവരണം നൽകാനോ കഴിയുന്ന ഇന്റർഫേസ് തുറക്കും. ഇനി നിങ്ങൾ ഫോർക്ക് ചെയ്ത റിപ്പോയുടെ Maintainer ഈ PR കാണും, പിന്തുണയ്ക്കും, നിങ്ങളുടെ PR മർജ്ജ് ചെയ്യും. നിങ്ങൾ ഇപ്പോൾ ഒരാളെത്തരി, യേ :) + + 💡 **ആധുനിക ടിപ്പ്**: GitHub CLI ഉപയോഗിച്ച് PR സൃഷ്ടിക്കാം: + ```bash + gh pr create --title "Your PR title" --body "Description of changes" + ``` + + 🔧 **PR-കളെക്കുറിച്ചുള്ള മികച്ച പ്രാക്ടീസുകൾ**: + - "Fixes #123" പോലുള്ള കീവേർഡുകൾ ഉപയോഗിച്ച് ബന്ധപ്പെട്ട ഇഷ്യൂസുകളുമായി ലിങ്ക് ചെയ്യുക + - UI മാറ്റങ്ങൾക്ക് സ്ക്രീൻഷോട്ടുകൾ ചേർക്കുക + - പ്രത്യേക റിവ്യൂവർമാരെ അഭ്യർത്ഥിക്കുക + - പ്രവൃത്തി പുരോഗതിക്കുള്ള Draft PRകൾ ഉപയോഗിക്കുക + - റിവ്യൂ അഭ്യർത്ഥിക്കുന്നതിന് മുമ്പ് എല്ലാ CI പരിശോധനകളും പരിചയപ്പെടുക +1. **പരിശുദ്ധീകരണം**. ഒരു PR വിജയകരമായി മേഴ്ജ് ചെയ്തശേഷം _പരിശുദ്ധീകരണം_ നടത്തുന്നത് നല്ല പ്രവർത്തനരീതിയാണ് എന്ന് കണക്കാക്കപ്പെടുന്നു. നിങ്ങളുടെ ലോക്കൽ ബ്രാഞ്ചും GitHub-ലേക്ക് പുഷ് ചെയ്തത് ആയ ബ്രാഞ്ചും ഇരട്ടിയിലും നിങ്ങൾ പരിശോധിച്ചു തീര്ക്കണം. ആദ്യം താഴെ നൽകിയ കമാൻഡ് ഉപയോഗിച്ച് അത് ലോക്കലായി ഡീലീറ്റ് ചെയ്യാം: + + ```bash + git branch -d [branch-name] + ``` + + തുടർന്നു പൂർണ്ണമായും GitHub പേജിലേക്ക് പോകുകയും അവിടെ പുഷ് ചെയ്ത റിമോട്ട് ബ്രാഞ്ച് നീക്കം ചെയ്യുകയും ചെയ്യുക. + +`പുൾ റിക്വസ്റ്റ്` എന്നത് ചെറിയൊരു പദം പോലെ തോന്നിയേക്കാം, കാരണം നിങ്ങൾ ചെയ്യാൻ പോകുന്നത് നിങ്ങളുടെ മാറ്റങ്ങൾ പ്രോജക്റ്റിലേക്ക് പുഷ് ചെയ്യുകയാണ്. എന്നാൽ മെയിന്റൈനർ (പ്രോജക്റ്റ് ഉടമ) അല്ലെങ്കിൽ കോർ ടീം നിങ്ങളുടെ മാറ്റങ്ങൾ പരിഗണിച്ച് പ്രോജക്റ്റിന്റെ "മെയിൻ" ബ്രാഞ്ചിൽ മേഴ്ജ് ചെയ്യുന്നതിന് മുമ്പ് നിങ്ങൾ മെയിന്റൈനറിൽ നിന്ന് ഒരു മാറ്റ തീരുമാനമെടുക്കാൻ അഭ്യർത്ഥിക്കുന്നു എന്നതാണ് സത്യം. + +ഒരു പുൾ റിക്വസ്റ്റ് പുതിയ ബ്രാഞ്ചിൽ കൊണ്ടുവരുന്ന വ്യത്യാസങ്ങൾ കണക്കാക്കി അവനവ സ്‌പർശിക്കുന്ന, റിവ്യൂകൾ, കമന്റുകൾ, ഇൻറഗ്രേറ്റഡ് ടെസ്റ്റുകൾ എന്നിവയോടൊപ്പം ചർച്ച ചെയുന്നതിന് ഒരു സ്ഥലം ആണ്. നല്ലൊരു പുൾ റിക്വസ്റ്റ് ഏകദേശം ഒരു കമ്മിറ്റ് സന്ദേശത്തിന്റെ നിയമങ്ങൾ പിന്തുടരുന്നു. ഉദാഹരണത്തിന് നിങ്ങളുടെ പ്രവർത്തനം ഒരു പ്രശ്നം പരിഹരിക്കുന്ന പക്ഷം, എന്നത് എന്നുമുണ്ട്. ഇത് `#` എന്ന ചിഹ്നത്തിനുശേഷം നിങ്ങളുടെ പ്രശ്നത്തിന്റെ നമ്പർ രേഖപ്പെടുത്തിയതിനാൽ സാധിക്കുന്നു. ഉദാഹരണം `#97`. + +🤞എല്ലാ പരിശോധനകളും പാസാകുകയും പ്രോജക്റ്റ് ഉടമ(കൾ) നിങ്ങളുടെ മാറ്റങ്ങൾ പ്രോജക്റ്റിലേക്ക് മേഴ്ജ് ചെയ്യുകയും ചെയ്യും എന്ന് ആശംസിക്കുന്നു🤞 + +GitHub-ലേയുള്ള തുല്യമായ റിമോട്ട് ബ്രാഞ്ചിൽ നിന്നും എല്ലാ പുതിയ കമ്മിറ്റുകളുമടങ്ങിയിടെയുള്ള നിങ്ങളുടെ നിലവിലെ ലോക്കൽ പ്രവർത്തന ബ്രാഞ്ച് അപ്‌ഡേറ്റ് ചെയ്യുക: + +`git pull` + +## ഓപ്പൺ സോഴ്സ്-ന് സംഭാവന ചെയ്യുന്നു (നിങ്ങളുടെ സ്വാധീനം സാദ്ധ്യമാക്കാനുള്ള അവസരം!) + +ഇത്രയും വലിയൊരു വസ്തുവിനെ കുറിച്ച് നിങ്ങളെ വിസ്മയിപ്പിക്കാൻ എന്തെങ്കിലും തയ്യാറാണോ? 🤯 ഓപ്പൺ സോഴ്സ് പ്രോജക്റ്റുകളിൽ സംഭാവന ചെയ്യുന്നത് பற்றி സംസാരിക്കാം – അതിനെ കുറിച്ച് ഞാൻ share ചെയ്യാൻ പറ്റിയെന്ന് ആലോചിക്കുന്നതിൽ ഞാൻ goosebumps महसूसിക്കുന്നു! + +ഇത് നിങ്ങൾക്ക് യഥാർത്ഥത്തിൽ ഒരു അസാധാരണമായ കാര്യം becoming a part of ആദ്യമായിട്ടാണ്. നിങ്ങൾ ദിവസേന ഉപയോഗിക്കുന്ന ലക്ഷക്കണക്കിന് ഡെവലപ്പർമാർ ഉപയോഗിക്കുന്ന ഉപകരണങ്ങൾ മെച്ചപ്പെടുത്തുന്നോ, അല്ലെങ്കിൽ നിങ്ങളുടെ സുഹൃത്തുക്കൾ പ്രിയപ്പെട്ട ആപ്പിൽ ഉണ്ടാകുന്ന ഒരു ബഗിനെ ശരിയാക്കുന്നോ എന്ന് സങ്കൽപിക്കുക. ഇത് ഒരു സ്വപ്നം മാത്രം അല്ല – ഇത് ഓപ്പൺ സോഴ്സ് സംഭാവനയുടെ മുഖ്യ ലക്ഷ്യമാണ്! + +ഇത് ചിന്തിക്കുമ്പോൾ എനിക്ക് chills നൽകുന്ന കാര്യം ഇതാണ്: നിങ്ങൾ പഠിക്കുന്ന ഓരോ ഉപകരണവും – നിങ്ങളുടെ കോഡ് എഡിറ്റർ, നാം പഠിക്കാൻ പോകുന്ന ഫ്രെയിംവർക്ക്, നിങ്ങൾ ഈ വായന നടത്തുന്ന ബ്രൗസറും – എല്ലാം ഒരാൾ നിങ്ങൾ പോലെയുള്ള ഒരാൾതന്നെയായിരുന്നു ആദ്യത്തെ സംഭാവന ചെയ്തപ്പൊഴാണ് തുടങ്ങിയതെന്ന്. നിങ്ങളുടെ ഇഷ്ടമുള്ള VS Code എക്സ്റ്റൻഷൻ നിർമ്മിച്ച那个 ശ്രദ്ധേയനായ ഡെവലപ്പർ? അവർ ഒരിക്കൽ തന്നെ ഒരു പുതിയ ശൂന്യമായ ഹസ്തത്തോടെ "create pull request" ക്ലിക്കുചെയ്ത നയമായിരുന്നു, നിങ്ങൾ ചെയ്യാൻ പോകുന്നതുപോലെ. + +അതിന്റെ ഏറ്റവും മനോഹരമായ ഭാഗം ഇതാണ്: ഓപ്പൺ സോഴ്സ് സമൂഹം ആഗോള വെബിന്റെ ഏറ്റവും വലിയ കൂട്ടായ്മ പോലെ ആണ്. പല പ്രോജക്റ്റുകളും സജീവമായി പുതുതായി ചേരുന്നവരെ അന്വേഷിക്കുകയും പ്രത്യേകിച്ച് "good first issue" ടാഗുചെയ്ത പ്രശ്നങ്ങൾ新人കൾക്കായി ഉണ്ടാക്കിയിട്ടുള്ളതു്! മെയിന്റൈനർമാർ പുതിയ സംഭാവനക്കാർ കാണുമ്പോൾ വളരെ ആഹ്ലാദിക്കുന്നു കാരണം അവർ സ്വന്തം ആദ്യ ചുവടുകൾ ഓർക്കുന്നു. + +```mermaid +flowchart TD + A[🔍 GitHub അന്വേഷിക്കുക] --> B[🏷️ "നല്ല പ്രഥമപ്രശ്നം" കണ്ടെത്തുക] + B --> C[📖 സംഭാവനാനിര്‍ദ്ദേശങ്ങള്‍ വായിക്കുക] + C --> D[🍴 റിപോസിറ്ററി ഫോര്‍ക്കും ചെയ്യുക] + D --> E[💻 പ്രാദേശിക പരിസ്ഥിതി ക്രമീകരിക്കുക] + E --> F[🌿 ഫീച്ചര്‍ ബ്രാഞ്ച് സൃഷ്ടിക്കുക] + F --> G[✨ നിങ്ങളുടെ സംഭാവന നടത്തുക] + G --> H[🧪 നിങ്ങളുടെ മാറ്റങ്ങള്‍ പരിശോധന നടത്തുക] + H --> I[📝 വ്യക്തമായ കമ്മിറ്റ് എഴുതുക] + I --> J[📤 പുഷ് ചെയ്ത് പുല്‍ റിക്വസ്റ്റ് സൃഷ്ടിക്കുക] + J --> K[💬 പ്രതികരണവുമായി ഇടപഴകുക] + K --> L[🎉 ലയിച്ചു! നിങ്ങൾ സംഭാവന ദാതാവാണ്!] + L --> M[🌟 അടുത്ത പ്രശ്നം കണ്ടെത്തുക] + + style A fill:#e1f5fe + style L fill:#c8e6c9 + style M fill:#fff59d +``` +നിങ്ങൾ ഇവിടെ നൂറു ശതമാനം കോഡ് പഠിക്കുന്നില്ല – നിങ്ങൾ ഓരോ ദിവസവും "ഡിജിറ്റൽ ലോകം എങ്ങനെ മെച്ചപ്പെടുത്താം?" എന്നു ചിന്തിക്കുന്ന ഒരു ആഗോള കുടുംബത്തിലേക്കുള്ള പ്ര്യാപ്തി സാദ്ധ്യമാക്കുകയാണ്. ക്ലബ്ബിലേക്ക് സ്വാഗതം! 🌟 + +ആദ്യം GitHub-ലെ നിങ്ങളുടെ താൽപ്പര്യമുള്ള റിപോസിറ്ററി (അഥവാ **repo**) കണ്ടെത്തൂ, അതിൽ നിങ്ങളോ മറ്റോ മാറ്റങ്ങൾ സംഭാവന ചെയ്യാൻ ആഗ്രഹിക്കുന്നുവെങ്കിൽ. അതിന്റെ ഉള്ളടക്കം നിങ്ങളുടെ മെഷീനിലേക്ക് പ്രതിലിപി ചെയ്യണം. + +✅ 'beginner-friendly' റിപോസിറ്ററികൾ കണ്ടെത്താൻ മികച്ച മാർഗം [good-first-issue ടാഗ് ഉപയോഗിച്ച് തെരയുക](https://github.blog/2020-01-22-browse-good-first-issues-to-start-contributing-to-open-source/) . + +![ഒരു റിപോ ലോക്കലായി കോപ്പി ചെയ്യുക](../../../../translated_images/clone_repo.5085c48d666ead57.ml.png) + +കോഡ് കോപ്പി ചെയ്യാനുള്ള പല മാർഗ്ഗങ്ങളുണ്ട്. ഒരു മാർഗ്ഗം "clone" ചെയ്യുക എന്നതാണ്, HTTPS, SSH അല്ലെങ്കിൽ GitHub CLI (കമാൻഡ് ലൈൻ ഇന്റർഫേസ്) ഉപയോക്തൃ ഇനങ്ങളിലൂടെ. + +ടെർമിനൽ തുറന്ന് റിപോസിറ്ററി ഇതുപോലെ ക്ലോൺ ചെയ്യുക: +```bash +# HTTPS ഉപയോഗിക്കുന്നു +git clone https://github.com/ProjectURL + +# SSH ഉപയോഗിക്കുന്നു (SSH കീ സജ്ജീകരണം ആവശ്യമാണ്) +git clone git@github.com:username/repository.git + +# GitHub CLI ഉപയോഗിക്കുന്നു +gh repo clone username/repository +``` + +പ്രോജക്റ്റിൽ പ്രവർത്തിക്കാൻ, ശരിയായ ഫോൾഡറിൽ സ്വിച്ച് ചെയ്യുക: +`cd ProjectURL` + +നിങ്ങൾ സംപൂർണ പ്രോജക്റ്റ് തുറക്കാനും കഴിയും: +- **[GitHub Codespaces](https://github.com/features/codespaces)** - ബ്രൗസറിലെ VS Code-ഉം GitHub-ഉം ചേർന്ന ക്ലൗഡ് ഡെവലപ്പ്മെന്റ് പരിസ്ഥിതി +- **[GitHub Desktop](https://desktop.github.com/)** - Git ഓപ്പറേഷനുകൾക്കായുള്ള GUI ആപ്പ് +- **[GitHub.dev](https://github.dev)** - ഏതെങ്കിലും GitHub റിപോയിൽ `.` കീ അമർത്തി VS Code ബ്രൗസറിൽ തുറക്കുക +- **GitHub Pull Requests എക്സ്റ്റൻഷൻ ഉപയോഗിച്ച് VS Code** + +അവസാനമായി, കോഡിനെ നിസ്തളമായ ഫോൾഡറായി ഡൗൺലോഡ് ചെയ്യാം. + +### GitHub-നെ കുറിച്ചുള്ള ചില കൂടുതൽ രസകരമായ കാര്യങ്ങൾ + +GitHub-യിലെ പൊതുവായ ഏതെങ്കിലും റിപോസിറ്ററിക്ക് നിങ്ങൾ സ്റ്റാർ, വാച്ച്, അല്ലെങ്കിൽ "fork" ചെയ്യാം. നിങ്ങളുടെ സ്റ്റാർ ചെയ്‌ത റിപോസിറ്ററികൾ മുകളിൽ വലതു കോണിലെ ഡ്രോപ്പ് ഡൗൺ മെനുവിൽ കാണാം. ഇത് കോഡിന്റെ ബുക്മാർക്കിങ് പോലെയാണ്. + +പ്രോജക്റ്റുകൾക്ക് പ്രശ്ന ട്രാക്കർ ഉണ്ട്, GitHub-ഇൽ "Issues" ടാബിൽ കൂടുതലും കണ്ടുപിടിക്കാം എന്നില്ലെങ്കിൽ വേറെ സൂചന ഉണ്ടെങ്കിൽ അവിടെ. അപ്പോൾ ആളുകൾ പ്രോജക്റ്റുമായി ബന്ധപ്പെട്ട പ്രശ്നങ്ങൾ ചർച്ച ചെയ്യുന്നു. പുൾ റിക്വസ്റ്റ്‌സ് ടാബ് മാറ്റങ്ങൾ പരിശോധിക്കാനും ചർച്ച ചെയ്യാനും ഉള്ള സ്ഥലമാണ്. + +പ്രോജക്റ്റുകൾക്ക് ഫോറം, മെയിലിംഗ് ലിസ്റ്റ്, അല്ലെങ്കിൽ Slack, Discord, IRC പോലുള്ള ചാറ്റ് ചാനലുകൾ ഉണ്ടായിരിക്കാം. + +🔧 **ആധുനിക GitHub സവിശേഷതകൾ**: +- **GitHub Discussions** - സമൂഹ സംവാദങ്ങൾക്കുള്ള ഇന്റഗ്രേറ്റ് ചെയ്ത ഫോറം +- **GitHub Sponsors** - മെയിന്റൈനർമാരെ സാമ്പത്തികമായി പിന്തുണയ്ക്കുക +- **സുരക്ഷ ടാബ്** - ദുര്‍ബലത റിപ്പോർട്ടുകളും സുരക്ഷാ ഉപദേശങ്ങളും +- **ആക്ഷൻസ് ടാബ്** - ഓട്ടോമേറ്റഡ് വർക്ക്ഫ്ലോകളും CI/CD പൈപ്പ്ലൈനുകളും കാണുക +- **ഇൻസൈറ്റ്സ് ടാബ്** - സംഭാവനക്കാർ, കമ്മിറ്റുകൾ, പ്രോജക്റ്റ് ആരോഗ്യത്തെക്കുറിച്ചുള്ള വിശകലനം +- **പ്രോജക്റ്റുകൾ ടാബ്** - GitHub-ന്റെ ഇൻബിൽറ്റ് പ്രോജക്റ്റ് മാനേജുമെന്റ് ഉപകരണങ്ങൾ + +✅ നിങ്ങളുടെ പുതിയ GitHub റിപോ മുഴുവൻ പരിശോധിച്ച് ചില കാര്യങ്ങൾ ചെയ്യാൻ ശ്രമിക്കുക, സെറ്റിംഗുകൾ എഡിറ്റ് ചെയ്യാനുള്ളത്, റിപോക്ക് വിവരങ്ങൾ കൂട്ടിച്ചേർക്കൽ, പ്രോജക്റ്റ് (ഒരു കാൻബാൻ ബോർഡ് പോലുള്ളതു) സൃഷ്ടിക്കൽ, GitHub Actions ഓട്ടോമേഷൻ സെറ്റപ്പ് ചെയ്യുക. നിങ്ങൾക്ക് പല കാര്യങ്ങളും ചെയ്യാൻ കഴിയുന്നു! + +--- + +## 🚀 ചലഞ്ച് + +ശരിയാണ്, നിങ്ങൾക്ക് ലഭിച്ച നൂതന GitHub സൂപ്പർപവർ ഉപയോഗിച്ച് പരീക്ഷണം നടത്തുന്നതിന് സമയമായിരിക്കുന്നു! 🚀 ഇവിടെ ഒരു ചലഞ്ച് ഉണ്ടാകുന്നു, അത് എല്ലാം ഏറ്റവും സന്തോഷകരമായ രീതിയിൽ ചേര്ക്കുന്നു: + +ഒരു സുഹൃത്ത് അല്ലെങ്കിൽ "കമ്പ്യൂട്ടർ സ്റ്റഫുമായി നിങ്ങൾ എന്ത് ചെയ്യുന്നു?" എന്ന alltid ചോദിക്കുന്ന കുടുംബാംഗം ഒന്നിച്ച് ബന്ധുക്കളായി കോഡിംഗ് സാഹസികത ആരംഭിക്കുക! ഇവിടെ യഥാർത്ഥ മായാജാലം നടക്കുന്നു – ഒരു പ്രോജക്റ്റ് സൃഷ്ടിച്ച്, അവരെ അതിനെ ഫോർക്കുചെയ്യാൻ അനുവദിച്ച്, ബ്രാഞ്ചുകൾ സൃഷ്ടിച്ച്, കൈരാജ്യം ചെയ്യുന്നവരായി മേഴ്ജ് ചെയ്യുക. + +ഞാൻ കള്ളം പറയുന്നില്ല – നിങ്ങൾക്ക് ഒരിടയിൽ ണെ हസികയും വരാം (മുഖ്യമായി ഒരേ ലൈൻ മാറ്റാൻ ശ്രമിക്കുമ്പോൾ), നിങ്ങൾക്കും അവർക്കും ഭ്രമത്തിലും വീഴാനും കഴിയും, പക്ഷേ നിങ്ങൾക്കു യാഥാർത്ഥ്യമായ അഹാ! അനുഭവങ്ങൾ അനിവാര്യമാണ്, അത് പഠനത്തെ മൂല്യമുണ്ട്. കൂടാതെ ആദ്യ വിജയകരമായ മേഴ്ജ് മറ്റൊരാളുമായി പങ്കിടുന്നതിന് പ്രത്യേകതയുണ്ട് – നിങ്ങൾ എത്തിയ ദൂരെ ചെറിയൊരു ആഘോഷം പോലെ! + +ഒരു കോഡിംഗ് കൂട്ടുകാരനില്ലേ? അസുഖിക്കണ്ട! GitHub സമൂഹം വളരെ സ്നേഹപൂർവം മനുഷ്യർ കൊണ്ട് നിറഞ്ഞിരിക്കുന്നു, അവർക്ക് പുതുമുഖമായിരുന്ന കാലം ഓർക്കാം. "good first issue" ടാഗും ഉള്ള റിപോസിറ്ററികൾ അന്വേഷിക്കുക – അവർ മിതഭാഷയോടെ പറയുന്നു "ഹേ, തുടക്കക്കാർ, ഞങ്ങളോട് കൂടി പഠിക്കൂ!" എത്ര മനോഹാരിതയാണ് അത്? + +## പോസ്റ്റ്-ലെക്ചർ ക്വിസ് +[Post-lecture quiz](https://ff-quizzes.netlify.app/web/en/) + +## അവലോകനം & പഠനം തുടരുക + +വാഹ്! 🎉 നിങ്ങൾ GitHub അടിസ്ഥാനങ്ങൾ പൂർണ്ണമായി കൈവച്ചി! ഇപ്പോൾ നിങ്ങളുടെ മസ്തിഷ്കം ഇട്ടിവെച്ചിരിപ്പിക്കുകയായിരുന്നു എങ്കിൽ, അത് സാധാരണവും നല്ല സൂചനയുമാണ്. നിങ്ങൾ പഠിച്ചതും എനിക്ക് തുടക്കം മുതൽ ആശ്വാസം അനുഭവിക്കാൻ ആഴ്ചകൾ വേണ്ടി വന്ന ഉപകരണങ്ങളാണ്. + +Git, GitHub അത്രയും ശക്തമായവയാണ് (ഗൗരവമായി ശക്തമായത്), ഞാൻ അറിയുന്ന എല്ലാ ഡെവലപ്പർമാർക്കും – ഇപ്പോൾ വിസ്മൃതികൾ പോലുള്ളവരായവർക്കും – ധാരാളം അഭ്യാസവും ചില പിഴവുകളും നേരിടേണ്ടിവന്നു മുൻപ് എല്ലാം മനസ്സിലായി. നിങ്ങൾ ഈ പാഠം വിജയകരമായി പൂർത്തിയാക്കിയതും നിങ്ങളെ already ഒരു ഡെവലപ്പറുടെ ടൂൾകിറ്റിലെ ഏറ്റവും പ്രധാനപ്പെട്ട ഉപകരണങ്ങളെ കൈകാര്യം ചെയ്യുന്നതിലേക്ക് ഒരുങ്ങിച്ചിരിക്കുന്നതിന്റെ തെളിവാണ്. + +ഇവിടെയാണ് നിങ്ങളെ സഹായിക്കാനുള്ള ഉത്സാഹകരമായ ചില റിസോഴ്‌സുകൾ: + +- [Contributing to open source software guide](https://opensource.guide/how-to-contribute/#how-to-submit-a-contribution) – മാറ്റങ്ങൾ സൃഷ്ടിക്കാൻ നിങ്ങളുടെ റോഡ്‌മാപ്പ് +- [Git cheatsheet](https://training.github.com/downloads/github-git-cheat-sheet/) – എളുപ്പത്തിൽ റഫറൻസ് ചെയ്യാൻ ഈ ഷീറ്റ് കൈവശം വെയ്ക്കുക! + +മറ്റുചിന്തിക്കുക: അഭ്യാസം പുരോഗതിയെയാണ് ഉളവാക്കുന്നത്, പരിപൂർണത അല്ല! Git, GitHub കൂടുതൽ ഉപയോഗിക്കുമ്പോൾ ഇത് സ്വാഭാവികമാക്കുന്നു. GitHub ചില ആകർഷകമായ ഇന്ററാക്ടീവ് കോഴ്‌സുകൾ സൃഷ്ടിച്ചിട്ടുണ്ട്, ഇവിടെ നിങ്ങൾ സുരക്ഷിതമായ അന്തരീക്ഷത്തിൽ അഭ്യാസം നടത്താം: + +- [Introduction to GitHub](https://github.com/skills/introduction-to-github) +- [Communicate using Markdown](https://github.com/skills/communicate-using-markdown) +- [GitHub Pages](https://github.com/skills/github-pages) +- [Managing merge conflicts](https://github.com/skills/resolve-merge-conflicts) + +**ആരോഹണത്തിന് തയ്യാറാണോ? ഈ ആധുനിക ഉപകരണങ്ങൾ പരിശോധിക്കുക:** +- [GitHub CLI documentation](https://cli.github.com/manual/) – കമാൻഡ് ലൈൻ വിസായി തരം തോന്നാൻ നിങ്ങൾക്കായി +- [GitHub Codespaces documentation](https://docs.github.com/en/codespaces) – ക്ലൗഡിൽ കോഡ് ചെയ്യുക! +- [GitHub Actions documentation](https://docs.github.com/en/actions) – എല്ലാ കാര്യങ്ങളും ഓട്ടോമേറ്റ് ചെയ്യുക +- [Git best practices](https://www.atlassian.com/git/tutorials/comparing-workflows) – നിങ്ങളുടെ വർക്ക്‌ഫ്ലോ ഗെയിം മെച്ചപ്പെടുത്തുക + +## GitHub Copilot Agent Challenge 🚀 + +എജന്റ് മോഡ് ഉപയോഗിച്ച് താഴെ പറയുന്ന ചലഞ്ച് പൂർത്തിയാക്കുക: + +**വിവരണം:** ഈ പാഠത്തിൽ പഠിച്ച GitHub പ്രവൃത്തി പ്രക്രിയ പൂർണമായി പ്രദർശിപ്പിക്കുന്ന സഹകരണ വെബ് ഡെവലപ്പ്മെന്റ് പ്രോജക്റ്റ് സൃഷ്ടിക്കുക. ഈ ചലഞ്ച് റിപോസിറ്ററി സൃഷ്ടിക്കൽ, സഹകരണ സവിശേഷതകൾ, ആധുനിക Git പ്രവൃത്തശൈലികൾ യാഥാർത്ഥ്യ സാഹചര്യത്തിൽ അഭ്യാസം നടത്താൻ സഹായിക്കും. + +**പ്രോംപ്റ്റ്:** ലളിതമായ "Web Development Resources" പ്രോജക്റ്റിന് പുതിയ പൊതു GitHub റിപോസിറ്ററി സൃഷ്ടിക്കുക. റിപോസിറ്ററി നല്ല ഘടനയുള്ള README.md ഫയൽ ഉൾക്കൊള്ളണം, പ്രയോജനപ്പെട്ട വെബ് ഡെവലപ്പ്മെന്റ് ഉപകരണങ്ങളും വിഭജനങ്ങളായ വിഭാഗങ്ങളായി (HTML, CSS, JavaScript, തുടങ്ങിയവ) പട്ടികവുമുണ്ടാകണം. ലൈസൻസ്, സംഭാവനാ മാർഗനിർദ്ദേശങ്ങൾ, കോഡ് ഓഫ് കണ്ടക്ട് തുടങ്ങിയ സമൂഹ മാനദണ്ഡങ്ങളും ശരിയായി സജ്ജീകരിക്കുക. കുറഞ്ഞത് രണ്ട് ഫീച്ചർ ബ്രാഞ്ചുകൾ സൃഷ്ടിക്കുക: CSS സ്രോതസ്സുകൾ കൂട്ടിച്ചേർക്കുന്നതിന് ഒന്ന്, JavaScript സ്രോതസ്സുകൾക്കായി മറ്റൊന്ന്. ഓരോ ബ്രാഞ്ചിലും വിശദമായ കമ്മിറ്റ് സന്ദേശങ്ങളോടെ കമ്മിറ്റുകൾ ചെയ്യുക, പിന്നീട് മാറ്റങ്ങൾ മെയിനിലേക്ക് മേഴ്ജ് ചെയ്യാൻ പുൾ റിക്വസ്റ്റുകൾ സൃഷ്ടിക്കുക. പ്രശ്നങ്ങൾ, ചർച്ചകൾ എന്നിവക്ക് GitHub സവിശേഷതകൾ സജീവമാക്കുകയും, ഓട്ടോമേറ്റഡ് പരിശോധനകൾക്കായി അടിസ്ഥാന GitHub Actions വർക്ക്ഫ്ലോ സജ്ജമാക്കുകയും ചെയ്യുക. + +## അസൈൻമെന്റ് + +നിങ്ങളുടെ ദൗത്യമാണ്, നിങ്ങൾ സ്വീകരിക്കാൻ തയ്യാറുണ്ടെങ്കിൽ: GitHub Skills-ലെ [Introduction to GitHub](https://github.com/skills/introduction-to-github) കോഴ്സ് പൂർത്തിയാക്കുക. ഇത് സുരക്ഷിതവും മാർഗ്ഗനിർദേശപരവുമായ പരിതസ്ഥിതിയിൽ നിങ്ങൾ പഠിച്ച എല്ലാം അഭ്യാസം ചെയ്യാനാകും. കൂടാതെ പൂർത്തിയാക്കുമ്പോൾ നിങ്ങൾക്ക് ഒരു കൂൾ ബാഡ്ജ് ലഭിക്കും! 🏅 + +**കൂടുതൽ ചലഞ്ചുകൾക്കായി തയ്യാറാണോ?** +- നിങ്ങളുടെ GitHub അക്കൗണ്ടിന് SSH ഓതന്റിക്കേഷൻ സജ്ജമാക്കുക (പാസ്‌വേഡുകൾ വേണ്ട!) +- നിങ്ങളുടെ ദൈനംദിന Git പ്രവർത്തനങ്ങൾക്കായി GitHub CLI പരീക്ഷിക്കുക +- GitHub Actions വർക്ക്ഫ്ലോ ഉള്ള ഒരു റിപോസിറ്ററി സൃഷ്ടിക്കുക +- GitHub Codespaces ഈ പ്രത്യേക റിപോസിറ്ററി മൊത്തം ക്ലൗഡ് അധിഷ്ഠിത എഡിറ്ററിൽ തുറന്ന് ഉപയോഗിക്കുക + +--- + +## 🚀 നിങ്ങളുടെ GitHub വിദഗദതയുടെ സമയരേഖ + +### ⚡ **അടുത്ത 5 മിനിറ്റിൽ നിങ്ങൾ ചെയ്യാവുന്നതെന്ത്** +- [ ] ഈ റിപോസിറ്ററിയും താൽപ്പര്യമുള്ള മറ്റൊരു 3 പ്രോജക്റ്റുകളും സ്റ്റാർ ചെയ്യുക +- [ ] നിങ്ങളുടെ GitHub അക്കൗണ്ടിൽ രണ്ട് ഘട്ട ഓതന്റിക്കേഷൻ സജ്ജമാക്കുക +- [ ] നിങ്ങളുടെ ആദ്യ റിപോസിറ്ററിയുടെ ലളിതമായ README സൃഷ്ടിക്കുക +- [ ] 5 പ്രചോദനമേകുന്ന ഡെവലപ്പർമാരെ ഫോളോ ചെയ്യുക + +### 🎯 **ഈ മണിക്കൂലിൽ നിങ്ങൾ സാധിച്ചുതീർക്കാവുന്നതെന്ത്** +- [ ] പോസ്റ്റ്-പാഠം ക്വിസ് പൂർത്തിയാക്കി GitHub യാത്രയിൽ തിരിച്ചറിവ് നേടുക +- [ ] പാസ്‌വേഡില്ലാത്ത GitHub ഓതന്റിക്കേഷനായി SSH കീകൾ സജ്ജമാക്കുക +- [ ] മികച്ച ഒരു കമ്മിറ്റ് സന്ദേശം ഉപയോഗിച്ച് ആദ്യ അർത്ഥമുള്ള കമ്മിറ്റ് ചെയ്യുക +- [ ] GitHub "Explore" ടാബ് പരിശോധിച്ച് ട്രെൻഡിങ്ങായ പ്രോജക്റ്റുകൾ കണ്ടെത്തുക +- [ ] റിപോസിറ്ററി forking പരീക്ഷിക്കുകയും ചെറിയ മാറ്റം ചെയ്യുകയും ചെയ്യുക + +### 📅 **നിങ്ങളുടെ ആഴ്‌ചവാരി GitHub സാഹസം** +- [ ] GitHub Skills കോഴ്‌സുകൾ (Introduction to GitHub, Markdown) പൂർത്തിയാക്കുക +- [ ] ഒരു ഓപ്പൺ സോഴ്സ് പ്രോജക്റ്റിന് ആദ്യ പുൾ റിക്വസ്റ്റ് സൃഷ്ടിക്കുക +- [ ] നിങ്ങളുടെ പ്രവർത്തനങ്ങൾ പ്രദർശിപ്പിക്കാൻ GitHub Pages സജ്ജമാക്കുക +- [ ] താത്പര്യമുള്ള പ്രോജക്റ്റുകളിൽ GitHub Discussions-ൽ പങ്കെടുക്കുക +- [ ] ശരിയായ സമൂഹ മാനദണ്ഡങ്ങളോടെയുള്ള ഒരു റിപോസിറ്ററി സൃഷ്ടിക്കുക (README, ലൈസൻസ്, തുടങ്ങിയവ) +- [ ] ക്ലൗഡ് ആധിഷ്ഠിത വികസനത്തിനായി GitHub Codespaces പരീക്ഷിക്കുക + +### 🌟 **നിങ്ങളുടെ മാസം നീണ്ട രൂപാന്തരണം** +- [ ] 3 വ്യത്യസ്ത ഓപ്പൺ സോഴ്സ് പ്രോജക്റ്റുകളിൽ സംഭാവന ചെയ്യുക +- [ ] GitHub-യിൽ പുതുമുഖനായ ഒരാൾക് മാർഗ്ഗനിർദ്ദേശം നൽകുക (pay it forward!) +- [ ] GitHub Actions ഉപയോഗിച്ച് ഓട്ടോമേറ്റഡ് വർക്ക്ഫ്ലോകൾ സജ്ജമാക്കുക +- [ ] നിങ്ങളുടെ GitHub സംഭാവനകളെ പ്രദർശിപ്പിക്കുന്ന പോർട്ട്ഫോളിയോ നിർമ്മിക്കുക +- [ ] Hacktoberfest പോലുള്ള സമൂഹ പരിപാടികളിൽ പങ്കെടുക്കുക +- [ ] മറ്റുള്ളവർ സംഭാവന ചെയ്യുന്ന നിങ്ങളുടെ സ്വന്തം പ്രോജക്റ്റിന് മെയിന്റൈനറായി മാറുക + +### 🎓 **അവസാന GitHub വിദഗദത പരിശോധന** + +**നിങ്ങൾ എത്തിച്ചേരുന്നത് ആഘോഷിക്കൂ:** +- GitHub ഉപയോഗിക്കുന്നത് സംബന്ധിച്ച് നിങ്ങൾക്ക് ഏറ്റവും ഇഷ്ടമുള്ള കാര്യം എന്താണ്? +- ഏത് സഹകരണ സവിശേഷത നിങ്ങളെ ഏറ്റവും ആകർഷിക്കുന്നു? +- ഇപ്പോൾ ഓപ്പൺ സോഴ്സിൽ സംഭാവന ചെയ്യുന്നതിൽ നിങ്ങൾ എത്രത്തോളം ആത്മവിശ്വാസത്തിലാണ്? +- ആദ്യമായി സംഭാവന ചെയ്യാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്ന പ്രോജക്റ്റ് എന്താണ്? + +```mermaid +journey + title നിങ്ങളുടെ GitHub ആത്മവിശ്വാസ യാത്ര + section ഇന്ന് + Nervous: 3: You + Curious: 4: You + Excited: 5: You + section ഈ ആഴ്ച + Practicing: 4: You + Contributing: 5: You + Connecting: 5: You + section അടുത്ത മാസം + Collaborating: 5: You + Leading: 5: You + Inspiring Others: 5: You +``` +> 🌍 **അന്താരാഷ്ട്ര ഡെവലപ്പർ സമുദായത്തിൽ സ്വാഗതം!** ഇനി നിങ്ങൾക്ക് ലോകമാകെയുള്ള ലക്ഷക്കണക്കിന് ഡെവലപ്പർമാരുമായി ചേർന്ന് പ്രവർത്തിക്കാനുള്ള ഉപകരണങ്ങൾ ലഭിച്ചതാണ്. നിങ്ങളുടെ ആദ്യ സംഭാവന ചെറിയതെന്നു തോന്നാമെങ്കിലും, എല്ലാ വലിയ ഓപ്പൺ സോഴ്സ് പ്രോജക്റ്റുകളും ആദ്യം ഒരു ആളിന്റെ ആദ്യ കമ്മിറ്റിലൂടെ തുടങ്ങി. നിങ്ങൾ സ്വാധീനം ചെലുത്തുമോ എന്നല്ല ചോദ്യം, എന്നിട്ട് ആദ്യമായി നിങ്ങളുടെ അപൂർവമായ ദർശനത്തിൽ നിന്നുള്ള ഏത് അത്ഭുതപ്രോജക്റ്റാണ് പ്രയോജനം ചെയ്യുക എന്ന്. 🚀 + +മനസ്സിലാക്കൂ: എല്ലാ വിദഗ്ധരും ഒരിക്കൽ തുടങ്ങിയത് തുടക്കക്കാരായിരുന്നു. നിങ്ങൾക്ക് ഇത് ചെയ്യാനാകും! 💪 + +--- + + +**ഡിസ്‌ക്ലെയ്മർ**: +ഈ ഡോക്യുമെന്റ് AI തർജ്മാകlama സർവീസ് [Co-op Translator](https://github.com/Azure/co-op-translator) ഉപയോഗിച്ച് തർജ്ജിമ ചെയ്തതാണ്. നാം കൃത്യതimingൻ ശ്രമിച്ചാലും, ഓട്ടോമാറ്റഡ് തർജ്മകളിൽ പിഴവുകൾ বা തെറ്റായ വിവരങ്ങൾ ഉണ്ടായിരിക്കാവുന്നതാണ്. സ്വദേശപ്രകാരമായ യഥാർത്ഥ ഡോക്യുമെന്റ് എപ്പോഴുമുള്ള പ്രാമാണികമായ ഉറവിടമായി കണക്കാക്കേണ്ടതാണ്. ഗുരുതരമായ വിവരങ്ങൾക്ക് വർഗ്ഗീയ മനുഷ്യ തർജ്ജിമ പണിയെടുക്കുന്നത് ശിപാർശ ചെയ്യപ്പെടുന്നു. ഈ തർജ്മ നിർവചനത്തെ അടിസ്ഥാനമാക്കി ഉണ്ടായൊരു തെറ്റുപറച്ചിലിനോ തെറ്റായി വ്യാഖ്യാനിക്കലിനോ ഞങ്ങൾ ഉത്തരവാദിത്തമെടുക്കുന്നില്ല. + \ No newline at end of file diff --git a/translations/ml/1-getting-started-lessons/3-accessibility/README.md b/translations/ml/1-getting-started-lessons/3-accessibility/README.md new file mode 100644 index 000000000..591e250d7 --- /dev/null +++ b/translations/ml/1-getting-started-lessons/3-accessibility/README.md @@ -0,0 +1,1500 @@ + +# ആക്‌സസിബിൾ വെബ്പേജുകൾ സൃഷ്ടിക്കൽ + +![ആക്‌സസിബിലിറ്റിയെക്കുറിച്ചു മുഴുവൻ](../../../../translated_images/webdev101-a11y.8ef3025c858d897a.ml.png) +> സ്കെച്‌നോട്ട് [ടോമോമി ഇമൂറ](https://twitter.com/girlie_mac) ഉത്ഘാടനം + +```mermaid +journey + title നിങ്ങളുടെ ആക്‌സസ്​ബിലിറ്റി പഠനസാഹസികത + section അടിസ്ഥാനമാണ് + ഉപയോക്താക്കളെ മനസിലാക്കല്‍: 5: You + ടസ്റ്റിന്ധാന്‍ ഉപകരണങ്ങള്‍: 4: You + POUR സിദ്ധാന്തങ്ങള്‍: 5: You + section കഴിവുകള്‍ നിര്‍മ്മിക്കുക + സെമാന്റിക് HTML: 4: You + ദൃശ്യ രൂപകല്‍പ്പന: 5: You + ARIA സാങ്കേതിക കഴിവുകള്‍: 4: You + section മാസ്റ്റര്‍ പ്രായോഗികം + കീബോര്‍ഡ് നാവിഗേഷന്‍: 5: You + ഫോം ആക്‌സസിബിലിറ്റി: 4: You + യാഥാര്‍ത്ഥ്യപരിശോധന: 5: You +``` +## പ്രീ-ലെക്ചർ ക്വിസ് +[پ്രീ-ലെക്ചർ ക്വിസ്](https://ff-quizzes.netlify.app/web/) + +> വെബിന്റെ ശക്തി അതിന്റെ സർവത്രവ്യാപകതയിലാണു്. അസൗകര്യമില്ലാതെ എല്ലാവർക്കും പ്രവേശനം അവശ്യമാണ്. +> +> \- സർ ടിമോത്തി ബേൺസ്ലി, W3C ഡയറക്ടർ, വേൾഡ് വൈഡ് വെബ്ബിന്റെ കണ്ടുപിടുത്തക്കാരൻ + +നിങ്ങളെ അമ്പരപ്പിക്കാൻ പോകുന്ന ഒരു കാര്യമുണ്ട്: ആക്‌സസിബിൾ വെബ്സൈറ്റുകൾ നിർമ്മിക്കുമ്പോൾ, നിങ്ങൾ വെറും প্রতিবന്ധങ്ങളുള്ള ആളുകൾക്ക് സഹായം നൽകുകയല്ല—സന്തോഷകരം, നിങ്ങൾ വെബിനെ എല്ലാവർക്കും മെച്ചപ്പെടുത്തുകയാണ്! + +ചെറുചെരിവുകളിൽ കാണുന്ന കർബ് കട്ടുകൾ നിങ്ങൾ ശ്രദ്ധിച്ചിട്ടുണ്ടോ? അവ ആദ്യം വീൽചെയറിന് വേണ്ടിയാണ് രൂപകല്‍പ്പന ചെയ്തിരുന്നത്, എന്നാൽ ഇപ്പോള്‍ അവ സ്റ്റോളറുകൾ, ഡെലിവറി തൊഴിലാളികൾ ഡോളികളോടെ, യാത്രക്കാര്‍ റോളിങ് ബാഗുകളോടെ, സൈക്ലിസ്റ്റുകൾക്കും സഹായം നൽകുന്നു. ആക്‌സസിബിൾ വെബ് ഡിസൈൻ എങ്ങനെ പ്രവർത്തിക്കുന്നുവെന്നുള്ള ഉദാഹരണമാണ് ഇത്—ഒരു കൂട്ടത്തേക്ക് സഹായകരമായ പരിഹാരങ്ങൾ സാധാരണയായി എല്ലാവർക്കും ലാഭകരമായി മാറുന്നു. അതിവിശിഷ്ടമാണല്ലോ? + +ഈ പാഠത്തിൽ, ആരെങ്കിലും എങ്ങനെ വിശ്വസനീയമായ അനുഭവം നൽകുന്ന വെബ്സൈറ്റുകൾ സൃഷ്ടിക്കാമെന്ന് നാം പഠിക്കുകയാണ്. വെബ് സ്റ്റാൻഡേർഡുകളിൽ പെട്ടിട്ടുള്ള പ്രായോഗിക സാങ്കേതിക വിദ്യകൾ കണ്ടെത്തും, പരിശോധനയ്ക്ക് കൈകോർക്കും, ആക്‌സസിബിലിറ്റി നിങ്ങളുടെ സൈറ്റുകൾ എല്ലാവർക്കും എങ്ങനെ കൂടുതൽ ഉപയോഗപ്രദമാക്കുന്നുവെന്ന് കാണും. + +ഈ പാഠം കഴിഞ്ഞാൽ, ആക്‌സസിബിലിറ്റി നിങ്ങളുടെ ഡവലപ്പ്മെന്റ് പ്രവൃത്തി പ്രവാഹത്തിന്റെ സ്വാഭാവികഭാഗമാക്കാനുള്ള ആത്മവിശ്വാസം നിങ്ങൾക്ക് ഉണ്ടാകും. വിചാരിച്ചുകൊണ്ടിരിക്കണോ, ഓർമിക്കണോ ഷരീരസൗകര്യം കണക്കിലെടുക്കുന്ന ഡിസൈൻ തിരഞ്ഞെടുപ്പ് രജ്ജുതി മില്ല്യനോടുകൂടി വെബ്ബ് തുറക്കുന്നത് എങ്ങനെ? ചേരാം! + +```mermaid +mindmap + root((വെബ് പ്രാപ്യത)) + Users + സ്ക്രീൻ റീഡറുകൾ + കീബോർഡ് നാവിഗേഷൻ + വോയ്സ് കോണ്ട്രോൾ + വർദ്ധിപ്പിക്കൽ + Technologies + HTML അർത്ഥവിഷയം + ARIA ഗുണങ്ങൾ + CSS ഫോക്കസ് സൂചകങ്ങൾ + കീബോർഡ് ഇവന്റുകൾ + Benefits + വലുതായ പ്രേക്ഷകരുടെ സംഘം + മെച്ചപ്പെട്ട SEO + നിയമാനുസൃതતા + സര്‍വ്വേദ്വാര രൂപകൽപ്പന + Testing + സ്വയം പ്രവർത്തിക്കുന്ന ഉപകരണങ്ങൾ + മാനുവൽ ടെസ്റ്റിംഗ് + ഉപയോക്തൃ പ്രതികരണം + യാഥാർത്ഥ assistive സാങ്കേതികവിദ്യ +``` +> ഈ പാഠം നിങ്ങൾക്ക് [Microsoft Learn](https://docs.microsoft.com/learn/modules/web-development-101/accessibility/?WT.mc_id=academic-77807-sagibbon) 통해യിൽ എടുക്കാം! + +## അസിസ്റ്റീവ് സാങ്കേതിക വിദ്യകൾ മനസിലാക്കൽ + +കോഡിങ്ങിലേക്ക് ചാടുന്നതിന് മുമ്പ്, വിവിധ കഴിവുള്ള ആളുകൾ വെബ് എങ്ങനെ അനുഭവിക്കാറുള്ളുവെന്ന് നാം ഒരു നിമിഷം കാണാം. ഇത് വെറും സിദ്ധാന്തമല്ല—ഇത്തരം യഥാർത്ഥ നാവിഗേഷൻ മാതൃകകൾ മനസ്സിലാക്കുന്നത് നിങ്ങളെ മികച്ച ഡവലപ്പർ ആക്കും! + +അസിസ്റ്റീവ് സാങ്കേതിക വിദ്യകൾ അതിവിശിഷ്ടമാണ്, അവ প্রতিবന്ധങ്ങളുള്ള ആളുകൾ വെബ്സൈറ്റുകളുമായി ഇന്ററാക്റ്റ് ചെയ്യാൻ സഹായിക്കുന്നു, അത് നിങ്ങളെ അമ്പരപ്പിക്കും. ഈ സാങ്കേതിക വിദ്യകൾ എങ്ങനെ പ്രവർത്തിക്കുന്നു എന്ന് നിങ്ങൾ മനസ്സിലാക്കിയാൽ, ആക്‌സസിബിൾ വെബ് അനുഭവങ്ങൾ സൃഷ്ടിക്കുന്നത് ഏറെ എളുപ്പമാകും. മറ്റൊരാളുടെ കണ്ണിലൂടെ നിങ്ങളുടെ കോഡ് കാണാൻ പഠിക്കുന്നതുപോലെയാണ്. + +### സ്ക്രീൻ റീഡറുകൾ + +[സ്ക്രീൻ റീഡറുകൾ](https://en.wikipedia.org/wiki/Screen_reader) അതിവിദഗ്ദ്ധ സാങ്കേതിക സാമഗ്രികളാണ്, ഡിജിറ്റൽ വാചകം ശബ്ദമോ ബ്രെയിൽ ഔട്ട്പുട്ടോ ആയി മാറ്റുന്നു. പ്രധാനമായും ദർശന പരിഗണനയുള്ളവർ ഉപയോഗിക്കുന്നതാണെങ്കിലും, ഡിസ്‌ലക്‌സിയ പോലുള്ള പഠന വൈകല്യമുള്ളവർക്കും ഇത് വളരെ സഹായകരമാണ്. + +സ്ക്രീൻ റീഡറെ ഞാൻ ഒരു ബുദ്ധിമുട്ടുള്ള വാചകക്കാരനെ പോലെ കരുതുന്നു, നിങ്ങൾക്ക് പുസ്തകം വായിച്ചു തരുന്നത് പോലെയാണ്. അതിവിവരിച്ചു അർത്ഥപ്രദമായ ക്രമത്തിൽ ഉള്ളടക്കം വായിക്കുന്നു, "ബട്ടൺ" അല്ലെങ്കിൽ "ലിങ്ക്" പോലുള്ള ഇന്ററാക്ടീവ് ഘടകങ്ങളെ അറിയിക്കുന്നു, പേജ് ചുറ്റിമുണ്ടു നാവിഗേറ്റ് ചെയ്യാൻ കീബോർഡ് ഷോർട്ട്കട്ടുകൾ നൽകുന്നു. പക്ഷേ, സ്ക്രീൻ റീഡറുകൾ വെബ്‌സൈറ്റുകൾ ശരിയായ ഘടനയിലും മാന്യമായ ഉള്ളടക്കത്തിലും രൂപകൽപ്പന ചെയ്തിട്ടില്ലെങ്കിൽ അതാത് മാജിക് കാണില്ല. ഇവിടെ ഡവലപ്പർ എന്ന നിലയിൽ നിങ്ങൾ വരിക! + +**ഏറ്റവും ജനപ്രിയ സ്ക്രീൻ റീഡറുകൾ:** +- **Windows**: [NVDA](https://www.nvaccess.org/about-nvda/) (സൗജന്യവും ജനപ്രിയവുമാണ്), [JAWS](https://webaim.org/articles/jaws/), [Narrator](https://support.microsoft.com/windows/complete-guide-to-narrator-e4397a0d-ef4f-b386-d8ae-c172f109bdb1/?WT.mc_id=academic-77807-sagibbon) (ഇൻബിൽറ്റ്) +- **macOS/iOS**: [VoiceOver](https://support.apple.com/guide/voiceover/welcome/10) (ഇൻബിൽറ്റ്, വളരെ കഴിവുള്ളത്) +- **Android**: [TalkBack](https://support.google.com/accessibility/android/answer/6283677) (ഇൻബിൽറ്റ്) +- **Linux**: [Orca](https://wiki.gnome.org/Projects/Orca) (സൗജന്യവും ഓപ്പൺ സോഴ്സ്) + +**സ്ക്രീൻ റീഡറുകൾ വെബ് ഉള്ളടക്കം എങ്ങനെ നാവിഗേറ്റ് ചെയ്യുന്നു:** + +സ്ക്രീൻ റീഡറുകൾ കൂടുതൽ പരിചയസമ്പന്നരുടെ ബ്രൗസിംഗ് ഫലപ്രദമാക്കുന്ന നിരവധി നാവിഗേഷൻ രീതി നൽകുന്നു: +- **ക്രമാതീത വായനം**: മുകളിൽ നിന്നു താഴേക്ക് ഉള്ളടക്കം വായിക്കുന്നു, ഒരു പുസ്തകം പിന്തുടരുന്നതുപോലെ +- **ലാൻഡ്മാർക്ക് നാവിഗേഷൻ**: പേജ് വിഭാഗങ്ങൾക്കിടയിൽ (header, nav, main, footer) ചാടി പോകുക +- **ഹെഡിങ് നാവിഗേഷൻ**: ഹെഡിങ്ങുകൾക്കിടയിൽ ചാടി പേജ് ഘടന മനസിലാക്കുക +- **ലിങ്ക് പട്ടികകൾ**: എല്ലാ ലിങ്കുകളും പെട്ടെന്നുള്ള ആക്സസിനായി പട്ടികയാക്കുക +- **ഫോം കൺട്രോളുകൾ**: ഇൻപുട്ട് ഫീൽഡുകളുടെയും ബട്ടണുകളുടെയും ഇടയിൽ നേരിട്ട് നാവിഗേറ്റ് ചെയ്യുക + +> 💡 **ഇത് ഞെട്ടിക്കുന്ന കാര്യമാണു്**: 68% സ്ക്രീൻ റീഡർ ഉപയോഗക്കാർ പ്രധാനമായും ഹെഡിങ്ങുകളിലൂടെ നാവിഗേറ്റ് ചെയ്യുന്നു ([WebAIM സർവേ](https://webaim.org/projects/screenreadersurvey9/#finding)). അർഥം? നിങ്ങളുടെ ഹെഡിങ് ഘടന ഉപയോക്താക്കൾക്കായി ഒരു റോഡ് മാപ്പ് പോലെയാണ്—ശരിയായി രൂപകൽപ്പന ചെയ്താൽ, അവർക്ക് ഉള്ളടക്കത്തിൽ എളുപ്പത്തിൽ തിരയാൻ നിങ്ങൾ സഹായിക്കുന്നുവെന്ന് അർഥം! + +### നിങ്ങളുടെ ടെസ്റ്റിംഗ് പ്രവൃത്തി പ്രവാഹം നിർമ്മിക്കൽ + +നല്ല വാർത്ത: ഫലപ്രദമായ ആക്‌സസിബിലിറ്റി പരിശോധന ഭ്രാന്ത മാക്കണമെന്നില്ല! ഓട്ടോമേറ്റഡ് ടൂളുകൾ (എല്ലാമറിയാനുള്ള പ്രശ്നങ്ങൾ കണ്ടെത്തുന്നതിൽ മികച്ചത്) ഉപയോഗിച്ച് കൈകൊണ്ടുള്ള പരിശോധന ചേർത്താൽ ഏറ്റവും നല്ലതാണ്. നിങ്ങളുടെ മുഴുവൻദിനം കളയാതെ അധികം പ്രശ്നങ്ങൾ കണ്ടെത്താൻ എനിക്ക് കണ്ടെത്തിയ സിസ്റ്റമാറ്റിക് മാർഗ്ഗം ഇതാ: + +**അവശ്യമായ മാനുവൽ ടെസ്റ്റിംഗ് പ്രവൃത്തി പ്രവാഹം:** + +```mermaid +flowchart TD + A[🚀 ടെസ്റ്റിംഗ് ആരംഭിക്കുക] --> B{⌨️ കീബോർഡ് നാവിഗേഷൻ} + B --> C[എല്ലാ ഇന്ററാക്ടീവ് ഘടകങ്ങളിലൂടെയും ടാബ് ചെയ്യുക] + C --> D{🎧 സ്‌ക്രീൻ റീഡർ ടെസ്റ്റിംഗ്} + D --> E[NVDA/VoiceOver ഉപയോഗിച്ച് ടെസ്റ്റ് ചെയ്യുക] + E --> F{🔍 സൂം ടെസ്റ്റിംഗ്} + F --> G[200% വരെ സൂം ചെയ്ത് പ്രവർത്തനം പരിശോധിക്കുക] + G --> H{🎨 വർണ്ണം/കാർഷികം പരിശോധിക്കൽ} + H --> I[എല്ലാ വാചകവും കാർഷികാനുപാതങ്ങൾ പാലിക്കുന്നുവെന്ന് സ്ഥിരീകരിക്കുക] + I --> J{👁️ ഫോക്കസ് മാനേജ്‌മെന്റ്} + J --> K[ഫോക്കസ് സൂചകങ്ങൾ ദൃശ്യമായിരിക്കാൻ ഉറപ്പ് വരുത്തുക] + K --> L[✅ ടെസ്റ്റിംഗ് പൂർത്തിയായി] + + style A fill:#e3f2fd + style L fill:#e8f5e8 + style B fill:#fff3e0 + style D fill:#f3e5f5 + style F fill:#e0f2f1 + style H fill:#fce4ec + style J fill:#e8eaf6 +``` +**ഘട്ടം ഘട്ടം ടെസ്റ്റിംഗ് ചെക്ക്ലിസ്റ്റ്:** +1. **കീബോർഡ് നാവിഗേഷൻ**: Tab, Shift+Tab, Enter, Space, Arrow കീകൾ മാത്രം ഉപയോഗിക്കുക +2. **സ്ക്രീൻ റീഡർ ടെസ്റ്റിംഗ്**: NVDA, VoiceOver, അല്ലെങ്കിൽ Narrator ഓണാക്കി കണ്ണ് അടച്ചുപറയ്‌ക്കുക +3. **സൂം ടെസ്റ്റിംഗ്**: 200% ഉം 400% ഉം സൂം ഘട്ടങ്ങളിൽ പരീക്ഷിക്കുക +4. **റംഗ് വിടിവം പരിശോധന**: എല്ലാ വാചകങ്ങളുടെയും UI ഘടകങ്ങളുടെയും പരിശോധന +5. **ഫോക്കസ് സൂചക പരിശോധന**: എല്ലാ ഇന്ററാക്ടീവ് ഘടകങ്ങളുടെയും ദൃശ്യ ഫോക്കസ് നില ഉണ്ടെന്നൊക്കുക + +✅ **Lighthouse നാൽ തുടങ്ങുക**: നിങ്ങളുടെ ബ്രൗസറിലെ DevTools തുറന്ന് Lighthouse ആക്‌സസിബിലിറ്റി ഓഡിറ്റ് പ്രവർത്തിപ്പിക്കുക, ശേഷം ഫലങ്ങൾ പരിഗണിച്ച് മാനുവൽ പരിശോധന ഏർപ്പെടുത്തുക. + +### സൂം & മാഗ്നിഫിക്കേഷൻ ടൂളുകൾ + +ഫോൺ ടെക്സ്റ്റ് ചെറിയപ്പോൾ നിങ്ങൾ എങ്ങനെ പിണച്ച് സൂം ചെയ്യാറുണ്ടെന്നു് അറിയാമല്ലോ, അല്ലെങ്കിൽ പ്രകാശമുള്ള വെളിച്ചത്തിൽ ലാപ്‌ടോപ്പ് സ്‌ക്രീനിലേക്ക് കണ്ണടച്ചു നോക്കാറുണ്ടോ? പല ഉപയോക്താക്കൾക്കും ഉള്ളടക്കം വായിക്കാൻ മാഗ്നിഫിക്കേഷൻ ടൂളുകളിൽ ആശ്രയിക്കുന്നു. ഇതിൽ ദൃശ്യ ദുർബലതയുള്ളവർ, മുതിർന്നവരും ഉൾപ്പെടുന്നു, കൂടാതെ പരിതസ്ഥിതി പുറം ജില്ലകളും വെബ്‌സൈറ്റ് വായിക്കാൻ ശ്രമിക്കുമ്പോൾ. + +ആധുനിക സൂം സാങ്കേതിക വിദ്യ വലിയ വലിപ്പമാക്കലിൽ മാത്രമല്ല. ഈ ടൂളുകൾ എങ്ങനെ പ്രവർത്തിക്കുന്നു മനസ്സിലാക്കുന്നത്, ნებისმിയും ആർക്കിടെക്ചർ രചിക്കാൻ സഹായിക്കും, ഏത് സൂം ഘട്ടത്തിലും സൈറ്റ് ഫംഗ്ഷണൽ ആയതിനെയും ആകർഷകമായതിനെയും ഉറപ്പാക്കാൻ. + +**ആധുനിക ബ്രൗസർ സൂം കഴിവുകൾ:** +- **പേജ് സൂം**: എല്ലാ ഉള്ളടക്കവും അനുപാതപരമായി സ്കെയിൽ ചെയ്യുന്നു (വാചകം, ചിത്രങ്ങൾ, ലേഔട്ട്) - ഇതാണ് പരിഗണിക്കേണ്ട രീതിയ്‌ക്കൊപ്പം +- **വാചകം മാത്രം സൂം**: ഫോണ്ട് വലുപ്പം കൂട്ടുന്നു പക്ഷെ യഥാ ലേഔട്ട് നിലനിർത്തുന്നു +- **പിണച്ച്-ടു-സൂം**: മൊബൈൽ ജെസ്ച്ചർ പിന്തുണക്കുന്നു താത്ക്കാലികമായി വലുപ്പം കൂട്ടാൻ +- **ബ്രൗസർ പിന്തുണ**: എല്ലാ ആധുനിക ബ്രൗസറുകളും 500% വരെ സൂം പിന്തുണയ്ക്കുന്നു, പ്രവർത്തനക്ഷമത നഷ്ടപ്പെടാതെ + +**വിശിഷ്ട മാഗ്നിഫിക്കേഷൻ സോഫ്റ്റ്‌വെയർ:** +- **Windows**: [Magnifier](https://support.microsoft.com/windows/use-magnifier-to-make-things-on-the-screen-easier-to-see-414948ba-8b1c-d3bd-8615-0e5e32204198) (ഇൻബിൽട്ട്), [ZoomText](https://www.freedomscientific.com/training/zoomtext/getting-started/) +- **macOS/iOS**: [Zoom](https://www.apple.com/accessibility/mac/vision/) (ഇൻബിൽട്ട്, മുൻനിര സവിശേഷതകൾ സഹിതം) + +> ⚠️ **ഡിസൈൻ പരിഗണന**: WCAG ആവശ്യപ്പെടുന്നത് ഉള്ളടക്കം 200% സൂം ചെയ്താലും പ്രവർത്തനക്ഷമമായിരിക്കണം. ഈ നിലയിൽ, ശരാശരി ഹോറിസോണ്ടൽ സ്‌ക്രോളിംഗ് കുറവായിരിക്കണം, എല്ലാ ഇന്ററാക്ടീവ് ഘടകങ്ങളും ആക്‌സസിബിൾ ആയിരിക്കണം. + +✅ **റെസ്പോൺസീവ് ഡിസൈൻ പരീക്ഷിക്കുക**: നിങ്ങളുടെ ബ്രൗസർ 200% ഉം 400% ഉം സൂം ചെയ്ത് നോക്കൂ. ലേഔട്ട് സുന്ദരമായും എളുപ്പത്തിൽ ക്രമീകരിക്കപ്പെടുന്നു? അധിക സ്‌ക്രോളിംഗ് കൂടാതെ എല്ലാ സവിശേഷതകളും നിങ്ങൾക്ക് ആക്‌സസ് ചെയ്യാമോ? + +## ആധുനിക ആക്‌സസിബിലിറ്റി ടെസ്റ്റിംഗ് ടൂളുകൾ + +ഇപ്പോൾ നിങ്ങൾ അറിയാം ആളുകൾ അസിസ്റ്റീവ് സാങ്കേതിക വിദ്യ ഉപയോഗിച്ച് വെബ് എങ്ങനെ നാവിഗേറ്റ് ചെയ്യുന്നു, നമുക്ക് സഹായിക്കുന്ന ഉപകരണങ്ങൾ പരിശോധിക്കാം accessible websites നിർമ്മിക്കാൻ. + +ഓട്ടോമേറ്റഡ് ടൂളുകൾ വ്യക്തമാക്കുന്ന പ്രശ്നങ്ങൾ പിടിക്കുകയും (ഉദാ. alt ടെക്സ്റ്റ് ഇല്ലാത്തത്), കൈകൊണ്ടുള്ള പരിശോധന സൈറ്റ് യഥാർത്ഥ ലോകത്തിൽ ഉപയോഗിക്കാൻ അനുയോജ്യമായി ഉറപ്പാക്കുകയും ചെയ്യുന്നു. ഒരുമിച്ച്, ഇവ നിങ്ങളുടെ സൈറ്റുകൾ എല്ലാവർക്കും പ്രവർത്തിക്കുന്നതിൽ ആത്മവിശ്വാസം നൽകുന്നു. + +### നിറം വിടിവം പരിശോധന + +നല്ല വാർത്ത: നിറം വിടിവം ഏറ്റവും സാധാരണമായ ആക്‌സസിബിലിറ്റി പ്രശ്നങ്ങളിലൊന്നാണ്, പക്ഷെ അതുപോലെ പരിഹരിക്കാൻ എളുപ്പമെന്നതാണ്. നല്ല വിടിവം എല്ലാവർക്കും ഉപകാരപ്രദമാണ്—ദൃശ്യ വൈകല്യമുള്ളവരിൽ നിന്നും കടൽതീരത്തിൽ ഫോണിൽ വായിക്കുന്നവരെ വരെ. + +**WCAG വിടിവം ആവശ്യകതകൾ:** + +| വാചക തരം | WCAG AA (കുറഞ്ഞത്) | WCAG AAA (ഉയർത്തിയത്) | +|-----------|-------------------|---------------------| +| **സ്വഭാവ വാചകം** (18pt താഴെ) | 4.5:1 വിടിവം അനുപാതം | 7:1 വിടിവം അനുപാതം | +| **വലിയ വാചകം** (18pt+ അല്ലെങ്കിൽ 14pt+ ബോൾഡ്) | 3:1 വിടിവം അനുപാതം | 4.5:1 വിടിവം അനുപാതം | +| **UI ഘടകങ്ങൾ** (ബട്ടണുകൾ, ഫോം ബോർഡറുകൾ) | 3:1 വിടിവം അനുപാതം | 3:1 വിടിവം അനുപാതം | + +**അവശ്യമായ ടെസ്റ്റിംഗ് ടൂളുകൾ:** +- [Colour Contrast Analyser](https://www.tpgi.com/color-contrast-checker/) - ഡെസ്ക്ടോപ്പ് ആപ്പ് കളർ പിക്കർ സഹിതം +- [WebAIM Contrast Checker](https://webaim.org/resources/contrastchecker/) - വെബ് അടിസ്ഥാനമാക്കിയ ഫീഡ്ബാക്ക് +- [Stark](https://www.getstark.co/) - Figma, Sketch, Adobe XD ഡിസൈൻ പ്ലഗിൻ +- [Accessible Colors](https://accessible-colors.com/) - ആക്‌സസിബിൾ കolor പാളറ്റുകൾ കണ്ടെത്താൻ + +✅ **മികച്ച നിറം പാളറ്റുകൾ നിർമ്മിക്കുക**: നിങ്ങളുടെ ബ്രാൻഡ് നിറങ്ങൾ കൊണ്ട് ആരംഭിച്ച്, കണ്ട്രാസ്റ്റ് ചെക്കറുകൾ ഉപയോഗിച്ച് ആക്സസിബിൾ വകഭേദങ്ങൾ സൃഷ്ടിക്കുക. ഈ ഘടന നിങ്ങളുടെ ഡിസൈൻ സിസ്റ്റത്തിന്റെ ആക്‌സസിബിൾ കളർ ടോക്കണുകളായി രേഖപ്പെടുത്തുക. + +### സമഗ്ര ആക്‌സസിബിലിറ്റി ഓഡിറ്റിംഗ് + +ഏറ്റവും ഫലപ്രദമായ ആക്‌സസിബിലിറ്റി ടെസ്റ്റിംഗ് വ്യത്യസ്ത മാര്‍ഗ്ഗങ്ങൾ സംയോജിപ്പിക്കുന്നു. ഒറ്റപ്പോലും ഏതാനും പ്രശ്നങ്ങൾ മാത്രമേ അറിഞ്ഞു പിടിക്കൂ, അതിനാൽ ടെസ്റ്റിംഗ് രീതി വളർത്തേണ്ടതാണ്. + +**ബ്രൗസർ അടിസ്ഥാനപരമായ ടെസ്റ്റിംഗ് (DevTools ഉൾപ്പെടുത്തിയത്):** +- **Chrome/Edge**: Lighthouse ആക്‌സസിബിലിറ്റി ഓഡിറ്റ് + Accessibility പാനൽ +- **Firefox**: Accessibility ഇൻസ്പെക്ടർ വിശദമായ ട്രി വ്യൂ സഹിതം +- **Safari**: Web Inspector ൽ Audit ടാബ് VoiceOver അനുഭവ സമചാരം + +**പ്രൊഫഷണൽ ടെസ്റ്റിംഗ് എക്സ്റ്റൻഷനുകൾ:** +- [axe DevTools](https://www.deque.com/axe/devtools/) - വ്യവസായ സ്റ്റാൻഡേർഡ് ഓട്ടോമേറ്റഡ് ടെസ്റ്റിംഗ് +- [WAVE](https://wave.webaim.org/extension/) - Visual ഫീഡ്ബാക്ക് പിശകു വരിയടക്കം +- [Accessibility Insights](https://accessibilityinsights.io/) - Microsoft ന്റെ സമ്പൂർണ ടെസ്റ്റിംഗ് സ്യൂട്ട് + +**കമാൻഡ്-ലൈൻ & CI/CD സംയോജനം:** +- [axe-core](https://github.com/dequelabs/axe-core) - ഓട്ടോമേറ്റഡ് ടെസ്റ്റിനുള്ള ജാവാസ്ക്രിപ്റ്റ് ലൈബ്രറി +- [Pa11y](https://pa11y.org/) - കമാൻഡ്-ലൈൻ ആക്‌സസിബിലിറ്റി ടെസ്റ്റിംഗ് ടൂൾ +- [Lighthouse CI](https://github.com/GoogleChrome/lighthouse-ci) - ഓട്ടോമേറ്റഡ് ആക്‌സസിബിലിറ്റി സ്കോറിംഗ് + +> 🎯 **ടെസ്റ്റിംഗ് ലക്ഷ്യം**: ഒരു ബേസ്ലൈൻ ആയി Lighthouse ആക്‌സസിബിലിറ്റി സ്‌കോർ 95+ നിരീക്ഷിക്കുക. ഓർമിക്കുക, ഓട്ടോമേറ്റഡ് ടൂളുകൾ മാത്രം ആക്‌സസിബിലിറ്റി പ്രശ്നങ്ങളുടെ 30-40% മാത്രം കണ്ടെത്തുന്നു—മാനുവൽ ടെസ്റ്റിംഗ് ഇപ്പോഴും അനിവാര്യമാണ്! + +### 🧠 **ടെസ്റ്റിംഗ് കഴിവുകൾ പരിശോധിക്കുക: വിഷങ്ങളുണ്ടോ കണ്ടെത്താൻ തയ്യാറാ?** + +**ആക്‌സസിബിലിറ്റി ടെസ്റ്റിംഗിനെ കുറിച്ച് നിങ്ങൾ എങ്ങനെ അനുഭവപ്പെടുന്നു വഴി നോക്കാം:** +- ഇപ്പോൾ ഏത് ടെസ്റ്റിംഗ് രീതി നിങ്ങൾക്ക് എളുപ്പമായി തോന്നുന്നു? +- കീബോർഡ് മാത്രം നാവിഗേഷൻ ഒരു മുഴുവൻ ദിനം ഉപയോഗിക്കുന്നതു് കഴിയും എന്ന് നിങ്ങൾ കരുതുന്നുണ്ടോ? +- നിങ്ങൾ നേരിട്ടുള്ള ഒരു ആക്‌സസിബിലിറ്റി തടസ്സം ഓൺലൈനിൽ എന്തെങ്കിലും അനുഭവപ്പെട്ടിട്ടുണ്ടോ? + +```mermaid +pie title "വിവിധ രീതികളിലൂടെ കണ്ടെത്തിയ ആക്‌സസിബിലിറ്റി പ്രശ്നങ്ങൾ" + "സ്വയം ക്രമീകരിച്ച ഉപകരണങ്ങൾ" : 35 + "മാനുവൽ പരിശോധന" : 40 + "ഉപയോക്തൃ പ്രതികരണം" : 25 +``` +> **ആത്മവിശ്വാസം വർദ്ധിപ്പിക്കുന്നു**: പ്രൊഫഷണൽ ആക്‌സസിബിലിറ്റി ടെസ്റ്റർമാർ ഈ രീതി തന്നെ ഉപയോഗിക്കുന്നു. നിങ്ങൾ വ്യവസായ സ്റ്റാൻഡേർഡ് രീതികൾ പഠിക്കുകയാണ്! + +## അടിസ്ഥാനം മുതൽ ആക്‌സസിബിലിറ്റി നിർമിക്കുക + +ആക്‌സസിബിലിറ്റിയിൽ വിജയിക്കാനിടയാക്കുന്നത് അത് അർജ്ജിക്കപ്പെടുന്ന ആദ്യ ദിവസം മുതൽ നിർമ്മിക്കലാണ്. "ഞാൻ പിന്നീട് ആക്‌സസിബിലിറ്റി ചേർക്കും" എന്ന് കരുതുന്നത് വൈജ്ഞാനികമാണ്, പക്ഷേ വീടു് പണിയപ്പെട്ട ശേഷം പാലം ഇടുന്നതുപോലെയാണ്—സാധ്യമാണ്, എളുപ്പമല്ല. + +ആക്‌സസിബിലിറ്റിയെ ഒരു വീട് പ്ലാൻ ചെയ്യുന്നതുപോലെ കരുതുക—ആരംഭത്തില്‍ വീൽചെയർ പ്രവേശനം ഉൾപ്പെടുത്തുന്നത് കൂടുതൽ സുഗമമാണ് ഒടുവിൽ മാറ്റം വരുത്തുന്നതേക്കാൾ. + +### POUR സിദ്ധാന്തങ്ങൾ: നിങ്ങളുടെ ആക്‌സസിബിലിറ്റി അടിസ്ഥാനം + +വെബ് കന്റന്റ് ആക്‌സസിബിലിറ്റി ഗൈഡ്‌ലൈൻസുകൾ (WCAG) നാല് അടിസ്ഥാന സിദ്ധാന്തങ്ങൾയെ നിർമ്മിച്ചിരിക്കുന്നു, അവ POUR എന്നാണു് അറിയപ്പെടുന്നത്. ഭീമാകാരമല്ല—പകരം, അവ ഏവർക്കും പറ്റിയ ഉള്ളടക്കം ഉണ്ടാക്കുന്നതിനുള്ള പ്രായോഗിക മാർഗ്ഗനിർദ്ദേശങ്ങളാണ്. + +POUR മനസ്സിലാക്കിയാൽ, ആക്‌സസിബിലിറ്റി തീരുമാനങ്ങൾ എളുപ്പത്തിൽ എടുക്കാനാകും. ഒരു മാനസിക ചെക്ക്ലിസ്റ്റ് ഉണ്ടാകുന്നതുപോലെ നിങ്ങളുടെ ഡിസൈൻ തിരഞ്ഞെടുപ്പുകൾ നയിക്കുന്നു. ഇതാ അവ വിശദീകരിക്കുന്നു: + +```mermaid +flowchart LR + A[🔍 മനസ്സിലാക്കാവുന്നതാണ്
ഉപയോക്താക്കൾ ഇതിനെ അനുഭവിക്കാമോ?] --> B[🎮 പ്രവർത്തിക്കാവുന്നതാണ്
ഉപയോക്താക്കൾ ഇത് ഉപയോഗിക്കുമോ?] + B --> C[📖 മനസ്സിലാക്കാനാകുന്ന
ഉപയോക്താക്കൾക്ക് ഇത് ഗ്രഹിക്കാമോ?] + C --> D[💪 ദൃഢമായ
എല്ലായിടത്തും ഇത് പ്രവർത്തിക്കുന്നുണ്ടോ?] + + A1[Alt പാഠം
ശീർഷകങ്ങൾ
വിരുദ്ധത] --> A + B1[കീബോർഡ് ആക്‌സസ്
ആഘാതങ്ങളില്ല
സമയ പരിധികൾ] --> B + C1[സ്വച്ഛമായ ഭാഷ
കാണാതിരിക്കുന്ന
പിശക് സഹായം] --> C + D1[സാധു കോഡ്
പിന്തുണയുള്ള
ഭാവി-പ്രൂഫ്] --> D + + style A fill:#e1f5fe + style B fill:#e8f5e8 + style C fill:#fff3e0 + style D fill:#f3e5f5 +``` +**🔍 പ്രകടമാകാവുന്ന (Perceivable)**: ഉപയോക്താക്കൾക്ക് അവരുടെ ലഭ്യമായ അറിയലുകൾ വഴി വിവരങ്ങൾ കാണാനാകണം + +- ടെക്സ്റ്റിൽ വ്യക്തമാക്കാനുള്ള പകരപ്പെടുത്തിയ വാചകങ്ങൾ (ചിത്രങ്ങൾ, വീഡിയോകൾ, ഓഡിയോ) +- എല്ലാ വാചകത്തിന്റെയും UI ഘടകങ്ങളുടേയും മതിവരുന്ന നിറം വിടിവം ഉറപ്പ് വരുത്തുക +- മൾട്ടിമീഡിയ ഉള്ളടക്കങ്ങൾക്ക് ക്യാപ്ഷനുകളും ട്രാൻസ്ഫ്രിപ്റ്റുകളും നൽകുക +- 200% വരെ വലുപ്പം മാറ്റുമ്പോഴും ഉള്ളടക്കം പ്രവർത്തനക്ഷമമായിരിക്കണം +- വിവരങ്ങൾ പകർപ്പിക്കാൻ നിറം മാത്രം അല്ല, വിവിധ സെൻസറികൾ ഉപയോഗിക്കുക + +**🎮 പ്രവർത്തനക്ഷമമായ (Operable)**: എല്ലാ ഇന്റർഫേസ് ഘടകങ്ങളും ലഭ്യമായ ഇൻപുട്ട് മാർഗ്ഗങ്ങളിൽ പ്രവർത്തിക്കണം + +- കീബോർഡ് നാവിഗേഷനിലൂടെ എല്ലാ പ്രവർത്തനങ്ങളും ആക്‌സസിബിൾ ആക്കുക +- ഉപയോക്താക്കൾക്ക് ഉള്ളടക്കം വായിക്കുകയും ഇടപെടുകയും ചെയ്യാനുള്ള മതിയായ സമയം നൽകുക +- സീസ്ചർസ് അല്ലെങ്കിൽ വേസ്‌റ്റിബുലാർ പ്രശ്നങ്ങൾ ഉണ്ടാക്കുന്ന ഉള്ളടക്കം ഒഴിവാക്കുക +- വ്യക്തമോയ ഘടനയും ലാൻഡ്മാർക്കുകളും ഉപയോഗിച്ച് ഫലപ്രദമായ നാവിഗേഷൻ സഹായിക്കുക +- 44px കനിയായിട്ടുള്ള ലക്ഷ്യപരിധികൾ ഉണ്ടാകണം ഇന്ററാക്ടീവ് ഘടകങ്ങൾക്ക് + +**📖 മനസ്സിലാക്കാവുന്ന (Understandable)**: വിവരങ്ങളും UI പ്രവർത്തനവും വ്യക്തവും പ്രായോഗികവുമാകണം + +- നിങ്ങളുടെ ദർശകനുസരിച്ച് സുതാര്യവും ലളിതവുമായ ഭാഷ ഉപയോഗിക്കുക +- ഉള്ളടക്കം നിയന്ത്രണ വിധേയവും സ്ഥിരതയുള്ളതുമാകണം +- ഉപയോക്തൃഇൻപുട്ടിനായി വ്യക്തമായ നിർദ്ദേശങ്ങളും പിശകു സന്ദേശങ്ങളും നൽകുക +- ഫോമുകളിൽ പിശകുകൾ മനസ്സിലാക്കാനിലും തിരുത്താനുമുള്ള സഹായം നൽകുക +- ലൊജിക്കൽ വായനാകൃതിയിലും വിവരങ്ങൾ ഘടനയിൽ ഉള്ളടക്കം ക്രമീകരിക്കുക + +**💪 ശക്തമായ (Robust)**: ഉള്ളടക്കം വിവിധ സാങ്കേതികവിദ്യകളിലും അസിസ്റ്റീവ് ഉപകരണങ്ങളിലും വിശ്വസനീയമായി പ്രവർത്തിക്കണം + +- **വളരെ സാധുവായ സെമാന്റിക് HTML നിങ്ങളുടെ അടിസ്ഥാനം ആക്കുക** +- **ഇപ്പോൾ ഉള്ളും ഭാവിയിലുള്ള അസിസ്റ്റീവ് സാങ്കേതിക വിദ്യകളുമായി പൊരുത്തപ്പെടാൻ ഉറപ്പ് നൽകുക** +- **മാർക്കപ്പിനായി വെബ് സ്റ്റാൻഡേർഡുകളും മികച്ച രീതികളും പിന്തുടരുക** +- **വ്യത്യസ്ത ബ്രൗസറുകൾ, ഉപകരണങ്ങൾ, സഹായമേളനങ്ങൾ എന്നിവയിൽ പരിശോധന നടത്തുക** +- **ഉന്നത സവിശേഷതകൾ പിന്തുണയ്ക്കാതെ ഉപരിതലമായി വീഴ്ച സംഭവിക്കുമ്പോൾ ഉള്ളടക്കം ക്രമീകരിക്കുക** + +### 🎯 **POUR സിദ്ധാന്ത പരിശോധന: അത് നിലനിർത്തുക** + +**അടിത്തറകളിൽ ത്വരിതമായ പ്രതിബിംബനം:** +- ഓരോ POUR സിദ്ധാന്തത്തെയും പൊട്ടിക്കുന്ന ഒരു വെബ് സൈറ്റ് ഫീച്ചർ നിങ്ങൾക്ക് ചിന്തിക്കാമോ? +- ഒരു ഡെവലപ്പറായി ഏറ്റവും സ്വാഭാവികമായി തോന്നുന്നത് ഏതു സിദ്ധാന്തമാണ്? +- ദുര്‍ഗമമായ ഉപയോക്താക്കളല്ലാതെ എല്ലാവർക്കും ഡിസൈൻ എങ്ങനെ മെച്ചപ്പെടുത്താൻ ഈ സിദ്ധാന്തങ്ങൾ സഹായിക്കും? + +```mermaid +quadrantChart + title POUR പ്രിൻസിപ്പിൾസ് ഇംപാക്ട് മാട്രിക്സ് + x-axis കുറഞ്ഞ ശ്രമം --> ഉയർന്ന ശ്രമം + y-axis കുറഞ്ഞ പ്രഭാവം --> ഉയർന്ന പ്രഭാവം + quadrant-1 വേഗതയുള്ള വിജയം + quadrant-2 പ്രധാന പദ്ധതികൾ + quadrant-3 പിന്നീട് പരിഗണിക്കുക + quadrant-4 സ്ട്രാറ്റജിക് ഫോകസ് + + Alt Text: [0.2, 0.9] + Color Contrast: [0.3, 0.8] + Semantic HTML: [0.4, 0.9] + Keyboard Nav: [0.6, 0.8] + ARIA Complex: [0.8, 0.7] + Screen Reader Testing: [0.7, 0.6] +``` +> **ഓർമ്മിക്കുക**: കുറഞ്ഞ പരിശ്രമത്തിൽ വലിയ സ്വാധീനം ഉള്ള മെച്ചപ്പെടുത്തലുകളിൽ തുടക്കം മുടക്കുക. സെമാന്റിക് HTML-ഉം alt ടെക്സ്റ്റും കുറഞ്ഞ പരിശ്രമത്തിൽ വലിയ ആക്സസിബിലിറ്റി വർദ്ധനവാണ് നൽകുന്നത്! + +## ആക്സസിബിൾ വിഷ്വൽ ഡിസൈൻ സൃഷ്ടിക്കൽ + +നല്ല വിഷ്വൽ ഡിസൈൻയും ആക്സസിബിലിറ്റിയും ചേർന്ന് പ്രവർത്തിക്കുന്നു. ആക്സസിബിലിറ്റിയെ മനസിലാക്കി ഡിസൈൻ ചെയ്തപ്പോൾ, ഈ നിയന്ത്രണങ്ങൾ എല്ലാവർക്കും ഗുണകരമായ കൂടുതൽ ശുദ്ധവും തനി ഉത്തമവുമായ പരിഹാരങ്ങൾ കണ്ടെത്താൻ സാധിക്കുന്നു. + +വളരെ കാഴ്ചയ്ക്ക് പറ്റിയില്ലാത്തവർക്കും, നിങ്ങളുടെ ഉള്ളടക്കം കാണുന്ന സാഹചര്യങ്ങളിൽ നിന്നും സ്വതന്ത്രമായി, എല്ലാവർക്കും അനുയോജ്യമായി പ്രവർത്തിക്കുന്ന ദൃശ്യ ആകര്‍ഷകമായ ഡിസൈനുകൾ എങ്ങനെ സൃഷ്ടിക്കാമെന്ന് നാം പരിശോധിക്കാം. + +### നിറവും ദൃശ്യ ആക്സസിബിലിറ്റി തന്ത്രങ്ങളും + +നിറം ആശയവിനിമയത്തിന് ശക്തിയാണ്, എന്നാൽ പ്രധാന വിവരങ്ങൾ അറിയിക്കാൻ അത് ഒറ്റ വഴിയാകരുത്. നിറപരമായ ഡിസൈൻ ദർശനം മറികടന്ന്, കൂടുതൽ ദൃഢതയുള്ള, ഉൾക്കൊള്ളുന്ന അനുഭവങ്ങൾ സൃഷ്ടിക്കുന്നു, വിവിധ സാഹചര്യങ്ങളിൽ ഫലപ്രദം ആകുന്നു. + +**നിറദൃശ്യ വ്യത്യാസങ്ങൾക്കായി ഡിസൈൻ ചെയ്യുക:** + +ഏകദേശം പുരുഷന്മാരിൽ 8%നും സ്ത്രീകളിൽ 0.5%നും ചില നിറദൃഷ്‌ടിവൈകാര്യതയുണ്ട് ("നിറകാണാത്തതുപോലെ" അറിയപ്പെടുന്നത്). ഏറ്റവും സാധാരണമായവ: +- **ഡ്യൂറ്ററാനോപ്പിയ**: ചുവപ്പും പച്ചയും തിരിച്ചറിയാനുകഷ്‌ണം +- **പ്രോട്ടാനോപ്പിയ**: ചുവപ്പ് ഇളക്കം കുറഞ്ഞുപോലെയാണ് കാണുന്നത് +- **ട്രൈറ്റാനോപ്പിയ**: നീലയുംമഞ്ഞയും തമ്മിൽ ഭേദപ്പെടുത്താൻ ബുദ്ധിമുട്ട് (അപര്യായം) + +**ഉൾക്കൊള്ളുന്ന നിറ തന്ത്രങ്ങൾ:** + +```css +/* ❌ Bad: Using only color to indicate status */ +.error { color: red; } +.success { color: green; } + +/* ✅ Good: Color plus icons and context */ +.error { + color: #d32f2f; + border-left: 4px solid #d32f2f; +} +.error::before { + content: "⚠️"; + margin-right: 8px; +} + +.success { + color: #2e7d32; + border-left: 4px solid #2e7d32; +} +.success::before { + content: "✅"; + margin-right: 8px; +} +``` + +**അടിസ്ഥാന കോൺട്രാസ്റ്റ് ആവശ്യകതകൾക്ക് പുറമേ:** +- നിറം കാണാനുള്ള സഹായികൾ ഉപയോഗിച്ച് നിങ്ങളുടെ നിറങ്ങൾ പരീക്ഷിക്കുക +- നിറ കോഡിംഗിനൊപ്പം പാറ്റേണുകൾ, എഴുത്തുകൾ, രൂപങ്ങൾ ഉപയോഗിക്കുക +- നിറം ഇല്ലാതെ പോലും ഇന്ററാക്ടീവ് അവസ്ഥകൾ വ്യത്യസ്തമായി കാണിക്കുക +- നിങ്ങളുടെ ഡിസൈൻ ഉയർന്ന കോൺട്രാസ്റ്റിൽ എങ്ങിനെയാണ് കാണപ്പെടുന്നത് கவലിക്കുക + +✅ **നിറ ആക്സസിബിലിറ്റി പരിശോധന**: വൈവിധ്യമാർന്ന നിറദൃഷ്ടിബന്ധമുള്ളവർക്ക് നിങ്ങളുടെ സൈറ്റ് എങ്ങനെയാണ് എത്തുന്നത് എന്ന് കാണാൻ [Coblis](https://www.color-blindness.com/coblis-color-blindness-simulator/) പോലുള്ള ഉപകരണങ്ങൾ ഉപയോഗിക്കുക. + +### ഫോകസ് സൂചകങ്ങളും ഇടപെടൽ ഡിസൈനും + +ഫോകസ് സൂചകങ്ങൾ ഒരു ഡിജിറ്റൽ കേഴ്സർ പോലെയാണ് — കീബോർഡുപയോഗിക്കുന്നവർക്ക് അവർ പേജിൽ എവിടെയാണ് എന്ന് കാണിക്കുന്നു. നന്നായി രൂപകൽപ്പന ചെയ്ത ഫോകസ് സൂചകങ്ങൾ എല്ലാവർക്കും ഇടപെടലുകൾ സ്പഷ്ടവും പ്രവചിക്കാനാകുന്നതുമായവ ആക്കുന്നു. + +**ആധുനിക ഫോകസ് സൂചക മികച്ച പടികൾ:** + +```css +/* Enhanced focus styles that work across browsers */ +button:focus-visible { + outline: 2px solid #0066cc; + outline-offset: 2px; + box-shadow: 0 0 0 4px rgba(0, 102, 204, 0.25); +} + +/* Remove focus outline for mouse users, preserve for keyboard users */ +button:focus:not(:focus-visible) { + outline: none; +} + +/* Focus-within for complex components */ +.card:focus-within { + box-shadow: 0 0 0 3px rgba(74, 144, 164, 0.5); + border-color: #4A90A4; +} + +/* Ensure focus indicators meet contrast requirements */ +.custom-focus:focus-visible { + outline: 3px solid #ffffff; + outline-offset: 2px; + box-shadow: 0 0 0 6px #000000; +} +``` + +**ഫോക്സ് സൂചക ആവശ്യകതകൾ:** +- **കാണപ്പെടാം**: ചേർന്നിരിക്കുന്ന ഘടകങ്ങളുമായി കുറഞ്ഞത് 3:1 കോൺട്രാസ്റ്റ് ഉണ്ടായിരിക്കണം +- **വീതി**: മുഴുവൻ ഘടകത്തിനും കുറഞ്ഞത് 2px സവിശേഷത +- **ശാവകം**: ഫോകസ് മറ്റിടങ്ങളിലേക്ക് മാറുന്നതുവരെ കാണപ്പെടണം +- **വ്യത്യാസം**: മറ്റ് UI നിലകളിൽ നിന്ന് ദൃശ്യപരമായി വ്യത്യസ്തമാകണം + +> 💡 **ഡിസൈൻ ടിപ്പ്**: മികച്ച ഫോകസ് സൂചകങ്ങൾ ഫെൻമാർജിൻ, ബോക്സ്-ഷാഡോ, നിറമാറ്റങ്ങൾ എന്നിവ സംയോജിപ്പിച്ച് വ്യത്യസ്ത പശ്ചാത്തലങ്ങളിലും സാഹചര്യങ്ങളിലും തെളിവായി മാറുന്നു. + +✅ **ഫോകസ് സൂചക ഓഡിറ്റ് ചെയ്യുക**: നിങ്ങളുടെ വെബ്‌സൈറ്റിൽ ടാബ് ചെയ്ത് യഥാർത്ഥ ഫോകസ് സൂചകങ്ങൾ ഉള്ള ഘടകങ്ങൾ ശ്രദ്ധിക്കുക. ഉണ്ടെങ്കിൽ ഞാൻ കണ്ട് സുഖമല്ലാത്തവയോ ഇല്ലാതെയോ? + +### സെമാന്റിക് HTML: ആക്സസിബിലിറ്റിയുടെ അടിത്തറ + +സെമാന്റിക് HTML ഉപയോഗിച്ച് സഹായകരമായ സാങ്കേതികവിദ്യകൾക്ക് നിങ്ങളുടെ വെബ്‌സൈറ്റിന് GPS സംവിധാനം നൽകുന്നതുപോലെ ആണ്. ശരിയായ HTML ഘടകങ്ങൾ ഉപയോഗിക്കുന്നത് സ്ക്രീൻ റീഡറുകൾ, കീബോർഡുകൾ, മറ്റ് ഉപകരണങ്ങൾക്കു സഹായിക്കുന്ന ഒരു വിശദമായ മാർഗരേഖ നൽകുന്നത് പോലെയാണ്. + +എനിക്ക് വളരെ മനസ്സിലായത് അണുക്കളുള്ള, കൃത്യമായ ജീവനുള്ള ലൈബ്രറി സെമാന്റിക് HTMLയും, പുസ്തകങ്ങൾ അമർത്തിവെച്ചിട്ടുള്ള ഗോദാമും തമ്മിലുള്ള വ്യത്യാസം പോലെയാണ്. + +```mermaid +flowchart TD + A[🏠 HTML ഡോക്യൂമെന്റ്] --> B[📰 ഹെഡർ] + A --> C[🧭 നാവിഗേഷൻ] + A --> D[📄 മെയിൻ] + A --> E[📋 ഫൂട്ടർ] + + B --> B1[h1: സൈറ്റ് നാമം
ലോഗോ & ബ്രാൻഡിംഗ്] + C --> C1[ul: നാവിഗേഷൻ
പ്രധാന ലിങ്കുകൾ] + D --> D1[ആർട്ടിക്കിൾ: ഉള്ളടക്കം
വിഭാഗം: ഉപവിഭാഗങ്ങൾ] + D --> D2[അസൈഡ്: സൈഡ്‌ബാർ
സംബന്ധപ്പെട്ട ഉള്ളടക്കം] + E --> E1[നാവ്: ഫൂട്ടർ ലിങ്കുകൾ
ഹക്പ്രകാശന വിവരം] + + D1 --> D1a[h1: പേജ് ശീർഷകം
h2: പ്രധാന വിഭാഗങ്ങൾ
h3: ഉപവിഭാഗങ്ങൾ] + + style A fill:#e3f2fd + style B fill:#e8f5e8 + style C fill:#fff3e0 + style D fill:#f3e5f5 + style E fill:#e0f2f1 +``` +**ആക്സസിബിൾ പേജിന്റെ ഘടനയുടെ പണിതടങ്ങൾ:** + +```html + +
+

Your Site Name

+ +
+ +
+
+
+

Article Title

+

Published on

+
+ +
+

First Section

+

Content that relates to this section...

+
+ +
+

Second Section

+

More related content...

+
+
+ + +
+ + +``` + +**സെമാന്റിക് HTML ആക്സസിബിലിറ്റി എങ്ങനെ മാറ്റിമറിക്കുന്നു:** + +| സെമാന്റിക് ഘടകം | ഉദ്ദേശ്യം | സ്ക്രീൻ റീഡറിന് ലഭിക്കുന്ന ഗുണം | +|------------------|---------|----------------------| +| `
` | പേജ് അല്ലെങ്കിൽ സെക്ഷൻ ഹീഡർ | "ബാനർ ലാൻഡ്‌മാർക്ക്" - മുകളിൽ വേഗം നാവിഗേറ്റ് ചെയ്യുക | +| `