chore(i18n): sync translations with latest source changes (chunk 1/1, 9 changes)

pull/1690/head
localizeflow[bot] 3 weeks ago
parent 75cfc7a7f4
commit 8627ae06d5

@ -493,7 +493,7 @@
},
"AGENTS.md": {
"original_hash": "a362efd06d64d4134a0cfe8515a86d34",
"translation_date": "2025-10-03T11:14:41+00:00",
"translation_date": "2026-02-06T07:32:53+00:00",
"source_file": "AGENTS.md",
"language_code": "ar"
},
@ -516,8 +516,8 @@
"language_code": "ar"
},
"README.md": {
"original_hash": "490c83786552d7fab6390991517bef09",
"translation_date": "2026-01-29T17:38:01+00:00",
"original_hash": "805cd399757df19e886e86f0891a1374",
"translation_date": "2026-02-06T07:28:41+00:00",
"source_file": "README.md",
"language_code": "ar"
},

@ -2,27 +2,27 @@
## نظرة عامة على المشروع
هذا مستودع منهجي تعليمي لتعليم أساسيات تطوير الويب للمبتدئين. المنهج عبارة عن دورة شاملة لمدة 12 أسبوعًا تم تطويرها بواسطة Microsoft Cloud Advocates، ويشمل 24 درسًا عمليًا يغطي JavaScript وCSS وHTML.
هذا مستودع منهج تعليمي لتدريس أساسيات تطوير الويب للمبتدئين. المنهج هو دورة شاملة لمدة 12 أسبوعًا تم تطويرها بواسطة Microsoft Cloud Advocates، ويحتوي على 24 درسًا عمليًا تغطي JavaScript وCSS وHTML.
### المكونات الرئيسية
- **المحتوى التعليمي**: 24 درسًا منظمًا في وحدات قائمة على المشاريع
- **المشاريع العملية**: Terrarium، لعبة الكتابة، إضافة المتصفح، لعبة الفضاء، تطبيق البنك، محرر الأكواد، ومساعد الدردشة بالذكاء الاصطناعي
- **الاختبارات التفاعلية**: 48 اختبارًا يحتوي كل منها على 3 أسئلة (تقييمات قبل وبعد الدرس)
- **دعم متعدد اللغات**: ترجمات تلقائية لأكثر من 50 لغة عبر GitHub Actions
- **التقنيات**: HTML، CSS، JavaScript، Vue.js 3، Vite، Node.js، Express، Python (للمشاريع المتعلقة بالذكاء الاصطناعي)
- **مشاريع عملية**: Terrarium، لعبة الطباعة، امتداد المتصفح، لعبة الفضاء، تطبيق مصرفي، محرر كود، ومساعد دردشة بالذكاء الاصطناعي
- **اختبارات تفاعلية**: 48 اختبارًا يحتوي كل منها على 3 أسئلة (تقييم قبل وبعد الدرس)
- **دعم متعدد اللغات**: ترجمات آلية لأكثر من 50 لغة باستخدام GitHub Actions
- **التقنيات**: HTML، CSS، JavaScript، Vue.js 3، Vite، Node.js، Express، بايثون (لمشاريع الذكاء الاصطناعي)
### الهيكلية
- مستودع تعليمي مع هيكلية قائمة على الدروس
- يحتوي كل مجلد درس على README، أمثلة أكواد، وحلول
- مشاريع مستقلة في أدلة منفصلة (quiz-app، مشاريع الدروس المختلفة)
- مستودع تعليمي به هيكل قائم على الدروس
- يحتوي مجلد كل درس على ملف README، أمثلة أكواد، وحلول
- مشاريع مستقلة في مجلدات منفصلة (quiz-app، مشاريع الدروس المختلفة)
- نظام ترجمة باستخدام GitHub Actions (co-op-translator)
- الوثائق تُعرض عبر Docsify ومتاحة كملف PDF
- توثيق مقدم عبر Docsify ومتوافر كملف PDF
## أوامر الإعداد
هذا المستودع مخصص بشكل أساسي لاستهلاك المحتوى التعليمي. للعمل مع مشاريع محددة:
هذا المستودع مخصص أساسًا لاستهلاك المحتوى التعليمي. للعمل مع مشاريع محددة:
### إعداد المستودع الرئيسي
@ -31,32 +31,32 @@ git clone https://github.com/microsoft/Web-Dev-For-Beginners.git
cd Web-Dev-For-Beginners
```
### إعداد تطبيق الاختبارات (Vue 3 + Vite)
### إعداد تطبيق الاختبار (Vue 3 + Vite)
```bash
cd quiz-app
npm install
npm run dev # Start development server
npm run build # Build for production
npm run lint # Run ESLint
npm run dev # بدء خادم التطوير
npm run build # البناء للإنتاج
npm run lint # تشغيل ESLint
```
### إعداد واجهة برمجة تطبيقات البنك (Node.js + Express)
### API لمشروع البنك (Node.js + Express)
```bash
cd 7-bank-project/api
npm install
npm start # Start API server
npm run lint # Run ESLint
npm run format # Format with Prettier
npm start # بدء خادم API
npm run lint # تشغيل ESLint
npm run format # التنسيق باستخدام Prettier
```
### مشاريع إضافات المتصفح
### مشاريع امتدادات المتصفح
```bash
cd 5-browser-extension/solution
npm install
# Follow browser-specific extension loading instructions
# اتبع تعليمات تحميل الإضافات الخاصة بالمتصفح
```
### مشاريع لعبة الفضاء
@ -64,128 +64,128 @@ npm install
```bash
cd 6-space-game/solution
npm install
# Open index.html in browser or use Live Server
# افتح index.html في المتصفح أو استخدم الخادم المباشر
```
### مشروع الدردشة (Python Backend)
### مشروع الدردشة (بايثون Backend)
```bash
cd 9-chat-project/solution/backend/python
pip install openai
# Set GITHUB_TOKEN environment variable
# تعيين متغير البيئة GITHUB_TOKEN
python api.py
```
## سير العمل التطويري
### للمساهمين في المحتوى
### لأصحاب المحتوى
1. **قم بعمل Fork للمستودع** إلى حساب GitHub الخاص بك
2. **قم باستنساخ النسخة الخاصة بك** محليًا
3. **أنشئ فرعًا جديدًا** للتعديلات الخاصة بك
4. قم بإجراء تغييرات على محتوى الدروس أو أمثلة الأكواد
5. اختبر أي تغييرات في الأكواد في أدلة المشاريع ذات الصلة
6. قدم طلبات السحب وفقًا لإرشادات المساهمة
1. **افتح فورك للمستودع** على حسابك في GitHub
2. **انسخ فورك محليًا**
3. **أنشئ فرعًا جديدًا** للتغييرات الخاصة بك
4. أجرِ التعديلات على محتوى الدروس أو أمثلة الأكواد
5. اختبر أي تغييرات على الأكواد في مجلدات المشاريع ذات الصلة
6. قدّم طلبات سحب متبعًا إرشادات المساهمة
### للمتعلمين
1. قم بعمل Fork أو استنساخ المستودع
2. انتقل إلى أدلة الدروس بالتسلسل
1. افتح فورك أو انسخ المستودع
2. انتقل إلى مجلدات الدروس بالتسلسل
3. اقرأ ملفات README لكل درس
4. أكمل اختبارات ما قبل الدرس على https://ff-quizzes.netlify.app/web/
5. اعمل على أمثلة الأكواد في مجلدات الدروس
6. أكمل المهام والتحديات
7. قم بأداء اختبارات ما بعد الدرس
4. أكمل اختبارات ما قبل الدرس عبر https://ff-quizzes.netlify.app/web/
5. تدرب على أمثلة الأكواد في مجلدات الدروس
6. أكمل الواجبات والتحديات
7. اجتز اختبارات ما بعد الدرس
### التطوير المباشر
### التطوير الحي
- **الوثائق**: قم بتشغيل `docsify serve` في الجذر (المنفذ 3000)
- **تطبيق الاختبارات**: قم بتشغيل `npm run dev` في دليل quiz-app
- **المشاريع**: استخدم إضافة Live Server في VS Code لمشاريع HTML
- **مشاريع واجهة برمجة التطبيقات**: قم بتشغيل `npm start` في أدلة واجهة برمجة التطبيقات ذات الصلة
- **التوثيق**: شغّل `docsify serve` في الجذر (المنفذ 3000)
- **تطبيق الاختبار**: شغّل `npm run dev` في مجلد quiz-app
- **المشاريع**: استخدم امتداد VS Code Live Server لمشاريع HTML
- **مشاريع API**: شغّل `npm start` في مجلدات API المعنية
## تعليمات الاختبار
### اختبار تطبيق الاختبارات
### اختبار تطبيق الاختبار
```bash
cd quiz-app
npm run lint # Check for code style issues
npm run build # Verify build succeeds
npm run lint # تحقق من مشاكل نمط الشفرة
npm run build # تحقق من نجاح البناء
```
### اختبار واجهة برمجة تطبيقات البنك
### اختبار API البنك
```bash
cd 7-bank-project/api
npm run lint # Check for code style issues
node server.js # Verify server starts without errors
npm run lint # التحقق من مشكلات نمط الكود
node server.js # تحقق من بدء الخادم بدون أخطاء
```
### نهج الاختبار العام
### منهجية الاختبار العامة
- هذا مستودع تعليمي بدون اختبارات آلية شاملة
- يركز الاختبار اليدوي على:
- تشغيل أمثلة الأكواد بدون أخطاء
- عمل الروابط في الوثائق بشكل صحيح
- اكتمال بناء المشاريع بنجاح
- عمل الروابط في التوثيق بشكل صحيح
- إتمام بناء المشاريع بنجاح
- اتباع الأمثلة لأفضل الممارسات
### الفحوصات قبل التقديم
### فحوصات قبل التقديم
- قم بتشغيل `npm run lint` في الأدلة التي تحتوي على package.json
- تحقق من صحة روابط Markdown
- شغّل `npm run lint` في المجلدات التي تحتوي package.json
- تحقق من صلاحية روابط الماركداون
- اختبر أمثلة الأكواد في المتصفح أو Node.js
- تأكد من أن الترجمات تحافظ على الهيكل الصحيح
- تحقق من أن الترجمات تحافظ على الهيكل الصحيح
## إرشادات نمط الأكواد
## إرشادات أسلوب كتابة الكود
### JavaScript
### جافا سكريبت
- استخدم صيغة ES6+ الحديثة
- اتبع تكوينات ESLint القياسية المقدمة في المشاريع
- استخدم أسماء متغيرات ووظائف ذات معنى لتوضيح التعليم
- اتبع إعدادات ESLint القياسية المقدمة في المشاريع
- استخدم أسماء متغيرات ودوال ذات معنى لغرض تعليمي واضح
- أضف تعليقات تشرح المفاهيم للمتعلمين
- قم بالتنسيق باستخدام Prettier حيث تم تكوينه
- نسق باستخدام Prettier حيثما تم تكوينه
### HTML/CSS
- عناصر HTML5 دلالية
- عناصر HTML5 الدلالية
- مبادئ التصميم المتجاوب
- اتفاقيات تسمية واضحة للفئات
- تسميات صفوف واضحة
- تعليقات تشرح تقنيات CSS للمتعلمين
### Python
### بايثون
- إرشادات نمط PEP 8
- إرشادات أسلوب PEP 8
- أمثلة أكواد واضحة وتعليمية
- تلميحات النوع حيث تكون مفيدة للتعلم
- تلميحات النوع حيث تفيد في التعلم
### وثائق Markdown
### توثيق الماركداون
- تسلسل واضح للعناوين
- كتل الأكواد مع تحديد اللغة
- روابط إلى موارد إضافية
- لقطات وصور في أدلة `images/`
- نص بديل للصور لتحسين الوصول
- هيكل رؤوس واضح
- كتل أكواد مع تحديد اللغة
- روابط لمصادر إضافية
- لقطات وصور في مجلدات `images/`
- نصوص بديلة للصور لدعم الوصولية
### تنظيم الملفات
- الدروس مرقمة بالتسلسل (1-getting-started-lessons، 2-js-basics، إلخ)
- يحتوي كل مشروع على `solution/` وغالبًا `start/` أو `your-work/` أدلة
- الصور مخزنة في مجلدات `images/` الخاصة بالدروس
- الدروس مرقمة بالتسلسل (1-getting-started-lessons, 2-js-basics وما إلى ذلك)
- يحتوي كل مشروع على مجلد `solution/` وغالبًا `start/` أو `your-work/`
- الصور مخزنة في مجلدات `images/` خاصة بكل درس
- الترجمات في هيكل `translations/{language-code}/`
## البناء والنشر
### نشر تطبيق الاختبارات (Azure Static Web Apps)
### نشر تطبيق الاختبار (Azure Static Web Apps)
تم تكوين quiz-app للنشر عبر Azure Static Web Apps:
تم تكوين quiz-app للنشر على Azure Static Web Apps:
```bash
cd quiz-app
npm run build # Creates dist/ folder
# Deploys via GitHub Actions workflow on push to main
npm run build # ينشئ مجلد dist/
# ينشر عبر سير عمل GitHub Actions عند الدفع إلى الفرع الرئيسي
```
تكوين Azure Static Web Apps:
@ -193,90 +193,90 @@ npm run build # Creates dist/ folder
- **موقع الإخراج**: `dist`
- **سير العمل**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
### إنشاء وثائق PDF
### توليد ملف PDF للتوثيق
```bash
npm install # Install docsify-to-pdf
npm run convert # Generate PDF from docs
npm install # تثبيت docsify-to-pdf
npm run convert # توليد ملف PDF من المستندات
```
### وثائق Docsify
### توثيق Docsify
```bash
npm install -g docsify-cli # Install Docsify globally
docsify serve # Serve on localhost:3000
npm install -g docsify-cli # تثبيت Docsify على مستوى النظام
docsify serve # تشغيل على localhost:3000
```
### عمليات بناء المشاريع المحددة
### بناء مخصص لمشاريع محددة
قد يحتوي كل دليل مشروع على عملية بناء خاصة به:
- مشاريع Vue: `npm run build` لإنشاء حزم الإنتاج
- المشاريع الثابتة: لا توجد خطوة بناء، قم بخدمة الملفات مباشرة
قد يحتوي كل مجلد مشروع على عملية بناء خاصة به:
- مشاريع Vue: `npm run build` لإنشاء الحزم الإنتاجية
- مشاريع ثابتة: لا توجد خطوة بناء، قدم الملفات مباشرة
## إرشادات طلب السحب
## إرشادات طلبات السحب
### تنسيق العنوان
### صيغة العنوان
استخدم عناوين واضحة وواصفة تشير إلى منطقة التغيير:
- `[Quiz-app] إضافة اختبار جديد للدرس X`
- `[Lesson-3] إصلاح خطأ في مشروع terrarium`
- `[Translation] إضافة ترجمة إسبانية للدرس 5`
استخدم عناوين واضحة تصف مجال التغيير:
- `[Quiz-app] أضف اختبار جديد للدرس X`
- `[Lesson-3] إصلاح خطأ مطبعي في مشروع terrarium`
- `[Translation] أضف الترجمة الإسبانية للدرس 5`
- `[Docs] تحديث تعليمات الإعداد`
### الفحوصات المطلوبة
قبل تقديم طلب السحب:
1. **جودة الأكواد**:
- قم بتشغيل `npm run lint` في أدلة المشاريع المتأثرة
- أصلح جميع أخطاء وتحذيرات التحقق
1. **جودة الكود**:
- شغّل `npm run lint` في مجلدات المشاريع المتأثرة
- أصلح كل الأخطاء والتنبيهات في التدقيق
2. **التحقق من البناء**:
- قم بتشغيل `npm run build` إذا كان ذلك ممكنًا
- شغّل `npm run build` إذا انطبق
- تأكد من عدم وجود أخطاء في البناء
3. **التحقق من الروابط**:
- اختبر جميع روابط Markdown
- اختبر كل روابط الماركداون
- تحقق من عمل مراجع الصور
4. **مراجعة المحتوى**:
- قم بمراجعة الأخطاء الإملائية والنحوية
- تأكد من صحة أمثلة الأكواد وتعليمها
- تحقق من أن الترجمات تحافظ على المعنى الأصلي
- تدقيق إملائي ونحوي
- تأكد من صحة الأمثلة التعليمية
- تحقق من دقة الترجمات وملائمتها الثقافية
### متطلبات المساهمة
- الموافقة على Microsoft CLA (التحقق الآلي عند أول طلب سحب)
- اتباع [مدونة قواعد السلوك المفتوحة المصدر من Microsoft](https://opensource.microsoft.com/codeofconduct/)
- راجع [CONTRIBUTING.md](./CONTRIBUTING.md) للحصول على إرشادات مفصلة
- أشر إلى أرقام القضايا في وصف طلب السحب إذا كان ذلك ممكنًا
- الموافقة على اتفاقية المساهمين لمايكروسوفت (فحص آلي في أول طلب سحب)
- الالتزام بمدونة السلوك المفتوحة لمايكروسوفت [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
- راجع [CONTRIBUTING.md](./CONTRIBUTING.md) للإرشادات التفصيلية
- أدرج أرقام القضايا ذات الصلة في وصف طلب السحب إن وجدت
### عملية المراجعة
- يتم مراجعة طلبات السحب بواسطة المشرفين والمجتمع
- يتم إعطاء الأولوية للوضوح التعليمي
- يجب أن تتبع أمثلة الأكواد أفضل الممارسات الحالية
- يتم مراجعة الترجمات للتأكد من دقتها وملاءمتها الثقافية
- يراجع المساهمون الرئيسيّون والمجتمع طلبات السحب
- تُعطى الأولوية للوضوح التعليمي
- يجب أن تتبع الأمثلة أفضل الممارسات الحديثة
- تُراجع الترجمات من حيث الدقة والملائمة الثقافية
## نظام الترجمة
### الترجمة التلقائية
### الترجمة الآلية
- يستخدم GitHub Actions مع سير عمل co-op-translator
- يترجم تلقائيًا إلى أكثر من 50 لغة
- الملفات المصدر في الأدلة الرئيسية
- الملفات المترجمة في هيكل `translations/{language-code}/`
- يترجم إلى أكثر من 50 لغة تلقائيًا
- الملفات المصدرية في المجلدات الرئيسية
- الملفات المترجمة في مجلدات `translations/{language-code}/`
### إضافة تحسينات الترجمة اليدوية
### إضافة تحسينات يدوية للترجمة
1. حدد الملف في `translations/{language-code}/`
2. قم بإجراء تحسينات مع الحفاظ على الهيكل
3. تأكد من أن أمثلة الأكواد تظل وظيفية
4. اختبر أي محتوى اختبارات محلي
1. موقع الملف في `translations/{language-code}/`
2. قم بالتحسينات مع الحفاظ على الهيكل
3. تأكد من استمرار عمل أمثلة الأكواد
4. اختبر أي محتوى اختبار محلي
### بيانات الترجمة الوصفية
### بيانات وصفية للترجمة
تتضمن الملفات المترجمة رأس بيانات وصفية:
الملفات المترجمة تتضمن رأس بيانات وصفية:
```markdown
<!--
CO_OP_TRANSLATOR_METADATA:
@ -289,118 +289,120 @@ CO_OP_TRANSLATOR_METADATA:
-->
```
## تصحيح الأخطاء واستكشاف المشكلات
## التصحيح واستكشاف الأخطاء
### المشكلات الشائعة
### المشاكل الشائعة
**فشل تشغيل تطبيق الاختبارات**:
- تحقق من إصدار Node.js (يوصى بـ v14+)
- احذف `node_modules` و`package-lock.json`، ثم قم بتشغيل `npm install` مرة أخرى
- تحقق من تعارض المنافذ (الافتراضي: يستخدم Vite المنفذ 5173)
**تعذر بدء تطبيق الاختبار**:
- تحقق من إصدار Node.js (يوصى v14+)
- احذف `node_modules` و`package-lock.json` ثم شغّل `npm install` مجددًا
- تحقق من تعارض المنافذ (Vite الافتراضي يستخدم المنفذ 5173)
**فشل تشغيل خادم واجهة برمجة التطبيقات**:
- تحقق من أن إصدار Node.js يلبي الحد الأدنى (node >=10)
- تحقق مما إذا كان المنفذ قيد الاستخدام بالفعل
**خادم API لا يبدأ**:
- تحقق من أن إصدار Node.js >=10
- تحقق ما إذا كان المنفذ قيد الاستخدام بالفعل
- تأكد من تثبيت جميع التبعيات باستخدام `npm install`
**فشل تحميل إضافة المتصفح**:
- تحقق من أن manifest.json تم تنسيقه بشكل صحيح
- تحقق من أخطاء وحدة التحكم في المتصفح
- اتبع تعليمات تثبيت الإضافة الخاصة بالمتصفح
**امتداد المتصفح لا يتم تحميله**:
- تحقق من أن manifest.json منسق بشكل صحيح
- تحقق من أخطاء في وحدة تحكم المتصفح
- اتبع تعليمات تثبيت الامتداد الخاصة بالمتصفح
**مشكلات مشروع الدردشة Python**:
**مشاكل مشروع الدردشة بايثون**:
- تأكد من تثبيت حزمة OpenAI: `pip install openai`
- تحقق من تعيين متغير البيئة GITHUB_TOKEN
- تحقق من أذونات الوصول إلى نماذج GitHub
**Docsify لا يعرض الوثائق**:
**Docsify لا يقدم التوثيق**:
- قم بتثبيت docsify-cli عالميًا: `npm install -g docsify-cli`
- قم بتشغيله من دليل الجذر للمستودع
- شغّل من مجلد الجذر للمستودع
- تحقق من وجود `docs/_sidebar.md`
### نصائح بيئة التطوير
- استخدم VS Code مع إضافة Live Server لمشاريع HTML
- قم بتثبيت إضافات ESLint وPrettier للتنسيق المتسق
- استخدم أدوات DevTools في المتصفح لتصحيح أخطاء JavaScript
- لمشاريع Vue، قم بتثبيت إضافة Vue DevTools للمتصفح
- استخدم VS Code مع امتداد Live Server لمشاريع HTML
- ثبّت امتدادات ESLint وPrettier للنسق المتسق
- استخدم أدوات المطور في المتصفح لتصحيح جافا سكريبت
- لمشاريع Vue، ثبت امتداد Vue DevTools الخاص بالمتصفح
### اعتبارات الأداء
- العدد الكبير من الملفات المترجمة (50+ لغة) يعني أن النسخ الكامل كبير
- استخدم النسخ الضحل إذا كنت تعمل فقط على المحتوى: `git clone --depth 1`
- استبعد الترجمات من عمليات البحث عند العمل على المحتوى باللغة الإنجليزية
- قد تكون عمليات البناء بطيئة في التشغيل الأول (npm install، Vite build)
- عدد كبير من الملفات المترجمة (50+ لغة) يعني أن الاستنساخ الكامل كبير الحجم
- استخدم استنساخ ضحل إذا كنت تعمل فقط على المحتوى: `git clone --depth 1`
- استبعد الترجمات من عمليات البحث عند العمل على المحتوى الإنجليزي
- قد تكون عمليات البناء بطيئة عند التشغيل الأول (npm install، بناء Vite)
## اعتبارات الأمان
### متغيرات البيئة
- يجب ألا يتم الالتزام بمفاتيح واجهة برمجة التطبيقات إلى المستودع
- استخدم ملفات `.env`وجودة بالفعل في `.gitignore`)
- قم بتوثيق متغيرات البيئة المطلوبة في ملفات README الخاصة بالمشاريع
- يجب ألا تُرفع مفاتيح API إلى المستودع
- استخدم ملفات `.env`ستبعدة في `.gitignore`)
- وثّق متغيرات البيئة المطلوبة في README المشاريع
### مشاريع Python
### مشاريع بايثون
- استخدم البيئات الافتراضية: `python -m venv venv`
- استخدم بيئات افتراضية: `python -m venv venv`
- حافظ على تحديث التبعيات
- يجب أن تحتوي رموز الوصول إلى GitHub على الحد الأدنى من الأذونات المطلوبة
- يجب أن تحمل رموز GitHub أذونات دنيا مطلوبة
### الوصول إلى نماذج GitHub
- مطلوب رموز الوصول الشخصي (PAT) لنماذج GitHub
- تم طلب رموز وصول شخصية (PAT) لنماذج GitHub
- يجب تخزين الرموز كمتغيرات بيئة
- لا تقم أبدًا بالالتزام بالرموز أو بيانات الاعتماد
- لا تحتفظ بالرموز أو بيانات الاعتماد في المستودع
## ملاحظات إضافية
### الجمهور المستهدف
- المبتدئين تمامًا في تطوير الويب
- الطلاب والمتعلمين ذاتيًا
- المعلمون الذين يستخدمون المنهج في الفصول الدراسية
- المحتوى مصمم ليكون سهل الوصول وبناء المهارات تدريجيًا
- مبتدئين تمامًا في تطوير الويب
- طلاب ومتعلّمين ذاتيين
- معلمين يستخدمون المنهج في الفصول الدراسية
- المحتوى مصمم للوصولية وبناء المهارات تدريجيًا
### فلسفة التعليم
### الفلسفة التعليمية
- نهج التعلم القائم على المشاريع
- فحوصات المعرفة المتكررة (اختبارات)
- تمارين البرمجة العملية
- فحوصات متكررة للمعرفة (اختبارات)
- تمارين عملية في البرمجة
- أمثلة تطبيقية من العالم الحقيقي
- التركيز على الأساسيات قبل الإطارات
- التركيز على الأساسيات قبل الأُطُر
### صيانة المستودع
- مجتمع نشط من المتعلمين والمساهمين
- تحديثات منتظمة للتبعيات والمحتوى
- يتم مراقبة القضايا والمناقشات بواسطة المشرفين
- تحديثات الترجمة تلقائية عبر GitHub Actions
- تحديثات دورية للتبعيات والمحتوى
- مراقبة القضايا والنقاشات من قبل المشرفين
- تحديث الترجمات بشكل آلي عبر GitHub Actions
### الموارد ذات الصلة
### الموارد المتعلقة
- [وحدات Microsoft Learn](https://docs.microsoft.com/learn/)
- [موارد مركز الطلاب](https://docs.microsoft.com/learn/student-hub/)
- [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) موصى به للمتعلمين
- دورات إضافية: الذكاء الاصطناعي التوليدي، علم البيانات، التعلم الآلي، مناهج إنترنت الأشياء متاحة
- دورات إضافية: الذكاء الاصطناعي التوليدي، علوم البيانات، التعلم الآلي، منهج الإنترنت للأشياء متاحة
### العمل مع مشاريع محددة
للحصول على تعليمات مفصلة حول المشاريع الفردية، راجع ملفات README في:
- `quiz-app/README.md` - تطبيق الاختبارات Vue 3
- `7-bank-project/README.md` - تطبيق البنك مع المصادقة
- `5-browser-extension/README.md` - تطوير إضافات المتصفح
- `6-space-game/README.md` - تطوير الألعاب القائمة على Canvas
- `9-chat-project/README.md` - مشروع مساعد الدردشة بالذكاء الاصطناعي
- `quiz-app/README.md` - تطبيق اختبار Vue 3
- `7-bank-project/README.md` - تطبيق مصرفي مع المصادقة
- `5-browser-extension/README.md` - تطوير امتداد المتصفح
- `6-space-game/README.md` - تطوير لعبة باستخدام Canvas
- `9-chat-project/README.md` - مشروع مساعد دردشة بالذكاء الاصطناعي
### هيكلية Monorepo
### هيكلية المونوربو
على الرغم من أنه ليس مستودعًا تقليديًا متعدد المشاريع، يحتوي هذا المستودع على مشاريع مستقلة متعددة:
- كل درس مكتفٍ ذاتيًا
بينما ليس مستودع مونوربو تقليدي، يحتوي هذا المستودع على عدة مشاريع مستقلة:
- كل درس مستقل بذاته
- المشاريع لا تشترك في التبعيات
- العمل على المشاريع الفردية دون التأثير على الآخرين
- استنساخ المستودع بالكامل لتجربة المنهج الكامل
- اعمل على مشاريع فردية دون التأثير على الآخرين
- انسخ المستودع كاملاً للحصول على كامل تجربة المنهج
---
**إخلاء المسؤولية**:
تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الموثوق. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**تنويه**:
تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر المعتمد. للمعلومات الهامة، يُنصح بالاعتماد على ترجمة بشرية محترفة. نحن غير مسؤولين عن أي سوء فهم أو تفسير ناتج عن استخدام هذه الترجمة.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,236 +1,238 @@
[![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](https://img.shields.io/github/license/microsoft/Web-Dev-For-Beginners.svg)](https://github.com/microsoft/Web-Dev-For-Beginners/blob/master/LICENSE)
[![مساهمو GitHub](https://img.shields.io/github/contributors/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/graphs/contributors/)
[![قضايا GitHub](https://img.shields.io/github/issues/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/issues/)
[![طلبات السحب في GitHub](https://img.shields.io/github/issues-pr/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/pulls/)
[![PRs مرحب بها](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/)
[![مشاهدو GitHub](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](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](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)
# تطوير الويب للمبتدئين - منهج دراسي
تعلّم أساسيات تطوير الويب من خلال دورتنا الشاملة التي تستمر 12 أسبوعًا من قبل دعاة السحابة في مايكروسوفت. تغوص كل من دروس الـ24 في جافاسكريبت وCSS وHTML عبر مشاريع عملية مثل التيراريوم، امتدادات المتصفح، وألعاب الفضاء. شارك مع الاختبارات، النقاشات، والواجبات العملية. حسّن مهاراتك وزد من احتفاظك بالمعرفة من خلال منهجنا التعليمي القائم على المشاريع الفعالة. ابدأ رحلتك في الترميز اليوم!
تعلم أساسيات تطوير الويب مع دورتنا الشاملة التي تستمر 12 أسبوعًا من خلال Microsoft Cloud Advocates. كل من الدروس الـ24 تغوص في JavaScript وCSS وHTML من خلال مشاريع تطبيقية مثل التيراريوم، إضافات المتصفح، وألعاب الفضاء. شارك في الاختبارات والمناقشات والمهام العملية. عزز مهاراتك وحسن من احتفاظك بالمعلومات من خلال منهجنا الفعّال المبني على المشاريع. ابدأ رحلة الترميز الخاصة بك اليوم!
انضم إلى مجتمع Azure AI Foundry على ديسكورد
انضم إلى مجتمع Azure AI Foundry على Discord
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
اتبع هذه الخطوات للبدء باستخدام هذه الموارد:
1. **انشئ نسخة من الريبو (Fork)**: انقر على [![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. **انسخ الريبو محليًا (Clone)**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
3. [**انضم إلى Azure AI Foundry على ديسكورد والتق بخبراء ومطورين زملاء**](https://discord.com/invite/ByRwuEEgH4)
1. **افتح نسخة من المستودع**: انقر على [![التفرعات في GitHub](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 Action (آلي ودائمًا محدث)
#### مدعوم عبر GitHub Action (مؤتمت وجديد دائمًا)
<!-- CO-OP TRANSLATOR LANGUAGES TABLE START -->
[العربية](./README.md) | [البنغالية](../bn/README.md) | [البلغارية](../bg/README.md) | [البورمية (ميانمار)](../my/README.md) | [الصينية (المبسطة)](../zh-CN/README.md) | [الصينية (التقليدية، هونغ كونغ)](../zh-HK/README.md) | [الصينية (التقليدية، ماكاو)](../zh-MO/README.md) | [الصينية (التقليدية، تايوان)](../zh-TW/README.md) | [الكرواتية](../hr/README.md) | [التشيكية](../cs/README.md) | [الدانماركية](../da/README.md) | [الهولندية](../nl/README.md) | [الإستونية](../et/README.md) | [الفنلندية](../fi/README.md) | [الفرنسية](../fr/README.md) | [الألمانية](../de/README.md) | [اليونانية](../el/README.md) | [العبرية](../he/README.md) | [الهندية](../hi/README.md) | [الهنغارية](../hu/README.md) | [الإندونيسية](../id/README.md) | [الإيطالية](../it/README.md) | [اليابانية](../ja/README.md) | [الكانادا](../kn/README.md) | [الكورية](../ko/README.md) | [الليتوانية](../lt/README.md) | [الماليزية](../ms/README.md) | [المالايالامية](../ml/README.md) | [الماراثية](../mr/README.md) | [النيبالية](../ne/README.md) | [نيجيري بيدجن](../pcm/README.md) | [النرويجية](../no/README.md) | [الفارسية (اللغة)](../fa/README.md) | [البولندية](../pl/README.md) | [البرتغالية (البرازيل)](../pt-BR/README.md) | [البرتغالية (البرتغال)](../pt-PT/README.md) | [اللبنغالية (غورموخي)](../pa/README.md) | [الرومانية](../ro/README.md) | [الروسية](../ru/README.md) | [الصربية (السيريلية)](../sr/README.md) | [السلوفاكية](../sk/README.md) | [السلوفينية](../sl/README.md) | [الإسبانية](../es/README.md) | [السواحيلية](../sw/README.md) | [السويدية](../sv/README.md) | [التاغالوغ (الفلبينية)](../tl/README.md) | [التاميلية](../ta/README.md) | [التلغو](../te/README.md) | [التايلاندية](../th/README.md) | [التركية](../tr/README.md) | [الأوكرانية](../uk/README.md) | [الأردية](../ur/README.md) | [الفيتنامية](../vi/README.md)
[العربية](./README.md) | [البنغالية](../bn/README.md) | [البلغارية](../bg/README.md) | [البورمية (ميانمار)](../my/README.md) | [الصينية (المبسط)](../zh-CN/README.md) | [الصينية (التقليدية، هونغ كونغ)](../zh-HK/README.md) | [الصينية (التقليدية، ماكاو)](../zh-MO/README.md) | [الصينية (التقليدية، تايوان)](../zh-TW/README.md) | [الكرواتية](../hr/README.md) | [التشيكية](../cs/README.md) | [الدنماركية](../da/README.md) | [الهولندية](../nl/README.md) | [الإستونية](../et/README.md) | [الفنلندية](../fi/README.md) | [الفرنسية](../fr/README.md) | [الألمانية](../de/README.md) | [اليونانية](../el/README.md) | [العبرية](../he/README.md) | [الهندية](../hi/README.md) | [الهنغارية](../hu/README.md) | [الإندونيسية](../id/README.md) | [الإيطالية](../it/README.md) | [اليابانية](../ja/README.md) | [الكنادا](../kn/README.md) | [الكورية](../ko/README.md) | [الليتوانية](../lt/README.md) | [الماليزية](../ms/README.md) | [المالايالامية](../ml/README.md) | [الماراثية](../mr/README.md) | [النيبالية](../ne/README.md) | [النيجيرية بيدجن](../pcm/README.md) | [النرويجية](../no/README.md) | [الفارسية (اللغة الفارسية)](../fa/README.md) | [البولندية](../pl/README.md) | [البرتغالية (البرازيل)](../pt-BR/README.md) | [البرتغالية (البرتغال)](../pt-PT/README.md) | [البنجابية (الغورمكي)](../pa/README.md) | [الرومانية](../ro/README.md) | [الروسية](../ru/README.md) | [الصربية (السيريلية)](../sr/README.md) | [السلوفاكية](../sk/README.md) | [السلوفينية](../sl/README.md) | [الإسبانية](../es/README.md) | [السواحيلية](../sw/README.md) | [السويدية](../sv/README.md) | [التاغالوغ (الفلبينية)](../tl/README.md) | [التاميلية](../ta/README.md) | [التيلوغو](../te/README.md) | [التايلاندية](../th/README.md) | [التركية](../tr/README.md) | [الأوكرانية](../uk/README.md) | [الأردية](../ur/README.md) | [الفيتنامية](../vi/README.md)
> **تفضل النسخ محليًا؟**
> **تفضل النسخ المحلي؟**
> يحتوي هذا الريبو على أكثر من 50 ترجمة لغة مما يزيد بشكل كبير من حجم التنزيل. للنسخ بدون الترجمات، استخدم sparse checkout:
> يتضمن هذا المستودع أكثر من 50 ترجمة لغوية مما يزيد بشكل ملحوظ من حجم التنزيل. للنسخ بدون الترجمات، استخدم sparse checkout:
> ```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'
> ```
> هذا يمنحك كل ما تحتاجه لإكمال الدورة مع تنزيل أسرع بكثير.
> هذا يمنحك كل ما تحتاجه لإكمال الدورة مع تحميل أسرع بكثير.
<!-- CO-OP TRANSLATOR LANGUAGES TABLE END -->
**إذا كنت ترغب في دعم لغات ترجمة إضافية، فهي مدرجة [هنا](https://github.com/Azure/co-op-translator/blob/main/getting_started/supported-languages.md)**
**إذا كنت ترغب في دعم لغات ترجمة إضافية فهي مذكورة [هنا](https://github.com/Azure/co-op-translator/blob/main/getting_started/supported-languages.md)**
[![افتح في 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)
[![فتح في 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) حيث ستجد موارد للمبتدئين، حزم طلاب، وحتى طرق للحصول على قسيمة شهادة مجانية. هذه هي الصفحة التي تريد وضع إشارة مرجعية عليها والتفقّد من وقت لآخر حيث نقوم بتحديث المحتوى شهريًا.
زر [**صفحة مركز الطلاب**](https://docs.microsoft.com/learn/student-hub/?WT.mc_id=academic-77807-sagibbon) حيث ستجد موارد للمبتدئين، وحزم طلابية وطرق للحصول على قسيمة شهادة مجانية. هذه هي الصفحة التي تود حفظها والاطلاع عليها من وقت لآخر حيث نقوم بتغيير المحتوى شهريًا.
### 📣 إعلان - تحديات جديدة لوضع GitHub Copilot Agent لإكمالها!
### 📣 إعلان - تحديات جديدة لوضع GitHub Copilot Agent لتكملها!
تمت إضافة تحدي جديد، ابحث عن "تحدي GitHub Copilot Agent 🚀" في معظم الفصول. هذا تحدي جديد لإكماله باستخدام GitHub Copilot ووضع Agent. إذا لم تستخدم وضع Agent من قبل، فهو قادر ليس فقط على توليد النصوص ولكن أيضًا على إنشاء وتعديل الملفات، تشغيل الأوامر والمزيد.
تمت إضافة تحدي جديد، ابحث عن "تحدي GitHub Copilot Agent 🚀" في معظم الفصول. هذا تحدي جديد لك لإكماله باستخدام GitHub Copilot ووضع العميل Agent mode. إذا لم تستخدم وضع العميل سابقًا فهو قادر ليس فقط على توليد النصوص بل يمكنه أيضًا إنشاء وتعديل الملفات، تنفيذ الأوامر وأكثر.
### 📣 إعلان - _مشروع جديد للبناء باستخدام الذكاء الاصطناعي التوليدي_
تمت إضافة مشروع جديد لمساعد الذكاء الاصطناعي، اطلع عليه [المشروع](./9-chat-project/README.md)
تمت إضافة مشروع مساعد AI جديد، تحقق منه [المشروع](./9-chat-project/README.md)
### 📣 إعلان - _منهج جديد_ حول الذكاء الاصطناعي التوليدي لجافاسكريبت تم إصداره للتو
### 📣 إعلان - _منهج دراسي جديد_ حول الذكاء الاصطناعي التوليدي لـ JavaScript صدر للتو
لا تفوت منهجنا الجديد في الذكاء الاصطناعي التوليدي!
لا تفوت منهج الذكاء الاصطناعي التوليدي الجديد لدينا!
زر [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) للبدء!
![Background](../../translated_images/ar/background.148a8d43afde5730.webp)
![خلفية](../../translated_images/ar/background.148a8d43afde5730.webp)
- دروس تغطي كل شيء من الأساسيات إلى RAG.
- تفاعل مع شخصيات تاريخية باستخدام GenAI وتطبيق الرفيق الخاص بنا.
- سرد قصصي ممتع وجذاب، ستسافر عبر الزمن!
- تفاعل مع شخصيات تاريخية باستخدام GenAI وتطبيقنا المرافق.
- سرد ممتع وجذاب، ستسافر عبر الزمن!
![character](../../translated_images/ar/character.5c0dd8e067ffd693.webp)
![الشخصية](../../translated_images/ar/character.5c0dd8e067ffd693.webp)
تحتوي كل درس على مهمة لإكمالها، اختبار معرفة وتحدي لتوجيهك في تعلم موضوعات مثل:
- التوجيه وتصميم التوجيه
- تطوير تطبيقات النصوص والصور
كل درس يتضمن مهمة لإنجازها، اختبار معرفة وتحدي يرشدك في تعلم مواضيع مثل:
- الكتابة البرمجية والهندسة البرمجية للتعليمات
- توليد تطبيقات نص وصورة
- تطبيقات البحث
زر [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)!
> **أيها المعلمون**، لقد [تضمننا بعض الاقتراحات](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://aka.ms/student-page/?WT.mc_id=academic-77807-sagibbon)**، لكل درس، ابدأ باختبار قبل المحاضرة وتابع قراءة مادة المحاضرة، إكمال الأنشطة المختلفة وتحقق من فهمك مع اختبار بعد المحاضرة.
لتحسين تجربتك التعليمية، تواصل مع زملائك للعمل على المشاريع معًا! يتم التشجيع على النقاشات في [منتدى النقاش الخاص بنا](https://github.com/microsoft/Web-Dev-For-Beginners/discussions) حيث يتوفر فريق المشرفين للإجابة على أسئلتك.
لتعزيز تجربة تعلمك، تواصل مع زملائك للعمل على المشاريع معًا! التشجيع على النقاش موجود في [منتدى النقاش](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) لمواد دراسية إضافية.
لتعزيز تعليمك، نوصي بشدة باستكشاف [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).
هذا المنهج يحتوي على بيئة تطوير جاهزة للاستخدام! عند البدء يمكنك اختيار تشغيل المنهج في [Codespace](https://github.com/features/codespaces/) (_بيئة تعتمد على المتصفح، لا حاجة للتثبيت_)، أو محليًا على جهاز الكمبيوتر باستخدام محرر نصوص مثل [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon).
#### أنشئ مستودعك الخاص
لكي تتمكن من حفظ عملك بسهولة، يُنصح بإنشاء نسخة خاصة بك من هذا المستودع. يمكنك فعل ذلك بالنقر على زر **Use this template** في أعلى الصفحة. سيؤدي ذلك إلى إنشاء مستودع جديد في حساب GitHub الخاص بك مع نسخة من المنهج الدراسي.
لكي تحفظ عملك بسهولة، يُنصح بإنشاء نسخة خاصة بك من هذا المستودع. يمكنك فعل ذلك بالضغط على زر **استخدام هذا القالب** أعلى الصفحة. سيؤدي ذلك إلى إنشاء مستودع جديد في حساب GitHub الخاص بك بنسخة من المنهج.
اتبع هذه الخطوات:
1. **انشئ نسخة من المستودع (Fork)**: انقر على زر "Fork" في أعلى يمين هذه الصفحة.
2. **انسخ المستودع محليًا (Clone)**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
1. **افتح نسخة من المستودع**: انقر على زر "Fork" في الزاوية العليا اليمنى من هذه الصفحة.
2. **انسخ المستودع محليًا**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
#### تشغيل المنهج الدراسي في Codespace
#### تشغيل المنهج في Codespace
في نسخة المستودع الخاصة بك التي أنشأتها، انقر على زر **Code** واختر **Open with Codespaces**. سيؤدي ذلك إلى إنشاء Codespace جديد للعمل فيه.
في نسختك من هذا المستودع التي أنشأتها، انقر على زر **Code** واختر **Open with Codespaces**. سيؤدي هذا إلى إنشاء Codespace جديد للعمل فيه.
![Codespace](../../translated_images/ar/createcodespace.0238bbf4d7a8d955.webp)
#### تشغيل المنهج الدراسي محليًا على جهاز الكمبيوتر
#### تشغيل المنهج محليًا على جهاز الكمبيوتر الخاص بك
لتشغيل هذا المنهج محليًا على جهاز الكمبيوتر الخاص بك، ستحتاج إلى محرر نصوص، متصفح وأداة سطر أوامر. ستكون الدرس الأول، [مقدمة في لغات البرمجة وأدوات التجارة](../../1-getting-started-lessons/1-intro-to-programming-languages)، دليلك عبر خيارات مختلفة لكل من هذه الأدوات لتختار الأنسب لك.
لتشغيل هذا المنهج محليًا على جهاز الكمبيوتر الخاص بك، ستحتاج إلى محرر نصوص، متصفح، وأداة سطر أوامر. سيأخذك درسنا الأول، [مقدمة عن لغات البرمجة وأدوات العمل](../../1-getting-started-lessons/1-intro-to-programming-languages)، عبر الخيارات المختلفة لكل من هذه الأدوات لاختيار الأنسب لك.
توصيتنا هي استخدام [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) كمحرر لديك، والذي يتضمن أيضًا [طرفية مدمجة](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).
توصيتنا هي استخدام محرر [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon)، الذي يحتوي أيضًا على [محطة طرفية](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:
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) وشغّل الأمر التالي، مع استبدال `<your-repository-url>` بالرابط الذي نسخته للتو:
ثم افتح [الطرفية](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) وقم بتشغيل الأمر التالي، مع استبدال `<your-repository-url>` بالرابط الذي نسخته للتو:
```bash
git clone <your-repository-url>
```
2. افتح المجلد في فيجوال ستوديو كود. يمكنك فعل ذلك بالنقر على **File** > **Open Folder** واختيار المجلد الذي قمت باستنساخه.
2. افتح المجلد في Visual Studio Code. يمكنك القيام بذلك بالنقر على **ملف** > **فتح مجلد** واختيار المجلد الذي قمت باستنساخه للتو.
> ملحقات فيجوال ستوديو كود الموصى بها:
> الإضافات الموصى بها لـ Visual Studio Code:
>
> * [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer&WT.mc_id=academic-77807-sagibbon) - لمعاينة صفحات HTML داخل فيجوال ستوديو كود
> * [Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot&WT.mc_id=academic-77807-sagibbon) - لمساعدتك على كتابة الكود بشكل أسرع
> * [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer&WT.mc_id=academic-77807-sagibbon) - لمعاينة صفحات HTML داخل Visual Studio Code
> * [Copilot](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/) يمكن تشغيل تطبيق الاختبار محليًا أو نشره على Azure؛ اتبع التعليمات في مجلد `quiz-app`.
> **ملاحظة حول الاختبارات:** تحتوي كل الاختبارات على 48 اختبارًا إجماليًا، كل اختبار يتضمن ثلاثة أسئلة. وهي متوفرة [هنا](https://ff-quizzes.netlify.app/web/) ويمكن تشغيل تطبيق الاختبار محلياً أو نشره على Azure؛ اتبع التعليمات في مجلد `quiz-app`.
## 🗃️ الدروس
| | اسم المشروع | المفاهيم التي يُدرّسها | أهداف التعلم | الدرس المرتبط | المؤلف |
| :-: | :------------------------------------------------------: | :--------------------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------: | :---------------------: |
| 01 | البدء | مقدمة في البرمجة وأدوات العمل | تعلّم أساسيات معظم لغات البرمجة والبرمجيات التي تساعد المطورين المحترفين في أداء عملهم | [مقدمة في لغات البرمجة وأدوات العمل](./1-getting-started-lessons/1-intro-to-programming-languages/README.md) | Jasmine |
| 02 | البدء | أساسيات GitHub، يتضمن العمل الجماعي | كيفية استخدام GitHub في مشروعك، وكيفية التعاون مع الآخرين على قاعدة كود | [مقدمة في GitHub](./1-getting-started-lessons/2-github-basics/README.md) | Floor |
| 03 | البدء | إمكانية الوصول | تعلّم أساسيات إمكانية الوصول على الويب | [أساسيات إمكانية الوصول](./1-getting-started-lessons/3-accessibility/README.md) | Christopher |
| 04 | أساسيات JS | أنواع بيانات جافاسكريبت | أساسيات أنواع البيانات في جافاسكريبت | [أنواع البيانات](./2-js-basics/1-data-types/README.md) | Jasmine |
| 05 | أساسيات JS | الدوال والأساليب | تعلّم حول الدوال والأساليب لإدارة تدفق منطق التطبيق | [الدوال والأساليب](./2-js-basics/2-functions-methods/README.md) | Jasmine و Christopher |
| 06 | أساسيات JS | اتخاذ القرارات باستخدام جافاسكريبت | تعلّم كيفية إنشاء شروط في الكود باستخدام طرق اتخاذ القرار | [اتخاذ القرارات](./2-js-basics/3-making-decisions/README.md) | Jasmine |
| 07 | أساسيات JS | المصفوفات والحلقات | العمل مع البيانات باستخدام المصفوفات والحلقات في جافاسكريبت | [المصفوفات والحلقات](./2-js-basics/4-arrays-loops/README.md) | Jasmine |
| 08 | [Terrarium](./3-terrarium/solution/README.md) | HTML في التطبيق | بناء HTML لإنشاء ترباريوم إلكتروني مع التركيز على بناء التخطيط | [مقدمة في HTML](./3-terrarium/1-intro-to-html/README.md) | Jen |
| 09 | [Terrarium](./3-terrarium/solution/README.md) | CSS في التطبيق | بناء CSS لتصميم الترباريوم الإلكتروني مع التركيز على أساسيات CSS بما في ذلك جعل الصفحة متجاوبة | [مقدمة في CSS](./3-terrarium/2-intro-to-css/README.md) | Jen |
| 10 | [Terrarium](./3-terrarium/solution/README.md) | إغلاق جافاسكريبت، التلاعب بـ DOM | بناء جافاسكريبت لجعل الترباريوم يعمل كواجهة سحب وإفلات، مع التركيز على الإغلاق والتلاعب بـ DOM | [إغلاق جافاسكريبت والتلاعب بـ DOM](./3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen |
| 11 | [لعبة الطباعة](./4-typing-game/solution/README.md) | بناء لعبة طباعة | تعلّم كيفية استخدام أحداث لوحة المفاتيح لتشغيل منطق تطبيق جافاسكريبت | [البرمجة الحدثية](./4-typing-game/typing-game/README.md) | Christopher |
| 12 | [إضافة المتصفح الخضراء](./5-browser-extension/solution/README.md) | العمل مع المتصفحات | تعلّم كيف تعمل المتصفحات، تاريخها، وكيفية إعداد أول عناصر إضافة لمتصفح | [حول المتصفحات](./5-browser-extension/1-about-browsers/README.md) | Jen |
| 13 | [إضافة المتصفح الخضراء](./5-browser-extension/solution/README.md) | بناء نموذج، الاستدعاء API وتخزين المتغيرات في التخزين المحلي | بناء عناصر جافاسكريبت لإضافة المتصفح لاستدعاء API باستخدام المتغيرات المخزنة محليًا | [APIs، النماذج والتخزين المحلي](./5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen |
| 14 | [إضافة المتصفح الخضراء](./5-browser-extension/solution/README.md) | العمليات الخلفية في المتصفح، أداء الويب | استخدام العمليات الخلفية للمتصفح لإدارة أيقونة الإضافة؛ تعلم حول أداء الويب وبعض التحسينات لرفع الكفاءة | [المهام الخلفية والأداء](./5-browser-extension/3-background-tasks-and-performance/README.md) | Jen |
| 15 | [لعبة الفضاء](./6-space-game/solution/README.md) | تطوير ألعاب متقدم مع جافاسكريبت | تعلّم حول الوراثة باستخدام الكلاسات والتكوين ونمط النشر/الاشتراك، تمهيدًا لبناء لعبة | [مقدمة في تطوير الألعاب المتقدم](./6-space-game/1-introduction/README.md) | Chris |
| 16 | [لعبة الفضاء](./6-space-game/solution/README.md) | الرسم على اللوحة | تعلّم حول API اللوحة (Canvas API)، المستخدم للرسم على الشاشة | [الرسم على اللوحة](./6-space-game/2-drawing-to-canvas/README.md) | Chris |
| 17 | [لعبة الفضاء](./6-space-game/solution/README.md) | تحريك العناصر حول الشاشة | اكتشف كيف يمكنك تحريك العناصر باستخدام الإحداثيات الديكارتية وواجهة برمجة تطبيقات اللوحة | [تحريك العناصر](./6-space-game/3-moving-elements-around/README.md) | Chris |
| 18 | [لعبة الفضاء](./6-space-game/solution/README.md) | كشف التصادم | جعل العناصر تتصادم وتتفاعل مع بعضها باستخدام ضغطات المفاتيح وتوفير دالة تبريد لضمان أداء اللعبة | [كشف التصادم](./6-space-game/4-collision-detection/README.md) | Chris |
| 19 | [لعبة الفضاء](./6-space-game/solution/README.md) | حفظ النقاط | إجراء حسابات رياضية بناءً على حالة اللعبة وأدائها | [حفظ النقاط](./6-space-game/5-keeping-score/README.md) | Chris |
| 20 | [لعبة الفضاء](./6-space-game/solution/README.md) | إنهاء وإعادة بدء اللعبة | تعلّم حول إنهاء وإعادة تشغيل اللعبة، بما في ذلك تنظيف الموارد وإعادة تعيين المتغيرات | [شرط النهاية](./6-space-game/6-end-condition/README.md) | Chris |
| 21 | [تطبيق البنك](./7-bank-project/solution/README.md) | قوالب HTML والمسارات في تطبيق ويب | تعلّم كيفية إنشاء الهيكل الأساسي لموقع ويب متعدد الصفحات باستخدام التوجيه والقوالب في HTML | [قوالب HTML والمسارات](./7-bank-project/1-template-route/README.md) | Yohan |
| 22 | [تطبيق البنك](./7-bank-project/solution/README.md) | بناء نموذج تسجيل دخول وتسجيل | تعلّم حول بناء النماذج والتعامل مع إجراءات التحقق من صحة البيانات | [النماذج](./7-bank-project/2-forms/README.md) | Yohan |
| 23 | [تطبيق البنك](./7-bank-project/solution/README.md) | طرق جلب واستخدام البيانات | كيف تتدفق البيانات داخل وخارج التطبيق، كيفية جلبها وتخزينها والتخلص منها | [البيانات](./7-bank-project/3-data/README.md) | Yohan |
| 24 | [تطبيق البنك](./7-bank-project/solution/README.md) | مفاهيم إدارة الحالة | تعلّم كيف يحتفظ تطبيقك بالحالة وكيفية إدارتها برمجيًا | [إدارة الحالة](./7-bank-project/4-state-management/README.md) | Yohan |
| 25 | [كود المتصفح/في سكود](../../8-code-editor) | العمل مع في سكود | تعلم كيفية استخدام محرر الكود | [استخدام محرر كود في سكود](./8-code-editor/1-using-a-code-editor/README.md) | Chris |
| 26 | [مساعدات الذكاء الاصطناعي](./9-chat-project/README.md) | العمل مع الذكاء الاصطناعي | تعلم كيفية بناء مساعد ذكي خاص بك | [مشروع مساعد الذكاء الاصطناعي](./9-chat-project/README.md) | Chris |
## 🏫 البيداغوجيا
تم تصميم منهجنا التعليمي مع مبدئين بيداغوجيين رئيسيين في الاعتبار:
| | اسم المشروع | المفاهيم التي تُدرس | الأهداف التعليمية | الدرس المرتبط | المؤلف |
| :-: | :------------------------------------------------------: | :--------------------------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------: | :---------------------: |
| 01 | البدء | مقدمة في البرمجة وأدوات العمل | تعلم الأسس الأساسية لمعظم لغات البرمجة حول البرمجة وأدوات البرمجيات التي تساعد المطورين المحترفين في أداء عملهم | [مقدمة في لغات البرمجة وأدوات العمل](./1-getting-started-lessons/1-intro-to-programming-languages/README.md) | Jasmine |
| 02 | البدء | أساسيات GitHub، يشمل العمل مع فريق | كيفية استخدام GitHub في مشروعك، وكيفية التعاون مع الآخرين على قاعدة الشفرة | [مقدمة في GitHub](./1-getting-started-lessons/2-github-basics/README.md) | Floor |
| 03 | البدء | إمكانية الوصول | تعلم أساسيات إمكانية الوصول على الويب | [أساسيات إمكانية الوصول](./1-getting-started-lessons/3-accessibility/README.md) | Christopher |
| 04 | أساسيات JS | أنواع بيانات جافاسكريبت | أساسيات أنواع بيانات جافاسكريبت | [أنواع البيانات](./2-js-basics/1-data-types/README.md) | Jasmine |
| 05 | أساسيات JS | الدوال والطرق | التعرف على الدوال والطرق لإدارة منطق التطبيق | [الدوال والطرق](./2-js-basics/2-functions-methods/README.md) | Jasmine و Christopher |
| 06 | أساسيات JS | اتخاذ القرارات بلغة JS | تعلم كيفية إنشاء شروط في الشفرة باستخدام طرق اتخاذ القرار | [اتخاذ القرارات](./2-js-basics/3-making-decisions/README.md) | Jasmine |
| 07 | أساسيات JS | المصفوفات والحلقات | العمل مع البيانات باستخدام المصفوفات والحلقات في جافاسكريبت | [المصفوفات والحلقات](./2-js-basics/4-arrays-loops/README.md) | Jasmine |
| 08 | [Terrarium](./3-terrarium/solution/README.md) | HTML في التطبيق | بناء HTML لإنشاء تيراريوم عبر الإنترنت، مع التركيز على بناء التخطيط | [مقدمة في HTML](./3-terrarium/1-intro-to-html/README.md) | Jen |
| 09 | [Terrarium](./3-terrarium/solution/README.md) | CSS في التطبيق | بناء CSS لتصميم التيراريوم عبر الإنترنت، مع التركيز على أساسيات CSS بما في ذلك جعل الصفحة متجاوبة | [مقدمة في CSS](./3-terrarium/2-intro-to-css/README.md) | Jen |
| 10 | [Terrarium](./3-terrarium/solution/README.md) | إغلاق جافاسكريبت، التلاعب بـ DOM | بناء جافاسكريبت لجعل التيراريوم يعمل كواجهة سحب وإفلات، مع التركيز على الإغلاق والتلاعب بـ DOM | [إغلاق جافاسكريبت، التلاعب بـ DOM](./3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen |
| 11 | [لعبة الطباعة](./4-typing-game/solution/README.md) | بناء لعبة طباعة | تعلم كيفية استخدام أحداث لوحة المفاتيح لتحريك منطق تطبيق جافاسكريبت | [البرمجة القائمة على الأحداث](./4-typing-game/typing-game/README.md) | Christopher |
| 12 | [ملحق المتصفح الأخضر](./5-browser-extension/solution/README.md) | العمل مع المتصفحات | تعلم كيف تعمل المتصفحات وتاريخها، وكيفية إعداد أول عناصر امتداد المتصفح | [حول المتصفحات](./5-browser-extension/1-about-browsers/README.md) | Jen |
| 13 | [ملحق المتصفح الأخضر](./5-browser-extension/solution/README.md) | بناء نموذج، استدعاء API وتخزين المتغيرات في التخزين المحلي | بناء عناصر جافاسكريبت لملحق المتصفح الخاص بك لاستدعاء API باستخدام المتغيرات المخزنة في التخزين المحلي | [APIs، النماذج والتخزين المحلي](./5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen |
| 14 | [ملحق المتصفح الأخضر](./5-browser-extension/solution/README.md) | العمليات الخلفية في المتصفح، أداء الويب | استخدام العمليات الخلفية للمتصفح لإدارة أيقونة الامتداد؛ تعلم حول أداء الويب وبعض التحسينات لجعله أفضل | [المهام الخلفية والأداء](./5-browser-extension/3-background-tasks-and-performance/README.md) | Jen |
| 15 | [لعبة الفضاء](./6-space-game/solution/README.md) | تطوير ألعاب أكثر تقدماً بلغة جافاسكريبت | تعلم حول الوراثة باستخدام الفئات والتركيب ونمط النشر والاشتراك، استعدادًا لبناء لعبة | [مقدمة في تطوير الألعاب المتقدمة](./6-space-game/1-introduction/README.md) | Chris |
| 16 | [لعبة الفضاء](./6-space-game/solution/README.md) | الرسم على اللوحة | تعلم حول Canvas API، المستخدم لرسم العناصر على الشاشة | [الرسم على اللوحة](./6-space-game/2-drawing-to-canvas/README.md) | Chris |
| 17 | [لعبة الفضاء](./6-space-game/solution/README.md) | تحريك العناصر على الشاشة | اكتشف كيف يمكن للعناصر أن تكتسب حركة باستخدام الإحداثيات الديكارتية وCanvas API | [تحريك العناصر حول الشاشة](./6-space-game/3-moving-elements-around/README.md) | Chris |
| 18 | [لعبة الفضاء](./6-space-game/solution/README.md) | اكتشاف التصادم | جعل العناصر تصطدم وتتفاعل مع بعضها باستخدام ضغطات المفاتيح وتوفير وظيفة تبريد لضمان أداء اللعبة | [اكتشاف التصادم](./6-space-game/4-collision-detection/README.md) | Chris |
| 19 | [لعبة الفضاء](./6-space-game/solution/README.md) | تسجيل النقاط | إجراء عمليات حسابية بناءً على حالة وأداء اللعبة | [تسجيل النقاط](./6-space-game/5-keeping-score/README.md) | Chris |
| 20 | [لعبة الفضاء](./6-space-game/solution/README.md) | إنهاء اللعبة وإعادة تشغيلها | تعلم حول إنهاء اللعبة وإعادة تشغيلها، بما في ذلك تنظيف الأصول وإعادة تعيين قيم المتغيرات | [شرط النهاية](./6-space-game/6-end-condition/README.md) | Chris |
| 21 | [تطبيق بنكي](./7-bank-project/solution/README.md) | قوالب HTML والمسارات في تطبيق ويب | تعلم كيفية إنشاء الهيكل الأساسي لموقع متعدد الصفحات باستخدام التوجيه وقوالب HTML | [قوالب HTML والمسارات](./7-bank-project/1-template-route/README.md) | Yohan |
| 22 | [تطبيق بنكي](./7-bank-project/solution/README.md) | بناء نموذج تسجيل دخول وتسجيل | تعلم بناء النماذج ومعالجة قواعد التحقق | [النماذج](./7-bank-project/2-forms/README.md) | Yohan |
| 23 | [تطبيق بنكي](./7-bank-project/solution/README.md) | طرق جلب واستخدام البيانات | كيف تتدفق البيانات داخل وخارج تطبيقك، وكيفية جلبها وتخزينها والتخلص منها | [البيانات](./7-bank-project/3-data/README.md) | Yohan |
| 24 | [تطبيق بنكي](./7-bank-project/solution/README.md) | مفاهيم إدارة الحالة | تعرف على كيفية احتفاظ تطبيقك بالحالة وكيفية إدارتها برمجياً | [إدارة الحالة](./7-bank-project/4-state-management/README.md) | Yohan |
| 25 | [الكود المتصفح / VScode](../../8-code-editor) | العمل مع VScode | تعلم كيفية استخدام محرر الأكواد| [استخدام محرر كود VScode](./8-code-editor/1-using-a-code-editor/README.md) | Chris |
| 26 | [مساعدات الذكاء الاصطناعي](./9-chat-project/README.md) | العمل مع الذكاء الاصطناعي | تعلم كيفية بناء مساعد ذكاء اصطناعي خاص بك | [مشروع مساعد الذكاء الاصطناعي](./9-chat-project/README.md) | Chris |
## 🏫 المنهجية التعليمية
تم تصميم منهجنا باثنين من المبادئ التربوية الرئيسية في الاعتبار:
* التعلم القائم على المشاريع
* الاختبارات المتكررة
البرنامج يُعلّم أساسيات جافاسكريبت، HTML، وCSS، بالإضافة إلى أحدث الأدوات والتقنيات المستخدمة من قبل مطوري الويب في الوقت الحالي. سيحصل الطلاب على فرصة لاكتساب خبرة عملية من خلال بناء لعبة الطباعة، ترباريوم افتراضي، إضافة متصفح صديقة للبيئة، لعبة على نمط غزو الفضاء، وتطبيق بنكي للأعمال. بنهاية السلسلة، سيكون لدى الطلاب فهم قوي لتطوير الويب.
البرنامج يعلم أساسيات جافاسكريبت وHTML وCSS، بالإضافة إلى أحدث الأدوات والتقنيات التي يستخدمها مطورو الويب اليوم. سيحصل الطلاب على فرصة لتطوير خبرة عملية من خلال بناء لعبة طباعة، وتيراريوم افتراضي، وامتداد متصفح صديق للبيئة، ولعبة بأسلوب غزو الفضاء، وتطبيق بنكي للأعمال التجارية. بنهاية السلسلة، سيكون لدى الطلاب فهم قوي لتنمية الويب.
> 🎓 يمكنك أخذ الدروس الأولى في هذا المنهج كـ [مسار تعلم](https://docs.microsoft.com/learn/paths/web-development-101/?WT.mc_id=academic-77807-sagibbon) على Microsoft Learn!
> 🎓 يمكنك أخذ الدروس القليلة الأولى في هذا المنهج كـ [مسار تعلم](https://docs.microsoft.com/learn/paths/web-development-101/?WT.mc_id=academic-77807-sagibbon) على Microsoft Learn!
بضمان توافق المحتوى مع المشاريع، أصبح التعلم أكثر تشويقًا للطلاب وسيتم تعزيز ترسيخ المفاهيم. كتبنا أيضًا العديد من الدروس التمهيدية في أساسيات جافاسكريبت لتعريف المفاهيم، بالإضافة إلى فيديو من مجموعة فيديوهات "[سلسلة المبتدئين إلى: جافاسكريبت](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)"، بعض مؤلفيها ساهموا في هذا المنهج.
بضمان توافق المحتوى مع المشاريع، يصبح التعلم أكثر جاذبية للطلاب ويتم تعزيز الاحتفاظ بالمفاهيم. كتبنا أيضًا عدة دروس تمهيدية بأساسيات جافاسكريبت لتقديم المفاهيم، مرفقة بفيديو من سلسلة "[سلسلة المبتدئين إلى: جافاسكريبت](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)" من مقاطع الفيديو التعليمية، التي ساهم بعض مؤلفيها في هذا المنهج.
بالإضافة لذلك، اختبار منخفض الضغط قبل الدرس يُحدد نية الطالب في تعلم الموضوع، في حين يضمن اختبار ثانٍ بعد الدرس المزيد من الترسيخ. صُمّم هذا المنهج ليكون مرنًا وممتعًا ويمكن أخذه ككل أو أجزاء. تبدأ المشاريع صغيرة وتزداد تعقيدًا بحلول نهاية دورة 12 أسبوعًا.
بالإضافة إلى ذلك، يحدد اختبار منخفض المخاطر قبل الصف نية الطالب نحو تعلم موضوع ما، بينما يضمن اختبار ثانٍ بعد الصف مزيدًا من الاحتفاظ. تم تصميم هذا المنهج ليكون مرنًا وممتعًا ويمكن أخذه ككل أو جزء منه. تبدأ المشاريع صغيرة وتزداد تعقيدًا مع اقتراب نهاية دورة الـ 12 أسبوعًا.
بينما تجنبنا عمدًا تقديم أُطر عمل جافاسكريبت للتركيز على المهارات الأساسية المطلوبة كمطور ويب قبل تبني إطار عمل، فإن الخطوة التالية الجيدة لإكمال هذا المنهج ستكون تعلم Node.js عبر مجموعة أخرى من الفيديوهات: "[سلسلة المبتدئين إلى: Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)".
بينما تجنبنا عمدًا إدخال أُطُر جافاسكريبت للتركيز على المهارات الأساسية اللازمة كمطور ويب قبل اعتماد إطار عمل، فإن الخطوة التالية الجيدة لاستكمال هذا المنهج ستكون تعلم Node.js عبر مجموعة أخرى من الفيديوهات: "[سلسلة المبتدئين إلى: Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)".
> قم بزيارة [مدونة السلوك](CODE_OF_CONDUCT.md) و[إرشادات المساهمة](CONTRIBUTING.md). نرحب بملاحظاتك البناءة!
> قم بزيارة [مدونة قواعد السلوك](CODE_OF_CONDUCT.md) و[المساهمة](CONTRIBUTING.md). نرحب بتعليقاتك البناءة!
## 🧭 الوصول دون اتصال
يمكنك تشغيل هذه الوثائق دون اتصال باستخدام [Docsify](https://docsify.js.org/#/). انسخ هذا المستودع، [ثبت Docsify](https://docsify.js.org/#/quickstart) على جهازك المحلي، ثم في المجلد الجذر لهذا المستودع، اكتب `docsify serve`. سيتم تقديم الموقع على المنفذ 3000 على جهازك المحلي: `localhost:3000`.
يمكنك تشغيل هذه الوثائق دون اتصال باستخدام [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).
يمكن العثور على ملف PDF لجميع الدروس [هنا](https://microsoft.github.io/Web-Dev-For-Beginners/pdf/readme.pdf).
## 🎒 دورات أخرى
فريقنا يُنتج دورات أخرى! اطلع على:
فريقنا ينتج دورات أخرى! اطلع على:
<!-- CO-OP TRANSLATOR OTHER COURSES START -->
### لانغتشين
### LangChain
[![LangChain4j للمبتدئين](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 للمبتدئين](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)
[![LangChain للمبتدئين](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin)
---
### أزور / إيدج / MCP / الوكلاء
### Azure / Edge / MCP / وكلاء
[![AZD للمبتدئين](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 للمبتدئين](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)
[![الذكاء الاصطناعي Edge للمبتدئين](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 للمبتدئين](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 للمبتدئين](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)
[![وكلاء الذكاء الاصطناعي للمبتدئين](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)
---
### سلسلة الذكاء الاصطناعي التوليدي
[![الذكاء الاصطناعي التوليدي للمبتدئين](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)
[![الذكاء الاصطناعي التوليدي (.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)
[![الذكاء الاصطناعي التوليدي (جافا)](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)
[![الذكاء الاصطناعي التوليدي (جافا سكريبت)](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)
[![الذكاء الاصطناعي التوليدي (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)
[![الذكاء الاصطناعي التوليدي (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)
---
### التعلم الأساسي
[![تعلم الآلة للمبتدئين](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)
[![التعلم الآلي للمبتدئين](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)
[![علوم البيانات للمبتدئين](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)
[![الذكاء الاصطناعي للمبتدئين](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)
[![الأمن السيبراني للمبتدئين](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)
@ -240,29 +242,29 @@
---
### سلسلة كوبايلوت
[![كوبايلوت للبرمجة الزوجية بالذكاء الاصطناعي](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)
[![كوبايلوت لـ 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)
[![مغامرة كوبايلوت](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)
### سلسلة Copilot
[![Copilot للبرمجة الزوجية للذكاء الاصطناعي](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 لـ 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](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)
<!-- CO-OP TRANSLATOR OTHER COURSES END -->
## الحصول على المساعدة
إذا علقت أو كان لديك أي أسئلة حول بناء تطبيقات الذكاء الاصطناعي. انضم إلى المتعلمين الآخرين والمطورين ذوي الخبرة في مناقشات حول MCP. إنها مجتمع داعم حيث الأسئلة مرحب بها والمعرفة تُشارك بحرية.
إذا علقت أو كان لديك أي أسئلة حول بناء تطبيقات الذكاء الاصطناعي. انضم إلى المتعلمين الآخرين والمطورين ذوي الخبرة في مناقشات حول 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)
[![منتدى مطوري Microsoft Foundry](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) لمزيد من المعلومات.
هذا المستودع مرخص بموجب ترخيص MIT. انظر ملف [LICENSE](../../LICENSE) لمزيد من المعلومات.
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**إخلاء المسؤولية**:
تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى جاهدين لتحقيق الدقة، يُرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر المعتمد. يُنصح باللجوء إلى الترجمة البشرية المهنية للمعلومات الحساسة. نحن غير مسؤولين عن أي سوء فهم أو تفسير ناجم عن استخدام هذه الترجمة.
**تنويه**:
تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لضمان الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للمعلومات الحيوية، ينصح بالترجمة المهنية البشرية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة قد تنتج عن استخدام هذه الترجمة.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -493,7 +493,7 @@
},
"AGENTS.md": {
"original_hash": "a362efd06d64d4134a0cfe8515a86d34",
"translation_date": "2025-10-03T11:15:19+00:00",
"translation_date": "2026-02-06T07:33:59+00:00",
"source_file": "AGENTS.md",
"language_code": "fa"
},
@ -516,8 +516,8 @@
"language_code": "fa"
},
"README.md": {
"original_hash": "490c83786552d7fab6390991517bef09",
"translation_date": "2026-01-29T17:40:06+00:00",
"original_hash": "805cd399757df19e886e86f0891a1374",
"translation_date": "2026-02-06T07:30:32+00:00",
"source_file": "README.md",
"language_code": "fa"
},

@ -2,25 +2,25 @@
## نمای کلی پروژه
این مخزن یک برنامه آموزشی برای آموزش اصول توسعه وب به مبتدیان است. این برنامه آموزشی یک دوره جامع ۱۲ هفته‌ای است که توسط Microsoft Cloud Advocates توسعه داده شده و شامل ۲۴ درس عملی در زمینه جاوااسکریپت، CSS و HTML می‌باشد.
این یک مخزن آموزشی برای آموزش اصول توسعه وب به مبتدیان است. این برنامهٔ آموزشی یک دوره جامع ۱۲ هفته‌ای است که توسط مدافعان ابر مایکروسافت توسعه یافته و شامل ۲۴ درس عملی دربارهٔ JavaScript، CSS و HTML می‌باشد.
### اجزای کلیدی
- **محتوای آموزشی**: ۲۴ درس ساختارمند که به صورت ماژول‌های مبتنی بر پروژه سازماندهی شده‌اند
- **پروژه‌های عملی**: Terrarium، بازی تایپ، افزونه مرورگر، بازی فضایی، اپلیکیشن بانکی، ویرایشگر کد، و دستیار چت هوش مصنوعی
- **آزمون‌های تعاملی**: ۴۸ آزمون با ۳ سوال در هر آزمون (ارزیابی‌های قبل و بعد از درس)
- **پشتیبانی چندزبانه**: ترجمه‌های خودکار به بیش از ۵۰ زبان از طریق GitHub Actions
- **فناوری‌ها**: HTML، CSS، جاوااسکریپت، Vue.js 3، Vite، Node.js، Express، Python (برای پروژه‌های هوش مصنوعی)
- **محتوای آموزشی**: ۲۴ درس ساختاریافته سازماندهی شده در ماژول‌های مبتنی بر پروژه
- **پروژه‌های عملی**: تراریوم، بازی تایپ، افزونه مرورگر، بازی فضایی، برنامه بانکی، ویرایشگر کد و دستیار چت هوش مصنوعی
- **آزمون‌های تعاملی**: ۴۸ آزمون با ۳ سوال برای هر کدام (ارزیابی پیش و پس از درس)
- **پشتیبانی چندزبانه**: ترجمه‌های خودکار برای بیش از ۵۰ زبان توسط GitHub Actions
- **فناوری‌ها**: HTML، CSS، JavaScript، Vue.js 3، Vite، Node.js، Express، Python (برای پروژه‌های هوش مصنوعی)
### معماری
- مخزن آموزشی با ساختار مبتنی بر درس
- هر پوشه درس شامل README، مثال‌های کد و راه‌حل‌ها است
- پروژه‌های مستقل در دایرکتوری‌های جداگانه (quiz-app، پروژه‌های مختلف درس)
- سیستم ترجمه با استفاده از GitHub Actions (co-op-translator)
- مستندات از طریق Docsify ارائه شده و به صورت PDF در دسترس است
- مخزن آموزشی با ساختار مبتنی بر درس
- هر پوشه درس شامل README، نمونه کد و راه‌حل‌ها
- پروژه‌های مستقل در دایرکتوری‌های جداگانه (quiz-app، پروژه‌های مختلف دروس)
- سیستم ترجمه با استفاده از GitHub Actions (co-op-translator)
- مستندات ارائه شده از طریق Docsify و در دسترس به صورت PDF
## دستورات راه‌اندازی
## دستورهای راه‌اندازی
این مخزن عمدتاً برای مصرف محتوای آموزشی است. برای کار با پروژه‌های خاص:
@ -31,24 +31,24 @@ git clone https://github.com/microsoft/Web-Dev-For-Beginners.git
cd Web-Dev-For-Beginners
```
### راه‌اندازی اپلیکیشن آزمون (Vue 3 + Vite)
### راه‌اندازی برنامه آزمون (Vue 3 + Vite)
```bash
cd quiz-app
npm install
npm run dev # Start development server
npm run build # Build for production
npm run lint # Run ESLint
npm run dev # شروع سرور توسعه
npm run build # ساخت برای تولید
npm run lint # اجرای ESLint
```
### API پروژه بانکی (Node.js + Express)
### API پروژه بانک (Node.js + Express)
```bash
cd 7-bank-project/api
npm install
npm start # Start API server
npm run lint # Run ESLint
npm run format # Format with Prettier
npm start # راه‌اندازی سرور API
npm run lint # اجرای ESLint
npm run format # قالب‌بندی با Prettier
```
### پروژه‌های افزونه مرورگر
@ -56,7 +56,7 @@ npm run format # Format with Prettier
```bash
cd 5-browser-extension/solution
npm install
# Follow browser-specific extension loading instructions
# دستورالعمل‌های بارگذاری افزونه‌های خاص مرورگر را دنبال کنید
```
### پروژه‌های بازی فضایی
@ -64,219 +64,219 @@ npm install
```bash
cd 6-space-game/solution
npm install
# Open index.html in browser or use Live Server
# index.html را در مرورگر باز کنید یا از Live Server استفاده کنید
```
### پروژه چت (پشتیبان Python)
### پروژه چت (بک‌اند پایتون)
```bash
cd 9-chat-project/solution/backend/python
pip install openai
# Set GITHUB_TOKEN environment variable
# تنظیم متغیر محیطی GITHUB_TOKEN
python api.py
```
## جریان کاری توسعه
## گردش کار توسعه
### برای مشارکت‌کنندگان محتوا
1. **مخزن را فورک کنید** به حساب GitHub خود
2. **فورک خود را به صورت محلی کلون کنید**
3. **یک شاخه جدید ایجاد کنید** برای تغییرات خود
4. تغییرات را در محتوای درس یا مثال‌های کد اعمال کنید
5. تغییرات کد را در دایرکتوری‌های پروژه مربوطه آزمایش کنید
6. درخواست‌های pull را مطابق با دستورالعمل‌های مشارکت ارسال کنید
۱. **مخزن را فورک کنید** به حساب GitHub خود
۲. **فورک خود را کلون کنید** به صورت محلی
۳. **یک شاخه جدید ایجاد کنید** برای تغییرات خود
۴. تغییرات را در محتوای درس یا نمونه‌های کد اعمال کنید
۵. تغییرات کد را در دایرکتوری‌های پروژه مربوطه تست کنید
۶. درخواست‌های پول را مطابق دستورالعمل مشارکت ارسال کنید
### برای یادگیرندگان
1. مخزن را فورک یا کلون کنید
2. به ترتیب به دایرکتوری‌های درس بروید
3. فایل‌های README هر درس را بخوانید
4. آزمون‌های قبل از درس را در https://ff-quizzes.netlify.app/web/ تکمیل کنید
5. مثال‌های کد را در پوشه‌های درس انجام دهید
6. تکالیف و چالش‌ها را کامل کنید
7. آزمون‌های بعد از درس را انجام دهید
۱. مخزن را فورک یا کلون کنید
۲. به ترتیب به دایرکتوری‌های درس مراجعه کنید
۳. فایل‌های README هر درس را مطالعه کنید
۴. آزمون‌های پیش‌درس را در https://ff-quizzes.netlify.app/web/ تکمیل کنید
۵. نمونه‌های کد را در فولدرهای درس کار کنید
۶. تمرین‌ها و چالش‌ها را کامل کنید
۷. آزمون‌های پس‌درس را انجام دهید
### توسعه زنده
- **مستندات**: دستور `docsify serve` را در ریشه اجرا کنید (پورت ۳۰۰۰)
- **اپلیکیشن آزمون**: دستور `npm run dev` را در دایرکتوری quiz-app اجرا کنید
- **پروژه‌ها**: از افزونه Live Server در VS Code برای پروژه‌های HTML استفاده کنید
- **پروژه‌های API**: دستور `npm start` را در دایرکتوری‌های API مربوطه اجرا کنید
- **مستندات**: اجرای دستور `docsify serve` در ریشه (پورت ۳۰۰۰)
- **برنامه آزمون**: اجرای `npm run dev` در دایرکتوری quiz-app
- **پروژه‌ها**: استفاده از افزونه Live Server در VS Code برای پروژه‌های HTML
- **پروژه‌های API**: اجرای `npm start` در دایرکتوری‌های مربوطه
## دستورالعمل‌های آزمایش
## دستورالعمل‌های تست
### آزمایش اپلیکیشن آزمون
### تست برنامه آزمون
```bash
cd quiz-app
npm run lint # Check for code style issues
npm run build # Verify build succeeds
npm run lint # بررسی مشکلات سبک کد
npm run build # اطمینان از موفقیت ساخت
```
### آزمایش API بانکی
### تست API بانک
```bash
cd 7-bank-project/api
npm run lint # Check for code style issues
node server.js # Verify server starts without errors
npm run lint # بررسی مشکلات سبک کد
node server.js # تأیید شروع سرور بدون خطاها
```
### رویکرد کلی آزمایش
### رویکرد کلی تست
- این مخزن آموزشی فاقد آزمایش‌های خودکار جامع است
- آزمایش دستی بر موارد زیر تمرکز دارد:
- اجرای مثال‌های کد بدون خطا
- کارکرد صحیح لینک‌های مستندات
- تکمیل موفقیت‌آمیز ساخت پروژه‌ها
- رعایت بهترین شیوه‌ها در مثال‌ها
- این یک مخزن آموزشی بدون تست‌های خودکار جامع است
- تست دستی روی موارد زیر تمرکز دارد:
- اجرای بدون خطای نمونه‌های کد
- عملکرد صحیح لینک‌ها در مستندات
- ساخت موفق پروژه‌ها
- پیروی نمونه‌ها از بهترین شیوه‌ها
### بررسی‌های قبل از ارسال
### بررسی‌های پیش از ارسال
- دستور `npm run lint` را در دایرکتوری‌هایی که package.json دارند اجرا کنید
- اعتبار لینک‌های markdown را بررسی کنید
- مثال‌های کد را در مرورگر یا Node.js آزمایش کنید
- اطمینان حاصل کنید که ترجمه‌ها ساختار مناسب را حفظ کرده‌اند
- اجرای `npm run lint` در دایرکتوری‌های حاوی package.json
- اطمینان از اعتبار لینک‌های مارک‌داون
- تست نمونه‌های کد در مرورگر یا Node.js
- بررسی حفظ ساختار مناسب در ترجمه‌ها
## دستورالعمل‌های سبک کدنویسی
## راهنمایی‌های سبک کد
### جاوااسکریپت
### JavaScript
- استفاده از سینتکس مدرن ES6+
- پیروی از تنظیمات استاندارد ESLint ارائه شده در پروژه‌ها
- استفاده از نام‌های متغیر و تابع معنادار برای وضوح آموزشی
- افزودن توضیحات برای توضیح مفاهیم به یادگیرندگان
- قالب‌بندی با استفاده از Prettier در صورت پیکربندی
- استفاده از سینتکس مدرن ES6+
- پیروی از پیکربندی‌های استاندارد ESLint ارائه شده
- نامگذاری معنادار متغیرها و توابع برای وضوح آموزشی
- افزودن توضیحات برای مفاهیم یادگیرندگان
- فرمت‌بندی با Prettier در صورت پیکربندی
### HTML/CSS
- استفاده از عناصر معنایی HTML5
- اصول طراحی واکنش‌گرا
- کنوانسیون‌های نام‌گذاری کلاس واضح
- توضیحات برای توضیح تکنیک‌های CSS به یادگیرندگان
- استفاده از المان‌های معنایی HTML5
- اصول طراحی واکنش‌گرا
- نام‌گذاری واضح کلاس‌ها
- کامنت‌هایی که تکنیک‌های CSS را برای یادگیرندگان توضیح می‌دهند
### Python
### پایتون
- دستورالعمل‌های سبک PEP 8
- مثال‌های کد واضح و آموزشی
- استفاده از نوع‌دهی در صورت مفید بودن برای یادگیری
- پیروی از راهنمای سبک PEP 8
- نمونه‌های کد واضح و آموزشی
- نکات نوع‌گذاری (type hints) در صورت کمک به یادگیری
### مستندات Markdown
### مستندات مارک‌داون
- سلسله‌مراتب واضح در عناوین
- بلوک‌های کد با مشخصات زبان
- لینک به منابع اضافی
- تصاویر و اسکرین‌شات‌ها در دایرکتوری‌های `images/`
- متن جایگزین برای تصاویر جهت دسترسی‌پذیری
- ساختار واضح سرفصل‌ها
- بلوک‌های کد با تعیین زبان
- لینک به منابع اضافی
- اسکرین‌شات‌ها و تصاویر در پوشه‌های `images/`
- متن جایگزین برای تصاویر برای دسترسی بهتر
### سازماندهی فایل‌ها
- درس‌ها به صورت ترتیبی شماره‌گذاری شده‌اند (1-getting-started-lessons، 2-js-basics، و غیره)
- هر پروژه دارای دایرکتوری‌های `solution/` و اغلب `start/` یا `your-work/` است
- تصاویر در پوشه‌های `images/` مربوط به درس ذخیره می‌شوند
- ترجمه‌ها در ساختار `translations/{language-code}/` قرار دارند
- شماره‌گذاری دروس به ترتیب (1-getting-started-lessons, 2-js-basics, و غیره)
- هر پروژه دارای پوشه‌های `solution/` و اغلب `start/` یا `your-work/`
- تصاویر در پوشه‌های `images/` مختص درس ذخیره شده‌اند
- ترجمه‌ها در ساختار `translations/{language-code}/`
## ساخت و استقرار
## ساخت و انتشار
### استقرار اپلیکیشن آزمون (Azure Static Web Apps)
### انتشار برنامه آزمون (Azure Static Web Apps)
اپلیکیشن آزمون برای استقرار در Azure Static Web Apps پیکربندی شده است:
برنامه quiz-app برای انتشار در Azure Static Web Apps تنظیم شده است:
```bash
cd quiz-app
npm run build # Creates dist/ folder
# Deploys via GitHub Actions workflow on push to main
npm run build # ایجاد پوشه dist/
# استقرار از طریق گردش کار GitHub Actions هنگام پوش به main
```
پیکربندی Azure Static Web Apps:
- **محل اپلیکیشن**: `/quiz-app`
- **محل خروجی**: `dist`
- **جریان کاری**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
پیکربندی Azure Static Web Apps:
- **محل برنامه**: `/quiz-app`
- **محل خروجی**: `dist`
- **گردش کار**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
### تولید PDF مستندات
```bash
npm install # Install docsify-to-pdf
npm run convert # Generate PDF from docs
npm install # نصب docsify-to-pdf
npm run convert # تولید PDF از docs
```
### مستندات Docsify
```bash
npm install -g docsify-cli # Install Docsify globally
docsify serve # Serve on localhost:3000
npm install -g docsify-cli # نصب Docsify به صورت سراسری
docsify serve # سرویس‌دهی در localhost:3000
```
### ساخت‌های خاص پروژه
### ساخت‌های مخصوص پروژه
هر دایرکتوری پروژه ممکن است فرآیند ساخت خود را داشته باشد:
- پروژه‌های Vue: دستور `npm run build` بسته‌های تولیدی ایجاد می‌کند
- پروژه‌های استاتیک: مرحله ساخت ندارند، فایل‌ها را مستقیماً ارائه دهید
هر دایرکتوری پروژه ممکن است فرایند ساخت خود را داشته باشد:
- پروژه‌های Vue: اجرای `npm run build` برای ساخت نسخه تولید
- پروژه‌های استاتیک: بدون مرحله ساخت، فایل‌ها مستقیم سرو می‌شوند
## دستورالعمل‌های درخواست Pull
### قالب عنوان
از عناوین واضح و توصیفی که ناحیه تغییر را نشان می‌دهند استفاده کنید:
- `[Quiz-app] افزودن آزمون جدید برای درس X`
- `[Lesson-3] اصلاح اشتباه تایپی در پروژه terrarium`
- `[Translation] افزودن ترجمه اسپانیایی برای درس ۵`
- `[Docs] به‌روزرسانی دستورالعمل‌های راه‌اندازی`
از عناوین واضح و توصیفی استفاده کنید که حوزه تغییر را نشان می‌دهد:
- `[Quiz-app] افزودن آزمون جدید برای درس X`
- `[Lesson-3] اصلاح اشتباه تایپی در پروژه تراریوم`
- `[Translation] افزودن ترجمه اسپانیایی برای درس ۵`
- `[Docs] به‌روزرسانی دستورالعمل‌های راه‌اندازی`
### بررسی‌های مورد نیاز
### بررسی‌های لازم
قبل از ارسال PR:
قبل از ارسال PR:
1. **کیفیت کد**:
- دستور `npm run lint` را در دایرکتوری‌های پروژه‌های تحت تأثیر اجرا کنید
- تمام خطاها و هشدارهای linting را اصلاح کنید
1. **کیفیت کد**:
- اجرای `npm run lint` در دایرکتوری‌های پروژه تحت تاثیر
- رفع تمام خطاها و هشدارهای lint
2. **تأیید ساخت**:
- دستور `npm run build` را در صورت لزوم اجرا کنید
- اطمینان حاصل کنید که هیچ خطای ساخت وجود ندارد
2. **تایید ساخت**:
- اجرای `npm run build` در صورت نیاز
- اطمینان از عدم وجود خطا در ساخت
3. **اعتبارسنجی لینک‌ها**:
- تمام لینک‌های markdown را آزمایش کنید
- اطمینان حاصل کنید که ارجاعات تصاویر کار می‌کنند
3. **اعتبار لینک‌ها**:
- تست همه لینک‌های مارک‌داون
- تایید عملکرد ارجاعات تصاویر
4. **بررسی محتوا**:
- از نظر املایی و گرامری بازخوانی کنید
- اطمینان حاصل کنید که مثال‌های کد صحیح و آموزشی هستند
- بررسی کنید که ترجمه‌ها معنای اصلی را حفظ کرده‌اند
4. **بازبینی محتوا**:
- بررسی املایی و دستور زبانی
- اطمینان صحت و آموزشی بودن نمونه‌های کد
- تایید حفظ معنی اصلی در ترجمه‌ها
### الزامات مشارکت
- موافقت با Microsoft CLA (بررسی خودکار در اولین PR)
- پیروی از [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
- دستورالعمل‌های دقیق را در [CONTRIBUTING.md](./CONTRIBUTING.md) مشاهده کنید
- در صورت لزوم شماره‌های مسئله را در توضیحات PR ذکر کنید
- موافقت با قرارداد Microsoft CLA (بررسی خودکار در نخستین PR)
- پیروی از [کد رفتاری متن باز مایکروسافت](https://opensource.microsoft.com/codeofconduct/)
- مشاهده [CONTRIBUTING.md](./CONTRIBUTING.md) برای دستورالعمل‌های جزئی
- ارجاع شماره مشکلات در توضیحات PR در صورت وجود
### فرآیند بررسی
### فرآیند بازبینی
- PRها توسط نگهدارندگان و جامعه بررسی می‌شوند
- وضوح آموزشی در اولویت است
- مثال‌های کد باید از بهترین شیوه‌های فعلی پیروی کنند
- ترجمه‌ها از نظر دقت و مناسب بودن فرهنگی بررسی می‌شوند
- PRها توسط نگهدارنده‌ها و جامعه مرور می‌شوند
- وضوح آموزشی در اولویت است
- نمونه‌های کد باید بهترین شیوه‌های روز را دنبال کنند
- ترجمه‌ها برای دقت و مناسب‌بودن فرهنگی بازبینی می‌شوند
## سیستم ترجمه
### ترجمه خودکار
- از GitHub Actions با جریان کاری co-op-translator استفاده می‌کند
- به طور خودکار به بیش از ۵۰ زبان ترجمه می‌شود
- فایل‌های منبع در دایرکتوری‌های اصلی
- فایل‌های ترجمه شده در دایرکتوری‌های `translations/{language-code}/`
- استفاده از GitHub Actions با گردش کار co-op-translator
- ترجمه خودکار به بیش از ۵۰ زبان
- فایل‌های منبع در دایرکتوری‌های اصلی
- فایل‌های ترجمه در دایرکتوری‌های `translations/{language-code}/`
### افزودن بهبودهای ترجمه دستی
1. فایل را در `translations/{language-code}/` پیدا کنید
2. بهبودها را در حالی که ساختار را حفظ می‌کنید اعمال کنید
3. اطمینان حاصل کنید که مثال‌های کد همچنان کار می‌کنند
4. هر محتوای آزمون محلی‌سازی شده را آزمایش کنید
۱. فایل را در `translations/{language-code}/` پیدا کنید
۲. بهبودها را با حفظ ساختار اعمال کنید
۳. اطمینان حاصل کنید نمونه‌های کد عملکرد دارند
۴. آزمون محتوای آزمون محلی‌شده
### متادیتای ترجمه
### متاداده ترجمه
فایل‌های ترجمه شده شامل سربرگ متادیتا هستند:
فایل‌های ترجمه شامل سربرگ متاداده:
```markdown
<!--
CO_OP_TRANSLATOR_METADATA:
@ -289,118 +289,120 @@ CO_OP_TRANSLATOR_METADATA:
-->
```
## اشکال‌زدایی و رفع مشکلات
## عیب‌یابی و رفع مشکل
### مشکلات رایج
**اپلیکیشن آزمون اجرا نمی‌شود**:
- نسخه Node.js را بررسی کنید (v14+ توصیه می‌شود)
- `node_modules` و `package-lock.json` را حذف کنید، دوباره `npm install` اجرا کنید
- بررسی کنید که آیا تضاد پورت وجود دارد (پیش‌فرض: Vite از پورت 5173 استفاده می‌کند)
**برنامه آزمون اجرا نمی‌شود**:
- نسخه Node.js را بررسی کنید (حداقل v14 توصیه می‌شود)
- پوشه‌های `node_modules` و فایل `package-lock.json` را حذف کرده و `npm install` را مجدداً اجرا کنید
- تداخل پورت را بررسی کنید (پورت پیش‌فرض Vite برابر ۵۱۷۳ است)
**سرور API اجرا نمی‌شود**:
- اطمینان حاصل کنید که نسخه Node.js حداقل مورد نیاز را دارد (node >=10)
- بررسی کنید که آیا پورت قبلاً استفاده شده است
- اطمینان حاصل کنید که تمام وابستگی‌ها با `npm install` نصب شده‌اند
**سرور API اجرا نمی‌شود**:
- نسخه Node.js حداقل (node >=10) را بررسی کنید
- مطمئن شوید پورت قبلاً اشغال نشده است
- با اجرای `npm install` تمام وابستگی‌ها نصب شده‌اند
**افزونه مرورگر بارگذاری نمی‌شود**:
- اطمینان حاصل کنید که manifest.json به درستی قالب‌بندی شده است
- کنسول مرورگر را برای خطاها بررسی کنید
- دستورالعمل‌های نصب افزونه مرورگر خاص را دنبال کنید
**افزونه مرورگر بارگذاری نمی‌شود**:
- فرمت فایل manifest.json را بررسی کنید
- کنسول مرورگر برای خطاها را کنترل کنید
- دستورالعمل نصب افزونه مرورگر خاص را دنبال کنید
**مشکلات پروژه چت Python**:
- اطمینان حاصل کنید که بسته OpenAI نصب شده است: `pip install openai`
- بررسی کنید که متغیر محیطی GITHUB_TOKEN تنظیم شده است
- دسترسی به مدل‌های GitHub را بررسی کنید
**مشکلات پروژه چت پایتون**:
- بسته OpenAI نصب شده باشد: `pip install openai`
- متغیر محیطی GITHUB_TOKEN تنظیم شده باشد
- دسترسی مدل‌های GitHub بررسی شود
**Docsify مستندات را ارائه نمی‌دهد**:
- Docsify-cli را به صورت جهانی نصب کنید: `npm install -g docsify-cli`
- از دایرکتوری ریشه مخزن اجرا کنید
- بررسی کنید که `docs/_sidebar.md` وجود دارد
**مستندات Docsify بارگیری نمی‌شود**:
- نصب docsify-cli به صورت سراسری: `npm install -g docsify-cli`
- اجرای دستور از پوشه ریشه مخزن
- اطمینان از وجود فایل `docs/_sidebar.md`
### نکات محیط توسعه
- از VS Code با افزونه Live Server برای پروژه‌های HTML استفاده کنید
- افزونه‌های ESLint و Prettier را برای قالب‌بندی سازگار نصب کنید
- از ابزارهای توسعه مرورگر برای اشکال‌زدایی جاوااسکریپت استفاده کنید
- برای پروژه‌های Vue، افزونه Vue DevTools مرورگر را نصب کنید
- استفاده از VS Code با افزونه Live Server برای پروژه‌های HTML
- نصب افزونه‌های ESLint و Prettier برای یکنواختی قالب‌بندی
- استفاده از DevTools مرورگر برای خطایابی جاوااسکریپت
- برای پروژه‌های Vue، افزونه Vue DevTools مرورگر نصب شود
### ملاحظات عملکرد
- تعداد زیادی فایل ترجمه شده (بیش از ۵۰ زبان) به این معنی است که کلون‌های کامل بزرگ هستند
- اگر فقط روی محتوا کار می‌کنید از کلون سطحی استفاده کنید: `git clone --depth 1`
- ترجمه‌ها را از جستجوها حذف کنید وقتی روی محتوای انگلیسی کار می‌کنید
- فرآیندهای ساخت ممکن است در اولین اجرا کند باشند (npm install، Vite build)
- تعداد زیاد فایل‌های ترجمه (۵۰+ زبان) باعث حجیم بودن کلون کامل می‌شود
- برای کار فقط روی محتوا از کلون سطحی استفاده کنید: `git clone --depth 1`
- هنگام کار با محتوای انگلیسی، ترجمه‌ها را از جستجوها حذف کنید
- فرایند ساخت ممکن است در نخستین اجرا کند باشد (نصب npm، ساخت Vite)
## ملاحظات امنیتی
### متغیرهای محیطی
- کلیدهای API هرگز نباید به مخزن متعهد شوند
- از فایل‌های `.env` استفاده کنید (قبلاً در `.gitignore` قرار گرفته‌اند)
- متغیرهای محیطی مورد نیاز را در READMEهای پروژه مستند کنید
- کلیدهای API نباید به مخزن ارسال شوند
- استفاده از فایل‌های `.env` (که از قبل در `.gitignore` هستند)
- متغیرهای محیطی ضروری باید در README پروژه‌ها مستند شوند
### پروژه‌های Python
### پروژه‌های پایتون
- از محیط‌های مجازی استفاده کنید: `python -m venv venv`
- وابستگی‌ها را به‌روز نگه دارید
- توکن‌های GitHub باید حداقل مجوزهای مورد نیاز را داشته باشند
- استفاده از محیط‌های مجازی: `python -m venv venv`
- نگهداری نسخه‌های به‌روز وابستگی‌ها
- توکن‌های GitHub باید حداقل دسترسی لازم را داشته باشند
### دسترسی به مدل‌های GitHub
- توکن‌های دسترسی شخصی (PAT) برای مدل‌های GitHub مورد نیاز است
- توکن‌ها باید به عنوان متغیرهای محیطی ذخیره شوند
- هرگز توکن‌ها یا اطلاعات محرمانه را متعهد نکنید
- توکن‌های دسترسی شخصی (PAT) برای مدل‌های GitHub مورد نیاز است
- این توکن‌ها باید به صورت متغیر محیطی ذخیره شوند
- هرگز توکن‌ها یا اطلاعات محرمانه را به مخزن ارسال نکنید
## یادداشت‌های اضافی
### مخاطبان هدف
### مخاطب هدف
- مبتدیان کامل در توسعه وب
- دانش‌آموزان و یادگیرندگان خودآموز
- معلمانی که از برنامه آموزشی در کلاس‌ها استفاده می‌کنند
- محتوا برای دسترسی‌پذیری و ایجاد مهارت تدریجی طراحی شده است
- کاملاً مبتدیان در توسعه وب
- دانش‌آموزان و خودآموزها
- معلمانی که برنامه آموزشی را در کلاس‌ها به کار می‌برند
- محتوا برای دسترس‌پذیری و پیشرفت تدریجی مهارت طراحی شده است
### فلسفه آموزشی
- رویکرد یادگیری مبتنی بر پروژه
- بررسی‌های مکرر دانش (آزمون‌ها)
- تمرین‌های کدنویسی عملی
- مثال‌های کاربردی در دنیای واقعی
- تمرکز بر اصول قبل از فریم‌ورک‌ها
- رویکرد یادگیری مبتنی بر پروژه
- بررسی‌های مکرر دانش (آزمون‌ها)
- تمرین‌های عملی کدنویسی
- مثال‌های کاربردی دنیای واقعی
- تمرکز بر اصول قبل از فریم‌ورک‌ها
### نگهداری مخزن
- جامعه فعال یادگیرندگان و مشارکت‌کنندگان
- به‌روزرسانی‌های منظم وابستگی‌ها و محتوا
- مسائل و بحث‌ها توسط نگهدارندگان نظارت می‌شود
- به‌روزرسانی‌های ترجمه به صورت خودکار از طریق GitHub Actions
- جامعه فعال یادگیرندگان و مشارکت‌کنندگان
- به‌روزرسانی‌های منظم وابستگی‌ها و محتوا
- مشکلات و بحث‌ها توسط نگهدارنده‌ها پیگیری می‌شود
- به‌روزرسانی ترجمه‌ها به‌صورت خودکار از طریق GitHub Actions
### منابع مرتبط
- [ماژول‌های Microsoft Learn](https://docs.microsoft.com/learn/)
- [منابع Student Hub](https://docs.microsoft.com/learn/student-hub/)
- [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) برای یادگیرندگان توصیه می‌شود
- دوره‌های اضافی: هوش مصنوعی مولد، علم داده، یادگیری ماشین، برنامه‌های IoT در دسترس هستند
- [ماژول‌های Microsoft Learn](https://docs.microsoft.com/learn/)
- [منابع Student Hub](https://docs.microsoft.com/learn/student-hub/)
- [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) توصیه شده برای یادگیرندگان
- دوره‌های اضافی: هوش مصنوعی مولد، علوم داده، یادگیری ماشین، دوره‌های IoT موجود است
### کار با پروژه‌های خاص
برای دستورالعمل‌های دقیق در مورد پروژه‌های فردی، به فایل‌های README در موارد زیر مراجعه کنید:
- `quiz-app/README.md` - اپلیکیشن آزمون Vue 3
- `7-bank-project/README.md` - اپلیکیشن بانکی با احراز هویت
- `5-browser-extension/README.md` - توسعه افزونه مرورگر
- `6-space-game/README.md` - توسعه بازی مبتنی بر Canvas
- `9-chat-project/README.md` - پروژه دستیار چت هوش مصنوعی
برای دستورالعمل‌های دقیق هر پروژه به فایل‌های README مراجعه کنید:
- `quiz-app/README.md` - برنامه آزمون Vue 3
- `7-bank-project/README.md` - برنامه بانکی با احراز هویت
- `5-browser-extension/README.md` - توسعه افزونه مرورگر
- `6-space-game/README.md` - توسعه بازی مبتنی بر Canvas
- `9-chat-project/README.md` - پروژه دستیار چت هوش مصنوعی
### ساختار Monorepo
### ساختار مونورپو
اگرچه یک Monorepo سنتی نیست، این مخزن شامل چندین پروژه مستقل است:
- هر درس به صورت خودکفا است
- پروژه‌ها وابستگی‌ها را به اشتراک نمی‌گذارند
- روی پروژه‌های فردی کار کنید بدون اینکه بر دیگران تأثیر بگذارید
- کل مخزن را برای تجربه کامل برنامه آموزشی کلون کنید
اگرچه یک مونورپو سنتی نیست، این مخزن دارای چندین پروژه مستقل است:
- هر درس خودمختار است
- پروژه‌ها وابستگی‌های مشترک ندارند
- روی پروژه‌های منفرد بدون تاثیرگزاری روی دیگران کار کنید
- برای تجربه کامل دوره کل مخزن را کلون کنید
---
**سلب مسئولیت**:
این سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما برای دقت تلاش می‌کنیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است حاوی خطاها یا نادرستی‌هایی باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، ترجمه حرفه‌ای انسانی توصیه می‌شود. ما مسئولیتی در قبال هرگونه سوءتفاهم یا تفسیر نادرست ناشی از استفاده از این ترجمه نداریم.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**توضیح مهم**:
این سند با استفاده از سرویس ترجمه ماشینی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما تلاش می‌کنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است دارای خطا یا نواقصی باشند. سند اصلی به زبان بومی خود باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، توصیه می‌شود از ترجمه حرفه‌ای انسانی استفاده گردد. ما در قبال هر گونه سوء تفاهم یا برداشت نادرست ناشی از استفاده این ترجمه مسئولیتی نداریم.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,81 +1,68 @@
[![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/)
اصول توسعه وب را با دوره جامع ۱۲ هفته‌ای ما توسط مدافعان ابر مایکروسافت بیاموزید. هر یک از ۲۴ درس به صورت عملی به آموزش جاوااسکریپت، CSS و HTML می‌پردازد، از جمله پروژه‌هایی مثل تراریوم‌ها، افزونه‌های مرورگر و بازی‌های فضایی. در فعالیت‌هایی مثل آزمون‌ها، بحث‌ها و تکالیف عملی شرکت کنید. مهارت‌های خود را افزایش دهید و با روش مبتنی بر پروژه ما، حفظ دانش خود را بهینه کنید. سفر برنامه‌نویسی خود را امروز شروع کنید!
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
# توسعه وب برای مبتدی‌ها - یک دوره آموزشی
اصول بنیادی توسعه وب را با دوره جامع ۱۲ هفته‌ای ما توسط مدافعان مایکروسافت کلود بیاموزید. هر یک از ۲۴ درس به صورت عملی به جاوااسکریپت، CSS و HTML می‌پردازد با پروژه‌هایی مانند تراریوم‌ها، افزونه‌های مرورگر و بازی‌های فضایی. در کوییزها، گفتگوها و تمرین‌های عملی شرکت کنید. مهارت‌های خود را ارتقا دهید و با روش آموزش مبتنی بر پروژه ما، دانش خود را بهینه کنید. سفر کدنویسی خود را امروز آغاز کنید!
به انجمن دیسکورد Azure AI Foundry ملحق شوید
به جامعه Discord آزور AI Foundry بپیوندید
[![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 بپیوندید و با کارشناسان و توسعه‌دهندگان هم‌تراز ملاقات کنید**](https://discord.com/invite/ByRwuEEgH4)
برای شروع استفاده از این منابع مراحل زیر را دنبال کنید:
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. [**به Discord آزور AI Foundry بپیوندید و با متخصصان و توسعه‌دهندگان هم‌ردیف آشنا شوید**](https://discord.com/invite/ByRwuEEgH4)
### 🌐 پشتیبانی چندزبان
### 🌐 پشتیبانی چندزبانه
#### پشتیبانی توسط GitHub Action (خودکار و همیشه به‌روز)
#### پشتیبانی شده از طریق GitHub Action (خودکار و همواره به‌روز)
<!-- CO-OP TRANSLATOR LANGUAGES TABLE START -->
[عربی](../ar/README.md) | [بنگالی](../bn/README.md) | [بلغاری](../bg/README.md) | [برمه‌ای (میانمار)](../my/README.md) | [چینی (ساده‌شده)](../zh-CN/README.md) | [چینی (سنتی، هنگ‌کنگ)](../zh-HK/README.md) | [چینی (سنتی، ماکائو)](../zh-MO/README.md) | [چینی (سنتی، تایوان)](../zh-TW/README.md) | [کرواتی](../hr/README.md) | [چک](../cs/README.md) | [دانمارکی](../da/README.md) | [هلندی](../nl/README.md) | [استونیایی](../et/README.md) | [فنلاندی](../fi/README.md) | [فرانسوی](../fr/README.md) | [آلمانی](../de/README.md) | [یونانی](../el/README.md) | [عبری](../he/README.md) | [هندی](../hi/README.md) | [مجارستانی](../hu/README.md) | [اندونزیایی](../id/README.md) | [ایتالیایی](../it/README.md) | [ژاپنی](../ja/README.md) | [کانارا](../kn/README.md) | [کره‌ای](../ko/README.md) | [لیتوانیایی](../lt/README.md) | [مالایی](../ms/README.md) | [مالایالام](../ml/README.md) | [مراتی](../mr/README.md) | [نپالی](../ne/README.md) | [پیدجین نیجریه‌ای](../pcm/README.md) | [نروژی](../no/README.md) | [فارسی](./README.md) | [لهستانی](../pl/README.md) | [پرتغالی (برزیل)](../pt-BR/README.md) | [پرتغالی (پرتغال)](../pt-PT/README.md) | [پنجابی (گورموخی)](../pa/README.md) | [رومانیایی](../ro/README.md) | [روسی](../ru/README.md) | [صربی (سیریلیک)](../sr/README.md) | [اسلواکی](../sk/README.md) | [اسلوونیایی](../sl/README.md) | [اسپانیایی](../es/README.md) | [سواحیلی](../sw/README.md) | [سوئدی](../sv/README.md) | [تاگالوگ (فیلیپینی)](../tl/README.md) | [تامیل](../ta/README.md) | [تلوگو](../te/README.md) | [تایلندی](../th/README.md) | [ترکی](../tr/README.md) | [اوکراینی](../uk/README.md) | [اردو](../ur/README.md) | [ویتنامی](../vi/README.md)
[عربی](../ar/README.md) | [بنگالی](../bn/README.md) | [بلغاری](../bg/README.md) | [برمه‌ای (میانمار)](../my/README.md) | [چینی (ساده‌سازی شده)](../zh-CN/README.md) | [چینی (سنتی، هنگ‌کنگ)](../zh-HK/README.md) | [چینی (سنتی، ماکائو)](../zh-MO/README.md) | [چینی (سنتی، تایوان)](../zh-TW/README.md) | [کرواسیایی](../hr/README.md) | [چکی](../cs/README.md) | [دانمارکی](../da/README.md) | [هلندی](../nl/README.md) | [استونیایی](../et/README.md) | [فنلاندی](../fi/README.md) | [فرانسوی](../fr/README.md) | [آلمانی](../de/README.md) | [یونانی](../el/README.md) | [عبری](../he/README.md) | [هندی](../hi/README.md) | [مجارستانی](../hu/README.md) | [اندونزیایی](../id/README.md) | [ایتالیایی](../it/README.md) | [ژاپنی](../ja/README.md) | [کانادا](../kn/README.md) | [کره‌ای](../ko/README.md) | [لیتوانیایی](../lt/README.md) | [مالایی](../ms/README.md) | [مالایالام](../ml/README.md) | [مراتی](../mr/README.md) | [نپالی](../ne/README.md) | [پیجین نیجریه‌ای](../pcm/README.md) | [نروژی](../no/README.md) | [فارسی (Farsi)](./README.md) | [لهستانی](../pl/README.md) | [پرتغالی (برزیل)](../pt-BR/README.md) | [پرتغالی (پرتغال)](../pt-PT/README.md) | [پنجابی (گورموخی)](../pa/README.md) | [رومانیایی](../ro/README.md) | [روسی](../ru/README.md) | [صربی (سیریلیک)](../sr/README.md) | [اسلواکی](../sk/README.md) | [اسلوونیایی](../sl/README.md) | [اسپانیایی](../es/README.md) | [سواحلی](../sw/README.md) | [سوئدی](../sv/README.md) | [تاگالوگ (فیلیپینی)](../tl/README.md) | [تامیلی](../ta/README.md) | [تلوگو](../te/README.md) | [تایلندی](../th/README.md) | [ترکی](../tr/README.md) | [اوکراینی](../uk/README.md) | [اردو](../ur/README.md) | [ویتنامی](../vi/README.md)
> **مایلید به کلون کردن محلی هستید؟**
> **ترجیح می‌دهید به صورت محلی کلون کنید؟**
> این مخزن شامل بیش از ۵۰ ترجمه زبان است که اندازه دانلود را به طور قابل توجهی افزایش می‌دهد. برای کلون بدون ترجمه‌ها، از sparse checkout استفاده کنید:
> این مخزن شامل بیش از ۵۰ ترجمه زبان است که به طور قابل توجهی حجم دانلود را افزایش می‌دهد. برای کلون کردن بدون ترجمه‌ها از sparse checkout استفاده کنید:
> ```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'
> ```
> این به شما همه چیز لازم برای تکمیل دوره را با دانلود بسیار سریع‌تر می‌دهد.
> این به شما همه چیز لازم برای تکمیل دوره با دانلود بسیار سریع‌تر را می‌دهد.
<!-- CO-OP TRANSLATOR LANGUAGES TABLE END -->
**اگر تمایل به پشتیبانی ترجمه زبان‌های بیشتر دارید، زبان‌های پشتیبانی شده در [اینجا](https://github.com/Azure/co-op-translator/blob/main/getting_started/supported-languages.md) آمده است**
**اگر می‌خواهید زبان‌های ترجمه بیشتری اضافه شوند، موارد پشتیبانی شده در اینجا فهرست شده‌اند [here](https://github.com/Azure/co-op-translator/blob/main/getting_started/supported-languages.md)**
[![باز کردن در 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)
#### 🧑‍🎓 _آیا دانشجو هستید؟_
#### 🧑‍🎓 _دانشجو هستید؟_
از صفحه [**Student Hub**](https://docs.microsoft.com/learn/student-hub/?WT.mc_id=academic-77807-sagibbon) دیدن کنید که منابع مبتدی، پکیج‌های دانشجویی و حتی راه‌هایی برای دریافت کوپن رایگان گواهینامه را خواهید یافت. این صفحه‌ای است که باید نشانک کنید و گاه به گاه بررسی کنید چون محتوای آن ماهانه به‌روزرسانی می‌شود.
به صفحه [**Student Hub**](https://docs.microsoft.com/learn/student-hub/?WT.mc_id=academic-77807-sagibbon) مراجعه کنید که منابع مبتدی، بسته‌های دانشجویی و حتی راه‌هایی برای دریافت رایگان کد گواهینامه را پیدا خواهید کرد. این صفحه‌ای است که باید نشانه‌گذاری کنید و گهگاه آن را بررسی کنید چون ماهانه محتوای جدید جایگزین می‌شود.
### 📣 اطلاعیه - چالش‌های حالت GitHub Copilot Agent جدید برای تکمیل!
### 📣 اطلاعیه - چالش‌های جدید حالت GitHub Copilot Agent برای تکمیل!
چالش جدید اضافه شده، به دنبال "GitHub Copilot Agent Challenge 🚀" در اکثر فصل‌ها باشید. این چالش جدیدی است برای شما که با استفاده از GitHub Copilot و حالت Agent کامل کنید. اگر پیش‌تر حالت Agent را استفاده نکرده‌اید، این حالت قادر است نه فقط متن تولید کند بلکه فایل‌ها را بسازد و ویرایش کند، فرمان‌ها را اجرا کند و بیشتر.
چالش جدید اضافه شده، به دنبال "چالش GitHub Copilot Agent 🚀" در بیشتر فصل‌ها باشید. این چالشی جدید برای شماست که با استفاده از GitHub Copilot و حالت Agent آن را تکمیل کنید. اگر قبلا حالت Agent را استفاده نکرده‌اید، این حالت فقط متن تولید نمی‌کند بلکه فایل‌ها را ایجاد و ویرایش می‌کند، فرمان اجرا می‌کند و بیشتر.
### 📣 اطلاعیه - _پروژه جدیدی برای ساخت با هوش مصنوعی مولد_
### 📣 اطلاعیه - _پروژه جدید برای ساخت با استفاده از هوش مصنوعی مولد_
پروژه دستیار هوش مصنوعی جدید همین‌تازگی اضافه شده، آن را بررسی کنید [project](./9-chat-project/README.md)
پروژه جدید دستیار هوش مصنوعی به تازگی اضافه شده، آن را بررسی کنید [project](./9-chat-project/README.md)
### 📣 اطلاعیه - _دوره جدید_ درباره هوش مصنوعی مولد برای جاوااسکریپت همین‌تازگی منتشر شده
### 📣 اطلاعیه - _برنامه درسی جدید_ درباره هوش مصنوعی مولد برای جاوااسکریپت تازه منتشر شده است
دوره جدید هوش مصنوعی مولد ما را از دست ندهید!
برنامه درسی جدید هوش مصنوعی مولد ما را از دست ندهید!
برای شروع به [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) مراجعه کنید!
برای شروع مراجعه کنید [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course)
![پس‌زمینه](../../translated_images/fa/background.148a8d43afde5730.webp)
- درس‌ها شامل همه چیز از مقدمات تا RAG.
- تعامل با شخصیت‌های تاریخی با استفاده از GenAI و اپ همراه ما.
- روایت جذاب و سرگرم‌کننده، شما را به سفر در زمان می‌برد!
- درس‌هایی که همه چیز، از اصول پایه تا RAG را پوشش می‌دهند.
- با شخصیت‌های تاریخی با استفاده از GenAI و برنامه همراه ما تعامل کنید.
- روایت جذاب و سرگرم‌کننده، شما در حال سفر در زمان خواهید بود!
![شخصیت](../../translated_images/fa/character.5c0dd8e067ffd693.webp)
هر درس شامل یک تمرین برای تکمیل، یک آزمون دانش و یک چالش برای راهنمایی شما در یادگیری موضوعاتی مانند:
- پرامپت‌نویسی و مهندسی پرامپت
- تولید اپلیکیشن‌های متنی و تصویری
- اپ‌های جستجو
هر درس شامل یک تکلیف برای تکمیل، یک آزمون دانش و یک چالش برای راهنمایی در یادگیری موضوعاتی مانند:
- پرامپت‌دهی و مهندسی پرامپت
- تولید برنامه‌های متنی و تصویری
- برنامه‌های جستجو
برای شروع به [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) مراجعه کنید!
@ -83,134 +70,134 @@
## 🌱 شروع به کار
> **معلمان**، ما [برخی پیشنهادات](for-teachers.md) درباره نحوه استفاده از این دوره را درج کرده‌ایم. خوشحال می‌شویم بازخورد شما را [در انجمن بحث ما](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner) دریافت کنیم!
> **معلمان**، ما [چند پیشنهاد](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://aka.ms/student-page/?WT.mc_id=academic-77807-sagibbon)**، برای هر درس، با آزمون پیش‌درس شروع کنید و با خواندن محتوای درس، انجام فعالیت‌های مختلف و آزمون پس‌درس پیش بروید.
برای بهبود تجربه یادگیری خود، با همکلاسی‌هایتان ارتباط برقرار کنید و پروژه‌ها را با هم انجام دهید! بحث و گفتگو در [انجمن بحث ما](https://github.com/microsoft/Web-Dev-For-Beginners/discussions) تشویق می‌شود و تیم ناظران ما برای پاسخگویی به سوالات شما در دسترس خواهند بود.
برای بهبود تجربه یادگیری خود، با هم‌کلاسی‌هایتان برای کار روی پروژه‌ها همکاری کنید! بحث‌ها در [فروم گفتگوی ما](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) را برای منابع مطالعه اضافی بررسی کنید.
برای ادامه تحصیل، به شدت توصیه می‌کنیم [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) اجرا کنید.
این برنامه درسی دارای محیط توسعه آماده است! هنگام شروع می‌توانید انتخاب کنید که برنامه را در [Codespace](https://github.com/features/codespaces/) (محیطی مبتنی بر مرورگر و بدون نیاز به نصب) اجرا کنید یا به صورت محلی روی رایانه خود با ویرایشگر متنی مانند [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) کار کنید.
#### ایجاد مخزن خود
برای اینکه بتوانید به‌راحتی کارهای خود را ذخیره کنید، توصیه می‌شود یک کپی از این مخزن ایجاد کنید. برای این کار روی دکمه **Use this template** در بالای صفحه کلیک کنید. این کار یک مخزن جدید در حساب GitHub شما با کپی دوره ایجاد می‌کند.
#### ساخت مخزن خود
برای راحتی ذخیره‌سازی کارهای خود، توصیه می‌شود کپی خود را از این مخزن ایجاد کنید. این کار را با کلیک روی دکمه **Use this template** در بالای صفحه انجام دهید. این یک مخزن جدید در حساب GitHub شما با نسخه‌ای از برنامه درسی ایجاد خواهد کرد.
مراحل زیر را دنبال کنید:
1. **انشعاب مخزن**: روی دکمه "Fork" در گوشه بالا سمت راست این صفحه کلیک کنید.
2. **کلون کردن مخزن**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
1. **فورک مخزن**: روی دکمه "Fork" در گوشه بالا-راست این صفحه کلیک کنید.
2. **کلون مخزن**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
#### اجرای دوره در Codespace
#### اجرای برنامه درسی در Codespace
در نسخه خود از این مخزن که ایجاد کرده‌اید، روی دکمه **Code** کلیک کرده و گزینه **Open with Codespaces** را انتخاب کنید. این کار یک Codespace جدید برای کار شما ایجاد می‌کند.
در نسخه خود از این مخزن که ساخته‌اید، روی دکمه **Code** کلیک کرده و **Open with Codespaces** را انتخاب کنید. این یک Codespace جدید برای کار شما ایجاد خواهد کرد.
![Codespace](../../translated_images/fa/createcodespace.0238bbf4d7a8d955.webp)
#### اجرای دوره به صورت محلی روی کامپیوتر شما
#### اجرای برنامه درسی به صورت محلی روی رایانه شما
برای اجرای این دوره به‌صورت محلی نیاز به یک ویرایشگر متن، یک مرورگر و یک ابزار خط فرمان دارید. اولین درس ما، [معرفی زبان‌های برنامه‌نویسی و ابزارهای کار](../../1-getting-started-lessons/1-intro-to-programming-languages)، گزینه‌های مختلف هر یک از این ابزارها را به شما معرفی می‌کند تا بهترین گزینه را برای خود انتخاب کنید.
برای اجرای این برنامه درسی به صورت محلی روی رایانه خود، به یک ویرایشگر متنی، یک مرورگر و یک ابزار خط فرمان نیاز دارید. اولین درس ما، [مقدمه‌ای بر زبان‌ها و ابزارهای برنامه‌نویسی](../../1-getting-started-lessons/1-intro-to-programming-languages)، گزینه‌های مختلفی برای هر یک از این ابزارها را برای شما توضیح می‌دهد تا بهترین گزینه را انتخاب کنید.
توصیه ما استفاده از [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) به عنوان ویرایشگر است که همچنین دارای یک [ترمینال داخلی](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) دانلود کنید.
توصیه ما استفاده از [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) به عنوان ویرایشگر است که همچنین دارای [ترمینال](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 را کپی کنید:
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) باز کنید و دستور زیر را اجرا کنید، به‌جای `<your-repository-url>`، آدرسی را که کپی کرده‌اید جایگزین کنید:
سپس، [ترمینال](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon) را درون [ویژوال استودیو کد](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) باز کنید و دستور زیر را اجرا کنید، به طوری که `<your-repository-url>` را با URL که همین الان کپی کرده‌اید جایگزین کنید:
```bash
git clone <your-repository-url>
```
۲. پوشه را در ویژوال استودیو کد باز کنید. این کار را با کلیک روی **File** > **Open Folder** و انتخاب پوشه‌ای که تازه کلون کرده‌اید انجام دهید.
۲. پوشه را در ویژوال استودیو کد باز کنید. می‌توانید این کار را با کلیک روی **File** > **Open Folder** و انتخاب پوشه‌ای که تازه کلون کرده‌اید انجام دهید.
> افزونه‌های پیشنهاد شده ویژوال استودیو کد:
> افزونه‌های پیشنهادی ویژوال استودیو کد:
>
> * [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer&WT.mc_id=academic-77807-sagibbon) - برای پیش‌نمایش صفحات HTML در داخل ویژوال استودیو کد
> * [Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot&WT.mc_id=academic-77807-sagibbon) - برای کمک به نوشتن سریع‌تر کد
> * [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer&WT.mc_id=academic-77807-sagibbon) - برای پیش‌نمایش صفحات HTML داخل ویژوال استودیو کد
> * [Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot&WT.mc_id=academic-77807-sagibbon) - برای کمک به شما در نوشتن سریع‌تر کد
## 📂 هر درس شامل:
- نقشه‌کشی اختیاری
- اسکچ‌نوت اختیاری
- ویدیوی تکمیلی اختیاری
- آزمون گرم‌کننده پیشدرس
- درس نوشتاری
- برای درس‌های مبتنی بر پروژه، راهنماهای گام‌به‌گام نحوه ساخت پروژه
- آزمون گرم‌کننده پیش از درس
- درس نوشته شده
- برای درس‌های مبتنی بر پروژه، راهنماهای گام به گام ساخت پروژه
- بررسی دانش
- یک چالش
- مطالعه تکمیلی
- تمرین
- [آزمون پس از درس](https://ff-quizzes.netlify.app/web/)
> **تذکر درباره آزمون‌ها**: تمام آزمون‌ها در پوشه Quiz-app قرار دارند، مجموعاً ۴۸ آزمون با هر کدام شامل سه سوال. آن‌ها [اینجا](https://ff-quizzes.netlify.app/web/) در دسترس‌اند، اپلیکیشن آزمون می‌تواند به صورت محلی اجرا شود یا روی Azure منتشر گردد؛ دستورالعمل اجرای آن در پوشه `quiz-app` موجود است.
## 🗃️ دروس
| | نام پروژه | مفاهیم آموزش داده شده | اهداف آموزشی | درس مرتبط | نویسنده |
| :-: | :------------------------------------------------------: | :--------------------------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------: | :---------------------: |
| ۰۱ | شروع کار | مقدمه‌ای بر برنامه‌نویسی و ابزارهای کار | یادگیری اصول پایه در پشت بیشتر زبان‌های برنامه‌نویسی و همچنین نرم‌افزارهایی که به توسعه‌دهندگان حرفه‌ای برای انجام کارشان کمک می‌کنند | [مقدمه‌ای بر زبان‌های برنامه‌نویسی و ابزارهای کار](./1-getting-started-lessons/1-intro-to-programming-languages/README.md) | جاسمن |
| ۰۲ | شروع کار | مبانی گیت‌هاب، شامل همکاری تیمی | چگونگی استفاده از گیت‌هاب در پروژه، و نحوه همکاری با دیگران روی کد | [مقدمه‌ای بر گیت‌هاب](./1-getting-started-lessons/2-github-basics/README.md) | فلور |
| ۰۳ | شروع کار | دسترسی (Accessibility) | یادگیری اصول پایه درباره دسترسی وب | [مبانی دسترسی](./1-getting-started-lessons/3-accessibility/README.md) | کریستوفر |
| ۰۴ | پایه‌های JS | انواع دادهها در جاوااسکریپت | مفاهیم پایه انواع داده‌ها در جاوااسکریپت | [انواع دادهها](./2-js-basics/1-data-types/README.md) | جاسمن |
| ۰۵ | پایه‌های JS | توابع و متدها | یادگیری توابع و متدها برای مدیریت جریان منطق برنامه | [توابع و متدها](./2-js-basics/2-functions-methods/README.md) | جاسمن و کریستوفر |
| ۰۶ | پایه‌های JS | تصمیم‌گیری با جاوااسکریپت | نحوه ایجاد شرط‌ها در کد با استفاده از روش‌های تصمیم‌گیری | [تصمیم‌گیری](./2-js-basics/3-making-decisions/README.md) | جاسمن |
| ۰۷ | پایه‌های JS | آرایه‌ها و حلقه‌ها | کار با داده‌ها با استفاده از آرایه‌ها و حلقه‌ها در جاوااسکریپت | [آرایه‌ها و حلقه‌ها](./2-js-basics/4-arrays-loops/README.md) | جاسمن |
| ۰۸ | [Terrarium](./3-terrarium/solution/README.md) | HTML در عمل | ساخت HTML برای ایجاد یک تراریوم آنلاین، با تمرکز روی ساختار صفحه | [مقدمه‌ای بر HTML](./3-terrarium/1-intro-to-html/README.md) | جن |
| ۰۹ | [Terrarium](./3-terrarium/solution/README.md) | CSS در عمل | ساخت CSS برای طراحی تراریوم آنلاین، تمرکز بر اصول CSS از جمله ریسپانسیو کردن صفحه | [مقدمه‌ای بر CSS](./3-terrarium/2-intro-to-css/README.md) | جن |
| ۱۰ | [Terrarium](./3-terrarium/solution/README.md) | کلوژرهای جاوااسکریپت، دستکاری DOM | ساخت جاوااسکریپت برای عملکرد تراریوم به صورت واسط کشیدن و رها کردن، با تمرکز بر کلوژرها و دستکاری DOM | [کلوژرهای جاوااسکریپت، دستکاری DOM](./3-terrarium/3-intro-to-DOM-and-closures/README.md) | جن |
| ۱۱ | [Typing Game](./4-typing-game/solution/README.md) | ساخت بازی تایپینگ | یادگیری استفاده از رویدادهای صفحه‌کلید برای هدایت منطق اپلیکیشن جاوااسکریپت | [برنامه‌نویسی رویدادمحور](./4-typing-game/typing-game/README.md) | کریستوفر |
| ۱۲ | [Green Browser Extension](./5-browser-extension/solution/README.md) | کار با مرورگرها | یادگیری نحوه کار مرورگرها، تاریخچه آن‌ها، و ساخت المان‌های اولیه افزونه مرورگر | [درباره مرورگرها](./5-browser-extension/1-about-browsers/README.md) | جن |
| ۱۳ | [Green Browser Extension](./5-browser-extension/solution/README.md) | ساخت فرم، فراخوانی API و ذخیره متغیرها در فضای محلی | ساخت المان‌های جاوااسکریپت افزونه مرورگر برای فراخوانی API با استفاده از متغیرهای ذخیره‌شده در فضای محلی | [APIها، فرم‌ها و فضای ذخیره محلی](./5-browser-extension/2-forms-browsers-local-storage/README.md) | جن |
| ۱۴ | [Green Browser Extension](./5-browser-extension/solution/README.md) | فرایندهای پس‌زمینه مرورگر، عملکرد وب | استفاده از فرایندهای پس‌زمینه مرورگر برای مدیریت آیکون افزونه؛ یادگیری درباره عملکرد وب و بهینه‌سازی‌های مرتبط | [کارهای پس‌زمینه و عملکرد](./5-browser-extension/3-background-tasks-and-performance/README.md) | جن |
| ۱۵ | [Space Game](./6-space-game/solution/README.md) | توسعه پیشرفته‌تر بازی با جاوااسکریپت | یادگیری وراثت با استفاده از هر دو کلاس‌ها و ترکیب و الگوی Pub/Sub، آماده‌سازی برای ساخت بازی | [مقدمه‌ای بر توسعه پیشرفته بازی](./6-space-game/1-introduction/README.md) | کریس |
| ۱۶ | [Space Game](./6-space-game/solution/README.md) | نقاشی روی بوم | یادگیری API بوم (Canvas) برای ترسیم المان‌ها روی صفحه | [نقاشی روی بوم](./6-space-game/2-drawing-to-canvas/README.md) | کریس |
| ۱۷ | [Space Game](./6-space-game/solution/README.md) | حرکت دادن المان‌ها در اطراف صفحه | کشف نحوه حرکت المان‌ها با استفاده از مختصات کارتزین و API بوم | [حرکت دادن المان‌ها](./6-space-game/3-moving-elements-around/README.md) | کریس |
| ۱۸ | [Space Game](./6-space-game/solution/README.md) | تشخیص برخورد | ایجاد برخورد بین المان‌ها و واکنش به همدیگر با استفاده از کلیدها و ارائه تابع خنک‌کننده برای تضمین عملکرد بازی | [تشخیص برخورد](./6-space-game/4-collision-detection/README.md) | کریس |
| ۱۹ | [Space Game](./6-space-game/solution/README.md) | ثبت امتیاز | انجام محاسبات ریاضی بر اساس وضعیت و عملکرد بازی | [ثبت امتیاز](./6-space-game/5-keeping-score/README.md) | کریس |
| ۲۰ | [Space Game](./6-space-game/solution/README.md) | پایان و راه‌اندازی مجدد بازی | یادگیری درباره خاتمه دادن به بازی و راه‌اندازی مجدد آن، شامل پاکسازی منابع و تنظیم مجدد مقادیر متغیر | [شرط پایان](./6-space-game/6-end-condition/README.md) | کریس |
| ۲۱ | [Banking App](./7-bank-project/solution/README.md) | قالب‌ها و مسیرها (Routes) در یک وب اپ | یادگیری چگونگی ایجاد ساختار سایت چند صفحه‌ای با استفاده از مسیرها و قالب‌های HTML | [قالب‌ها و مسیرها](./7-bank-project/1-template-route/README.md) | یوهان |
| ۲۲ | [Banking App](./7-bank-project/solution/README.md) | ساخت فرم ورود و ثبت‌نام | یادگیری ساخت فرم‌ها و مدیریت روال‌های اعتبارسنجی | [فرم‌ها](./7-bank-project/2-forms/README.md) | یوهان |
| ۲۳ | [Banking App](./7-bank-project/solution/README.md) | روش‌های دریافت و استفاده از داده‌ها | جریان داده‌ها در برنامه شما، نحوه دریافت، ذخیره و دفع آن‌ها | [دادهها](./7-bank-project/3-data/README.md) | یوهان |
| ۲۴ | [Banking App](./7-bank-project/solution/README.md) | مفاهیم مدیریت وضعیت (State) | یادگیری اینکه برنامه چگونه وضعیت خود را حفظ می‌کند و نحوه مدیریت آن به صورت برنامه‌نویسی | [مدیریت وضعیت](./7-bank-project/4-state-management/README.md) | یوهان |
| ۲۵ | [کد مرورگر/وی اس کد](../../8-code-editor) | کار با وی اس کد | یادگیری نحوه استفاده از یک ویرایشگر کد | [استفاده از ویرایشگر کد وی اس کد](./8-code-editor/1-using-a-code-editor/README.md) | کریس |
| ۲۶ | [دستیاران هوش مصنوعی](./9-chat-project/README.md) | کار با هوش مصنوعی | یادگیری ساخت دستیار هوش مصنوعی خود | [پروژه دستیار هوش مصنوعی](./9-chat-project/README.md) | کریس |
## 🏫 روش تدریس
برنامه درسی ما با در نظر گرفتن دو اصل کلیدی آموزشی طراحی شده است:
> **توجهی درباره آزمون‌ها**: همه آزمون‌ها در پوشه Quiz-app قرار دارند، در مجموع ۴۸ آزمون که هرکدام ۳ سوال دارند. آنها در [این‌جا](https://ff-quizzes.netlify.app/web/) موجود هستند و اپلیکیشن آزمون می‌تواند به صورت محلی اجرا شود یا در Azure مستقر شود؛ دستورالعمل‌ها را در پوشه `quiz-app` دنبال کنید.
## 🗃️ درسها
| | نام پروژه | مفاهیم آموزش داده شده | اهداف یادگیری | درس مرتبط | نویسنده |
| :-: | :--------------------------------------------------: | :--------------------------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------: | :---------------------: |
| ۰۱ | شروع به کار | مقدمه‌ای بر برنامه‌نویسی و ابزارهای حرفه‌ای | یادگیری مبانی اصلی اکثر زبان‌های برنامه‌نویسی و نرم‌افزاری که به توسعه‌دهندگان حرفه‌ای در انجام کارشان کمک می‌کند | [مقدمه برنامه‌نویسی و ابزارها](./1-getting-started-lessons/1-intro-to-programming-languages/README.md) | جاسمین |
| ۰۲ | شروع به کار | مبانی گیت‌هاب، شامل کار گروهی | چگونگی استفاده از گیت‌هاب در پروژه و همکاری با دیگران بر روی یک کد بیس | [مقدمه‌ای بر گیت‌هاب](./1-getting-started-lessons/2-github-basics/README.md) | فلور |
| ۰۳ | شروع به کار | دسترس‌پذیری | یادگیری اصول دسترس‌پذیری وب | [اصول دسترس‌پذیری](./1-getting-started-lessons/3-accessibility/README.md) | کریستوفر |
| ۰۴ | مبانی JS | انواع داده در جاوااسکریپت | مبانی انواع داده در جاوااسکریپت | [انواع داده](./2-js-basics/1-data-types/README.md) | جاسمین |
| ۰۵ | مبانی JS | توابع و متدها | یادگیری درباره توابع و متدها برای مدیریت جریان منطق برنامه | [توابع و متدها](./2-js-basics/2-functions-methods/README.md) | جاسمین و کریستوفر |
| ۰۶ | مبانی JS | ایجاد تصمیم با JS | یادگیری چگونگی ایجاد شرط‌ها در کد با استفاده از روش‌های تصمیم‌گیری | [تصمیم‌گیری](./2-js-basics/3-making-decisions/README.md) | جاسمین |
| ۰۷ | مبانی JS | آرایه‌ها و حلقه‌ها | کار با داده‌ها با استفاده از آرایه‌ها و حلقه‌ها در جاوااسکریپت | [آرایه‌ها و حلقه‌ها](./2-js-basics/4-arrays-loops/README.md) | جاسمین |
| ۰۸ | [ثبت‌نام تراریوم](./3-terrarium/solution/README.md) | HTML در عمل | ساخت HTML برای ایجاد یک تراریوم آنلاین، تمرکز بر ایجاد یک طرح | [مقدمه‌ای بر HTML](./3-terrarium/1-intro-to-html/README.md) | جن |
| ۰۹ | [ثبت‌نام تراریوم](./3-terrarium/solution/README.md) | CSS در عمل | ساخت CSS برای استایل‌دهی به تراریوم آنلاین، تمرکز بر اصول اولیه CSS شامل واکنش‌گرایی صفحه | [مقدمه‌ای بر CSS](./3-terrarium/2-intro-to-css/README.md) | جن |
| ۱۰ | [ثبت‌نام تراریوم](./3-terrarium/solution/README.md) | Closureهای جاوااسکریپت و کار با DOM | ساخت جاوااسکریپت برای ایجاد عملکرد در تراریوم به صورت رابط کشیدن و رها کردن، تمرکز بر Closureها و کار با DOM | [Closureهای JS و کار با DOM](./3-terrarium/3-intro-to-DOM-and-closures/README.md) | جن |
| ۱۱ | [بازی تایپ](./4-typing-game/solution/README.md) | ساخت بازی تایپ | یادگیری نحوه استفاده از رویدادهای کیبورد برای کنترل منطق برنامه جاوااسکریپت | [برنامه‌نویسی رویدادمحور](./4-typing-game/typing-game/README.md) | کریستوفر |
| ۱۲ | [افزونه سبز مرورگر](./5-browser-extension/solution/README.md) | کار با مرورگرها | یادگیری نحوه عملکرد مرورگرها، تاریخچه آنها و ساخت اولین عناصر افزونه مرورگر | [درباره مرورگرها](./5-browser-extension/1-about-browsers/README.md) | جن |
| ۱۳ | [افزونه سبز مرورگر](./5-browser-extension/solution/README.md) | ساخت فرم، فراخوانی API و ذخیره متغیرها در ذخیره محلی | ساخت عناصر جاوااسکریپت افزونه مرورگر جهت فراخوانی API با استفاده از متغیرهای ذخیره شده در ذخیره محلی | [APIها، فرم‌ها و ذخیره محلی](./5-browser-extension/2-forms-browsers-local-storage/README.md) | جن |
| ۱۴ | [افزونه سبز مرورگر](./5-browser-extension/solution/README.md) | پردازش‌های پس‌زمینه در مرورگر، عملکرد وب | استفاده از پردازش‌های پس‌زمینه مرورگر برای مدیریت آیکون افزونه؛ یادگیری درباره عملکرد وب و بهینه‌سازی‌ها برای بهبود | [کارهای پس‌زمینه و عملکرد](./5-browser-extension/3-background-tasks-and-performance/README.md) | جن |
| ۱۵ | [بازی فضا](./6-space-game/solution/README.md) | توسعه بازی پیشرفته‌تر با جاوااسکریپت | یادگیری درباره وراثت با استفاده از کلاس‌ها و ترکیب و الگوی Pub/Sub، در آماده‌سازی برای ساخت بازی | [مقدمه‌ای بر توسعه بازی پیشرفته](./6-space-game/1-introduction/README.md) | کریس |
| ۱۶ | [بازی فضا](./6-space-game/solution/README.md) | ترسیم روی بوم | یادگیری درباره API بوم (Canvas) که برای رسم عناصر روی صفحه استفاده می‌شود | [رسم روی بوم](./6-space-game/2-drawing-to-canvas/README.md) | کریس |
| ۱۷ | [بازی فضا](./6-space-game/solution/README.md) | حرکت دادن عناصر در صفحه | کشف چگونگی حرکت گرفتن عناصر با استفاده از مختصات کارتزین و API بوم | [حرکت دادن عناصر](./6-space-game/3-moving-elements-around/README.md) | کریس |
| ۱۸ | [بازی فضا](./6-space-game/solution/README.md) | تشخیص برخورد | ایجاد برخورد و واکنش عناصر به هم با استفاده از کلیدهای صفحه کلید و ارائه تابع خنک‌کننده برای اطمینان از عملکرد بازی | [تشخیص برخورد](./6-space-game/4-collision-detection/README.md) | کریس |
| ۱۹ | [بازی فضا](./6-space-game/solution/README.md) | نگه داشتن امتیاز | انجام محاسبات ریاضی بر اساس وضعیت و عملکرد بازی | [نگهداری امتیاز](./6-space-game/5-keeping-score/README.md) | کریس |
| ۲۰ | [بازی فضا](./6-space-game/solution/README.md) | پایان و راه‌اندازی مجدد بازی | یادگیری درباره پایان دادن و شروع مجدد بازی، شامل پاک‌سازی منابع و تنظیم مجدد مقادیر متغیرها | [شرط پایان](./6-space-game/6-end-condition/README.md) | کریس |
| ۲۱ | [اپلیکیشن بانکی](./7-bank-project/solution/README.md) | قالب‌های HTML و مسیرها در اپ وب | یادگیری نحوه خلق اسکلت معماری یک وبسایت چندصفحه‌ای با استفاده از مسیرها و قالب‌های HTML | [قالب‌ها و مسیرها](./7-bank-project/1-template-route/README.md) | یوهان |
| ۲۲ | [اپلیکیشن بانکی](./7-bank-project/solution/README.md) | ساخت فرم ورود و ثبت‌نام | یادگیری ساخت فرم‌ها و مدیریت روال‌های اعتبارسنجی | [فرم‌ها](./7-bank-project/2-forms/README.md) | یوهان |
| ۲۳ | [اپلیکیشن بانکی](./7-bank-project/solution/README.md) | روش‌های دریافت و استفاده از داده‌ها | چگونگی جریان داده‌ها در برنامه، نحوه دریافت، ذخیره و دور انداختن آنها | [داده](./7-bank-project/3-data/README.md) | یوهان |
| ۲۴ | [اپلیکیشن بانکی](./7-bank-project/solution/README.md) | مفاهیم مدیریت وضعیت | یادگیری چگونگی نگهداری وضعیت برنامه و مدیریت آن به صورت برنامه‌نویسی | [مدیریت وضعیت](./7-bank-project/4-state-management/README.md) | یوهان |
| ۲۵ | [کد مرورگر / وی‌اس‌کد](../../8-code-editor) | کار با وی‌اس کد | یادگیری استفاده از ویرایشگر کد| [استفاده از ویرایشگر کد وی‌اس‌کد](./8-code-editor/1-using-a-code-editor/README.md) | کریس |
| ۲۶ | [دستیارهای هوش مصنوعی](./9-chat-project/README.md) | کار با هوش مصنوعی | یادگیری ساخت دستیار هوشمند شخصی | [پروژه دستیار هوش مصنوعی](./9-chat-project/README.md) | کریس |
## 🏫 روش آموزش
برنامه درسی ما بر اساس دو اصل کلیدی آموزشی طراحی شده است:
* یادگیری مبتنی بر پروژه
* آزمون‌های مکرر
این برنامه اصول جاوااسکریپت، HTML و CSS را به همراه جدیدترین ابزارها و تکنیک‌های مورد استفاده توسعه‌دهندگان وب امروز آموزش می‌دهد. دانش‌آموزان فرصت خواهند داشت با ساخت بازی تایپینگ، تراریوم مجازی، افزونه مرورگر سازگار با محیط زیست، بازی سبک مهاجم فضایی و اپلیکیشن بانکی برای کسب‌وکارها، تجربه عملی کسب کنند. تا پایان این مجموعه، دانش‌آموزان درک محکمی از توسعه وب به‌دست خواهند آورد.
این برنامه اصول جاوااسکریپت، HTML و CSS، همچنین جدیدترین ابزارها و تکنیک‌هایی که توسعه‌دهندگان وب امروزی استفاده می‌کنند را آموزش می‌دهد. دانش‌آموزان فرصت کسب تجربه عملی با ساخت بازی تایپ، تراریوم مجازی، افزونه مرورگر دوستدار محیط زیست، بازی سبک Space Invader و اپلیکیشن بانکی برای کسب‌وکارها را خواهند داشت. تا پایان این مجموعه، دانش‌آموزان درک محکمی از توسعه وب خواهند داشت.
> 🎓 شما می‌توانید چند درس اول این برنامه درسی را بهعنوان [مسیر یادگیری](https://docs.microsoft.com/learn/paths/web-development-101/?WT.mc_id=academic-77807-sagibbon) در مایکروسافت لرن دنبال کنید!
> 🎓 می‌توانید چند درس اول این برنامه درسی را به عنوان [مسیر یادگیری](https://docs.microsoft.com/learn/paths/web-development-101/?WT.mc_id=academic-77807-sagibbon) در Microsoft Learn طی کنید!
با اطمینان از همسویی محتوا با پروژه‌ها، فرایند برای دانش‌آموزان جذاب‌تر شده و یادگیری مفاهیم بهتر حفظ می‌شود. همچنین، چند درس شروع‌کننده در پایه‌های جاوااسکریپت نوشته‌ایم تا مفاهیم را معرفی کنیم، به همراه ویدیویی از مجموعه آموزشی "[سری مبتدیان به: جاوااسکریپت](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)" برخی نویسندگان آن در این برنامه مشارکت داشته‌اند.
با تضمین هم‌راستایی محتوا با پروژه‌ها، فرآیند برای دانش‌آموزان جذاب‌تر می‌شود و حفظ مفاهیم افزایش می‌یابد. ما همچنین چند درس آغازین در مبانی جاوااسکریپت نوشتیم تا مفاهیم را معرفی کنیم، همراه با ویدیویی از مجموعه "[مجموعه مبتدیان به: جاوااسکریپت](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)" که بعضی از نویسندگان آن در این برنامه مشارکت داشته‌اند.
علاوه بر این، یک آزمون کم‌فشار پیش از کلاس، هدف‌گذاری دانش‌آموزان را برای یادگیری موضوع تنظیم می‌کند و آزمون دوم پس از کلاس باعث حفظ بیشتر مطلب می‌شود. این برنامه درسی به گونه‌ای طراحی شده که انعطاف‌پذیر و سرگرم‌کننده باشد و می‌توان آن را به‌طور کامل یا بخشی از آن را گذراند. پروژه‌ها از سطح ساده آغاز شده و در انتهای دوره ۱۲ هفته‌ای به مرور پیچیده‌تر می‌شوند.
علاوه بر این، یک آزمون ساده پیش از کلاس، قصد دانش‌آموز برای یادگیری موضوع را تعیین می‌کند، در حالی که آزمون دوم پس از کلاس، حفظ بیشتر مطلب را تضمین می‌کند. این برنامه به شکلی طراحی شده است که انعطاف‌پذیر و سرگرم‌کننده باشد و می‌توان آن را به طور کامل یا بخشی اجرا کرد. پروژه‌ها از کوچک شروع شده و تا پایان چرخه ۱۲ هفته‌ای به تدریج پیچیده‌تر می‌شوند.
در حالی که آگاهانه از معرفی فریمورک‌های جاوااسکریپت اجتناب کرده‌ایم تا بر مهارت‌های پایه‌ای لازم برای توسعه‌دهنده وب تمرکز کنیم قبل از پذیرش یک فریمورک، گام بعدی مناسب برای تکمیل این برنامه یادگیری Node.js از طریق مجموعه ویدیوهای دیگر است: "[سری مبتدیان به: Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)".
در حالی که ما عمداً از معرفی چارچوب‌های جاوااسکریپت اجتناب کرده‌ایم تا روی مهارت‌های پایه‌ای لازم برای توسعه‌دهنده وب تمرکز کنیم، گام بعدی خوب برای تکمیل این برنامه، یادگیری Node.js از طریق مجموعه ویدیوهای دیگر است: "[مجموعه مبتدیان به: Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)".
> از [کد رفتار](CODE_OF_CONDUCT.md) و [راهنمای مشارکت](CONTRIBUTING.md) ما دیدن کنید. بازخورد سازنده شما را خوشامد می‌گوییم!
> به [قانون رفتاری](CODE_OF_CONDUCT.md) و [راهنمای مشارکت](CONTRIBUTING.md) ما مراجعه کنید. ما بازخورد سازنده شما را استقبال می‌کنیم!
## 🧭 دسترسی آفلاین
شما می‌توانید این مستندات را به صورت آفلاین با استفاده از [Docsify](https://docsify.js.org/#/) اجرا کنید. این مخزن را فورک کنید، [Docsify را نصب کنید](https://docsify.js.org/#/quickstart) روی دستگاه محلی خود، و سپس در پوشه ریشه این مخزن دستور `docsify serve` را وارد نمایید. وب‌سایت روی پورت ۳۰۰۰ در لوکال‌هاست شما قابل دسترس خواهد بود: `localhost:3000`.
شما می‌توانید این مستندات را به صورت آفلاین با استفاده از [Docsify](https://docsify.js.org/#/) اجرا کنید. این مخزن را فورک کنید، [Docsify را نصب کنید](https://docsify.js.org/#/quickstart) روی ماشین محلی خود، و سپس در پوشه اصلی این مخزن، فرمان `docsify serve` را اجرا کنید. وب‌سایت روی پورت ۳۰۰۰ در لوکال‌هاست شما عرضه خواهد شد: `localhost:3000`.
## 📘 PDF
## 📘 پی‌دی‌اف
یک فایل PDF از تمام دروس را می‌توانید [در اینجا](https://microsoft.github.io/Web-Dev-For-Beginners/pdf/readme.pdf) بیابید.
یک فایل PDF از تمام درسها را می‌توانید [اینجا](https://microsoft.github.io/Web-Dev-For-Beginners/pdf/readme.pdf) پیدا کنید.
## 🎒 دوره‌های دیگر
تیم ما دوره‌های دیگری هم تولید می‌کند! نگاهی بیندازید به:
تیم ما دوره‌های دیگری نیز تولید می‌کند! مشاهده کنید:
<!-- CO-OP TRANSLATOR OTHER COURSES START -->
### 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)
[![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin)
---
### Azure / Edge / MCP / Agents
@ -220,16 +207,16 @@
[![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)
---
### سری هوش مصنوعی مولد
### Generative AI Series
[![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)
---
### آموزش پایه‌ای
### Core Learning
[![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)
@ -239,8 +226,8 @@
[![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 Series
[![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)
@ -248,21 +235,21 @@
## دریافت کمک
اگر گیر کردید یا سوالی درباره ساخت برنامه‌های هوش مصنوعی داشتید، به دیگر یادگیرندگان و توسعه‌دهندگان باتجربه در بحث‌های مربوط به MCP بپیوندید. این یک جامعه حمایتی است که در آن سوالات پذیرفته شده و دانش به صورت آزاد به اشتراک گذاشته می‌شود.
اگر در ساخت برنامه‌های هوش مصنوعی به مشکل خوردید یا سوالی داشتید، به جمع یادگیرندگان و توسعه‌دهندگان با تجربه در بحث‌های 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) مراجعه کنید.
این مخزن تحت مجوز MIT است. برای اطلاعات بیشتر فایل [LICENSE](../../LICENSE) را ببینید.
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**توضیح مهم**:
این سند با استفاده از خدمات ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما برای دقت تلاش می‌کنیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است شامل خطاها یا نادرستی‌هایی باشند. سند اصلی به زبان بومی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، ترجمه حرفه‌ای انسانی توصیه می‌شود. ما مسئول هیچ گونه سوتفاهم یا تفسیر اشتباه ناشی از استفاده از این ترجمه نیستیم.
این سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما تلاش می‌کنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است شامل خطاها یا نواقصی باشد. سند اصلی به زبان اصلی خود باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، ترجمه انسانی حرفه‌ای توصیه می‌شود. ما مسئول هیچ گونه سوتفاهم یا برداشت نادرست ناشی از استفاده از این ترجمه نیستیم.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -493,7 +493,7 @@
},
"AGENTS.md": {
"original_hash": "a362efd06d64d4134a0cfe8515a86d34",
"translation_date": "2025-10-03T11:14:06+00:00",
"translation_date": "2026-02-06T07:31:45+00:00",
"source_file": "AGENTS.md",
"language_code": "ru"
},
@ -516,8 +516,8 @@
"language_code": "ru"
},
"README.md": {
"original_hash": "490c83786552d7fab6390991517bef09",
"translation_date": "2026-01-29T17:36:01+00:00",
"original_hash": "805cd399757df19e886e86f0891a1374",
"translation_date": "2026-02-06T07:26:47+00:00",
"source_file": "README.md",
"language_code": "ru"
},

@ -2,53 +2,53 @@
## Обзор проекта
Это репозиторий образовательной программы для обучения основам веб-разработки для начинающих. Программа представляет собой комплексный 12-недельный курс, разработанный Microsoft Cloud Advocates, и включает 24 практических урока, охватывающих JavaScript, CSS и HTML.
Это образовательный репозиторий для изучения основ веб-разработки для начинающих. Учебная программа представляет собой всесторонний 12-недельный курс, разработанный Microsoft Cloud Advocates, включающий 24 практических урока по JavaScript, CSS и HTML.
### Основные компоненты
- **Образовательный контент**: 24 структурированных урока, организованных в проектные модули
- **Практические проекты**: Террариум, Игра на скорость набора текста, Расширение для браузера, Космическая игра, Банковское приложение, Редактор кода и AI-чат-ассистент
- **Интерактивные викторины**: 48 викторин по 3 вопроса каждая (оценка до и после урока)
- **Поддержка нескольких языков**: Автоматический перевод на более чем 50 языков с помощью GitHub Actions
- **Технологии**: HTML, CSS, JavaScript, Vue.js 3, Vite, Node.js, Express, Python (для AI-проектов)
- **Практические проекты**: Террариум, Игра на скорость печати, Расширение для браузера, Космическая игра, Банковское приложение, Редактор кода и AI чат-ассистент
- **Интерактивные викторины**: 48 викторин по 3 вопроса каждая (до и после урока)
- **Поддержка нескольких языков**: Автоматизированный перевод более чем на 50 языков с помощью GitHub Actions
- **Технологии**: HTML, CSS, JavaScript, Vue.js 3, Vite, Node.js, Express, Python (для AI проектов)
### Архитектура
- Образовательный репозиторий с уроками, организованными по структуре
- Каждая папка урока содержит README, примеры кода и решения
- Образовательный репозиторий со структурой на основе уроков
- Каждый каталог урока содержит README, примеры кода и решения
- Отдельные проекты в отдельных директориях (quiz-app, различные проекты уроков)
- Система перевода с использованием GitHub Actions (co-op-translator)
- Документация предоставляется через Docsify и доступна в формате PDF
- Документация подается через Docsify и доступна в PDF
## Команды для настройки
Этот репозиторий предназначен в первую очередь для потребления образовательного контента. Для работы с конкретными проектами:
Этот репозиторий предназначен преимущественно для изучения контента. Для работы с конкретными проектами:
### Настройка основного репозитория
### Основная настройка репозитория
```bash
git clone https://github.com/microsoft/Web-Dev-For-Beginners.git
cd Web-Dev-For-Beginners
```
### Настройка приложения викторин (Vue 3 + Vite)
### Настройка Quiz App (Vue 3 + Vite)
```bash
cd quiz-app
npm install
npm run dev # Start development server
npm run build # Build for production
npm run lint # Run ESLint
npm run dev # Запустить сервер разработки
npm run build # Сборка для продакшена
npm run lint # Запустить ESLint
```
### API для банковского проекта (Node.js + Express)
### API банковского проекта (Node.js + Express)
```bash
cd 7-bank-project/api
npm install
npm start # Start API server
npm run lint # Run ESLint
npm run format # Format with Prettier
npm start # Запустить API сервер
npm run lint # Запустить ESLint
npm run format # Отформатировать с помощью Prettier
```
### Проекты расширений для браузера
@ -56,7 +56,7 @@ npm run format # Format with Prettier
```bash
cd 5-browser-extension/solution
npm install
# Follow browser-specific extension loading instructions
# Следуйте инструкциям по загрузке расширений, специфичным для браузера
```
### Проекты космической игры
@ -64,7 +64,7 @@ npm install
```bash
cd 6-space-game/solution
npm install
# Open index.html in browser or use Live Server
# Откройте index.html в браузере или используйте Live Server
```
### Проект чата (Python Backend)
@ -72,189 +72,189 @@ npm install
```bash
cd 9-chat-project/solution/backend/python
pip install openai
# Set GITHUB_TOKEN environment variable
# Установите переменную окружения GITHUB_TOKEN
python api.py
```
## Рабочий процесс разработки
### Для контрибьюторов контента
### Для контентных участников
1. **Сделайте форк репозитория** в свой аккаунт GitHub
2. **Клонируйте свой форк** локально
3. **Создайте новую ветку** для ваших изменений
1. **Форкните репозиторий** на ваш аккаунт GitHub
2. **Клонируйте форк** локально
3. **Создайте новую ветку** для изменений
4. Внесите изменения в контент уроков или примеры кода
5. Протестируйте изменения кода в соответствующих директориях проектов
6. Отправьте pull request, следуя руководству по внесению изменений
5. Протестируйте любые изменения кода в соответствующих каталогах проектов
6. Отправляйте pull requests согласно руководству по вкладу
### Для учащихся
1. Сделайте форк или клонируйте репозиторий
2. Последовательно переходите по директориям уроков
3. Читайте файлы README для каждого урока
4. Проходите викторины перед уроком на https://ff-quizzes.netlify.app/web/
5. Работайте с примерами кода в папках уроков
1. Форкните или клонируйте репозиторий
2. Последовательно переходите по каталогам уроков
3. Читайте README файлы каждого урока
4. Выполняйте предварительные викторины на https://ff-quizzes.netlify.app/web/
5. Прорабатывайте примеры кода в каталогах уроков
6. Выполняйте задания и вызовы
7. Проходите викторины после урока
7. Проходите итоговые викторины
### Живая разработка
### Онлайн разработка
- **Документация**: Запустите `docsify serve` в корневой директории (порт 3000)
- **Приложение викторин**: Запустите `npm run dev` в директории quiz-app
- **Проекты**: Используйте расширение Live Server в VS Code для HTML-проектов
- **API-проекты**: Запустите `npm start` в соответствующих директориях API
- **Документация**: Запустите `docsify serve` в корне (порт 3000)
- **Quiz App**: Запустите `npm run dev` в каталоге quiz-app
- **Проекты**: Используйте расширение VS Code Live Server для HTML-проектов
- **API проекты**: Запустите `npm start` в соответствующих API каталогах
## Инструкции по тестированию
### Тестирование приложения викторин
### Тестирование Quiz App
```bash
cd quiz-app
npm run lint # Check for code style issues
npm run build # Verify build succeeds
npm run lint # Проверить проблемы со стилем кода
npm run build # Проверить успешность сборки
```
### Тестирование API для банка
### Тестирование Bank API
```bash
cd 7-bank-project/api
npm run lint # Check for code style issues
node server.js # Verify server starts without errors
npm run lint # Проверить наличие проблем со стилем кода
node server.js # Проверить, что сервер запускается без ошибок
```
### Общий подход к тестированию
- Это образовательный репозиторий без полного набора автоматических тестов
- Это образовательный репозиторий без комплексного автоматизированного тестирования
- Ручное тестирование включает:
- Проверку выполнения примеров кода без ошибок
- Проверку работы ссылок в документации
- Успешную сборку проектов
- Соответствие примеров лучшим практикам
- Примеры кода работают без ошибок
- Ссылки в документации корректны
- Сборка проектов проходит успешно
- Примеры соответствуют лучшим практикам
### Проверки перед отправкой
- Запустите `npm run lint` в директориях с package.json
- Убедитесь, что ссылки в markdown корректны
- Протестируйте примеры кода в браузере или Node.js
- Проверьте, что структура переводов сохранена
- Запустите `npm run lint` в каталогах с package.json
- Проверьте корректность markdown-ссылок
- Тестируйте примеры кода в браузере или Node.js
- Убедитесь, что переводы сохраняют правильную структуру
## Руководство по стилю кода
### JavaScript
- Используйте современный синтаксис ES6+
- Следуйте стандартным конфигурациям ESLint, предоставленным в проектах
- Соблюдайте стандартные конфигурации ESLint, предоставленные в проектах
- Используйте осмысленные имена переменных и функций для образовательной ясности
- Добавляйте комментарии для объяснения концепций учащимся
- Форматируйте код с помощью Prettier, если он настроен
- Добавляйте комментарии, объясняющие концепции для учащихся
- Форматируйте код с помощью Prettier, где настроено
### HTML/CSS
- Семантические элементы HTML5
- Принципы адаптивного дизайна
- Понятные соглашения по именованию классов
- Комментарии для объяснения CSS-техник учащимся
- Четкие соглашения по именованию классов
- Комментарии, объясняющие CSS-техники для учащихся
### Python
- Руководство по стилю PEP 8
- Понятные, образовательные примеры кода
- Подсказки типов, где это полезно для обучения
- Соблюдение руководства по стилю PEP 8
- Четкие, обучающие примеры кода
- Использование аннотаций типов, где полезно для обучения
### Документация в Markdown
### Документация Markdown
- Четкая иерархия заголовков
- Блоки кода с указанием языка
- Ссылки на дополнительные ресурсы
- Скриншоты и изображения в директориях `images/`
- Альтернативный текст для изображений для доступности
- Скриншоты и изображения в папках `images/`
- Атрибут alt для изображений для доступности
### Организация файлов
- Уроки пронумерованы последовательно (1-getting-started-lessons, 2-js-basics и т.д.)
- Каждый проект имеет директории `solution/` и часто `start/` или `your-work/`
- Изображения хранятся в папках `images/`, относящихся к конкретным урокам
- Уроки нумеруются последовательно (1-getting-started-lessons, 2-js-basics и т.д.)
- Каждый проект имеет каталоги `solution/` и часто `start/` или `your-work/`
- Изображения хранятся в папках `images/`, связанных с уроком
- Переводы находятся в структуре `translations/{language-code}/`
## Сборка и развертывание
## Сборка и деплой
### Развертывание приложения викторин (Azure Static Web Apps)
### Деплой Quiz App (Azure Static Web Apps)
Приложение quiz-app настроено для развертывания в Azure Static Web Apps:
Quiz-app настроен для деплоя в Azure Static Web Apps:
```bash
cd quiz-app
npm run build # Creates dist/ folder
# Deploys via GitHub Actions workflow on push to main
npm run build # Создает папку dist/
# Выполняет развертывание через рабочий процесс GitHub Actions при пуше в ветку main
```
Конфигурация Azure Static Web Apps:
- **Расположение приложения**: `/quiz-app`
- **Расположение выходных данных**: `dist`
- **Рабочий процесс**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
- **Выходная папка**: `dist`
- **Workflow**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
### Генерация документации в формате PDF
### Генерация PDF документации
```bash
npm install # Install docsify-to-pdf
npm run convert # Generate PDF from docs
npm install # Установить docsify-to-pdf
npm run convert # Создать PDF из docs
```
### Документация Docsify
```bash
npm install -g docsify-cli # Install Docsify globally
docsify serve # Serve on localhost:3000
npm install -g docsify-cli # Установите Docsify глобально
docsify serve # Запуск на localhost:3000
```
### Сборка для конкретных проектов
### Сборка по проектам
Каждая директория проекта может иметь собственный процесс сборки:
- Проекты на Vue: `npm run build` создает производственные сборки
- Статические проекты: Сборка не требуется, файлы можно использовать напрямую
Каждый каталог проекта может иметь собственный процесс сборки:
- Vue проекты: `npm run build` создает продакшн-бандлы
- Статические проекты: нет шага сборки, файлы подаются напрямую
## Руководство по Pull Request
### Формат заголовков
### Формат заголовка
Используйте четкие, описательные заголовки, указывающие область изменений:
Используйте ясные, описательные заголовки, указывающие область изменений:
- `[Quiz-app] Добавить новую викторину для урока X`
- `[Lesson-3] Исправить опечатку в проекте террариума`
- `[Translation] Добавить перевод на испанский для урока 5`
- `[Docs] Обновить инструкции по настройке`
- `[Translation] Добавить испанский перевод для урока 5`
- `[Docs] Обновить инструкции по установке`
### Обязательные проверки
Перед отправкой PR:
1. **Качество кода**:
- Запустите `npm run lint` в затронутых директориях проекта
- Исправьте все ошибки и предупреждения линтинга
- Запустите `npm run lint` в затронутых каталогах проектов
- Исправьте все ошибки и предупреждения
2. **Проверка сборки**:
- Запустите `npm run build`, если применимо
- Убедитесь в отсутствии ошибок сборки
3. **Проверка ссылок**:
- Проверьте все ссылки в markdown
- Убедитесь, что ссылки на изображения работают
- Проверьте все markdown-ссылки
- Убедитесь в работоспособности ссылок на изображения
4. **Рецензия контента**:
4. **Проверка содержимого**:
- Проверьте орфографию и грамматику
- Убедитесь, что примеры кода корректны и образовательны
- Проверьте, что переводы сохраняют исходный смысл
### Требования к контрибьюторам
### Требования к вкладу
- Согласие с Microsoft CLA (автоматическая проверка при первом PR)
- Следование [Кодексу поведения Microsoft Open Source](https://opensource.microsoft.com/codeofconduct/)
- См. [CONTRIBUTING.md](./CONTRIBUTING.md) для подробных инструкций
- Укажите номера задач в описании PR, если применимо
- Соблюдение [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
- Подробные инструкции в [CONTRIBUTING.md](./CONTRIBUTING.md)
- Ссылки на номера задач в описании PR, если применимо
### Процесс рецензии
### Процесс ревью
- PR рецензируются мейнтейнерами и сообществом
- Приоритет отдается образовательной ясности
- Приоритет на образовательную ясность
- Примеры кода должны соответствовать современным лучшим практикам
- Переводы проверяются на точность и культурную уместность
@ -262,21 +262,21 @@ docsify serve # Serve on localhost:3000
### Автоматический перевод
- Использует GitHub Actions с рабочим процессом co-op-translator
- Автоматически переводит на более чем 50 языков
- Исходные файлы находятся в основных директориях
- Переведенные файлы находятся в директориях `translations/{language-code}/`
- Используются GitHub Actions с воркфлоу co-op-translator
- Автоматический перевод на более чем 50 языков
- Исходные файлы в основных каталогах
- Переводы в директориях `translations/{language-code}/`
### Добавление улучшений в переводы вручную
### Добавление ручных улучшений перевода
1. Найдите файл в `translations/{language-code}/`
2. Внесите улучшения, сохраняя структуру
3. Убедитесь, что примеры кода остаются функциональными
3. Убедитесь, что примеры кода остаются работоспособными
4. Протестируйте локализованный контент викторин
### Метаданные перевода
Переведенные файлы включают заголовок метаданных:
Переведенные файлы содержат заголовок с метаданными:
```markdown
<!--
CO_OP_TRANSLATOR_METADATA:
@ -289,118 +289,120 @@ CO_OP_TRANSLATOR_METADATA:
-->
```
## Отладка и устранение неполадок
## Отладка и устранение неисправностей
### Частые проблемы
### Распространённые проблемы
**Приложение викторин не запускается**:
**Quiz app не запускается**:
- Проверьте версию Node.js (рекомендуется v14+)
- Удалите `node_modules` и `package-lock.json`, выполните `npm install` снова
- Проверьте конфликты портов (по умолчанию: Vite использует порт 5173)
- Удалите `node_modules` и `package-lock.json`, выполните `npm install` заново
- Проверьте конфликты портов (по умолчанию Vite использует порт 5173)
**Сервер API не запускается**:
- Убедитесь, что версия Node.js соответствует минимальным требованиям (node >=10)
- Проверьте, не занят ли порт
- Убедитесь, что все зависимости установлены с помощью `npm install`
**API сервер не стартует**:
- Убедитесь, что версия Node.js удовлетворяет минимальному требованию (node >=10)
- Проверьте, не занят ли порт другим процессом
- Убедитесь, что все зависимости установлены (`npm install`)
**Расширение для браузера не загружается**:
- Проверьте, правильно ли отформатирован manifest.json
- Проверьте консоль браузера на наличие ошибок
- Следуйте инструкциям по установке расширений для конкретного браузера
- Проверьте правильность форматирования manifest.json
- Проверьте консоль браузера на ошибки
- Следуйте инструкциям установки расширений для вашего браузера
**Проблемы с проектом чата на Python**:
- Убедитесь, что установлен пакет OpenAI: `pip install openai`
- Проверьте, установлен ли переменная окружения GITHUB_TOKEN
- Проверьте доступ к моделям GitHub
**Проблемы с Python чат-проектом**:
- Проверьте, установлен ли пакет OpenAI: `pip install openai`
- Проверьте, что установлен переменная окружения GITHUB_TOKEN
- Проверьте права доступа к GitHub Models
**Docsify не обслуживает документацию**:
- Установите docsify-cli глобально: `npm install -g docsify-cli`
- Запустите из корневой директории репозитория
- Убедитесь, что файл `docs/_sidebar.md` существует
- Запускайте из корневой директории репозитория
- Проверьте, что существует `docs/_sidebar.md`
### Советы по настройке среды разработки
### Советы по рабочей среде
- Используйте VS Code с расширением Live Server для HTML-проектов
- Установите расширения ESLint и Prettier для консистентного форматирования
- Используйте инструменты разработчика браузера для отладки JavaScript
- Для проектов на Vue установите расширение Vue DevTools для браузера
- Устанавливайте ESLint и Prettier для единообразного форматирования
- Используйте DevTools браузера для отладки JavaScript
- Для Vue-проектов установите расширение Vue DevTools для браузера
### Учет производительности
### Особенности производительности
- Большое количество переведенных файлов (50+ языков) увеличивает размер полного клона
- Используйте поверхностный клон, если работаете только с контентом: `git clone --depth 1`
- Исключите переводы из поиска, если работаете с английским контентом
- Процессы сборки могут быть медленными при первом запуске (npm install, Vite build)
- Большое количество переводов (50+ языков) делает полное клонирование большим
- Используйте поверхностное клонирование, если работаете только с контентом: `git clone --depth 1`
- Исключайте переводы из поиска при работе с английским контентом
- Процессы сборки могут быть медленными при первом запуске (npm install, сборка Vite)
## Соображения безопасности
## Вопросы безопасности
### Переменные окружения
- Ключи API никогда не должны быть добавлены в репозиторий
- Используйте `.env` файлы (уже добавлены в `.gitignore`)
- Ключи API не должны попадать в репозиторий
- Используйте файлы `.env` (уже в `.gitignore`)
- Документируйте необходимые переменные окружения в README проектов
### Проекты на Python
### Python проекты
- Используйте виртуальные окружения: `python -m venv venv`
- Обновляйте зависимости
- Следите за обновлением зависимостей
- Токены GitHub должны иметь минимально необходимые разрешения
### Доступ к моделям GitHub
### Доступ к GitHub Models
- Для моделей GitHub требуются персональные токены доступа (PAT)
- Токены должны храниться как переменные окружения
- Никогда не добавляйте токены или учетные данные в репозиторий
- Для GitHub Models требуется Personal Access Tokens (PAT)
- Токены должны сохраняться в переменных окружения
- Никогда не коммитьте токены или учётные данные
## Дополнительные заметки
### Целевая аудитория
- Полные новички в веб-разработке
- Студенты и самоучки
- Преподаватели, использующие программу в классах
- Контент разработан с учетом доступности и постепенного наращивания навыков
- Студенты и самостоятельные учащиеся
- Преподаватели, использующие программу в классе
- Контент разработан с учетом доступности и постепенного развития навыков
### Образовательная философия
- Проектно-ориентированный подход к обучению
- Частые проверки знаний (викторины)
- Практические упражнения по программированию
- Примеры реального применения
- Фокус на основах перед изучением фреймворков
- Практические задания по программированию
- Примеры для реальных применений
- Акцент на фундаментальные знания перед фреймворками
### Поддержка репозитория
- Активное сообщество учащихся и контрибьюторов
- Регулярные обновления зависимостей и контента
- Мониторинг задач и обсуждений мейнтейнерами
- Автоматическое обновление переводов через GitHub Actions
- Мониторинг вопросов и обсуждений мейнтейнерами
- Автоматизация обновлений переводов через GitHub Actions
### Связанные ресурсы
- [Модули Microsoft Learn](https://docs.microsoft.com/learn/)
- [Microsoft Learn модули](https://docs.microsoft.com/learn/)
- [Ресурсы Student Hub](https://docs.microsoft.com/learn/student-hub/)
- [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) рекомендуется для учащихся
- Дополнительные курсы: Генеративный ИИ, Data Science, ML, IoT
- [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) рекомендован для учащихся
- Дополнительные курсы: Generative AI, Data Science, ML, IoT учебные программы
### Работа с конкретными проектами
Для подробных инструкций по отдельным проектам обратитесь к файлам README в:
- `quiz-app/README.md` - Приложение викторин на Vue 3
- `7-bank-project/README.md` - Банковское приложение с аутентификацией
- `5-browser-extension/README.md` - Разработка расширений для браузера
- `6-space-game/README.md` - Разработка игры на Canvas
- `9-chat-project/README.md` - Проект AI-чат-ассистента
Для подробных инструкций по отдельным проектам смотрите README файлы в:
- `quiz-app/README.md` - Vue 3 приложение викторины
- `7-bank-project/README.md` - банковское приложение с аутентификацией
- `5-browser-extension/README.md` - разработка расширения для браузера
- `6-space-game/README.md` - разработка игры на Canvas
- `9-chat-project/README.md` - проект AI чат-ассистента
### Структура монорепозитория
Хотя это не традиционный монорепозиторий, данный репозиторий содержит несколько независимых проектов:
- Каждый урок является автономным
Хотя это не традиционный монорепозиторий, репозиторий содержит несколько независимых проектов:
- Каждый урок автономен
- Проекты не разделяют зависимости
- Работа над отдельными проектами не влияет на другие
- Клонируйте весь репозиторий для полного изучения программы
- Работа с отдельными проектами без влияния на остальные
- Клонируйте весь репозиторий для полного опыта обучения
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Отказ от ответственности**:
Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода.
Этот документ был переведен с помощью сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия обеспечить точность, пожалуйста, учитывайте, что автоматический перевод может содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для важной информации рекомендуется обращаться к профессиональному переводу, выполненному человеком. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -10,112 +10,112 @@
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
# Веб-разработка для начинающих — учебный курс
# Веб-разработка для начинающих - учебная программа
Изучите основы веб-разработки с помощью нашего 12-недельного всестороннего курса от Microsoft Cloud Advocates. Каждое из 24 занятий посвящено JavaScript, CSS и HTML через практические проекты, такие как террариумы, расширения браузера и космические игры. Участвуйте в викторинах, обсуждениях и практических заданиях. Повышайте свои навыки и оптимизируйте усвоение знаний с помощью нашей эффективной методики обучения на основе проектов. Начните свое путешествие в программировании уже сегодня!
Изучите основы веб-разработки с нашим 12-недельным комплексным курсом от Microsoft Cloud Advocates. Каждое из 24 занятий подробно рассматривает JavaScript, CSS и HTML через практические проекты, такие как террариумы, расширения для браузера и космические игры. Участвуйте в викторинах, обсуждениях и практических заданиях. Повышайте свои навыки и оптимизируйте усвоение знаний благодаря нашей эффективной педагогике, основанной на проектах. Начните своё путешествие в кодирование уже сегодня!
Присоединяйтесь к сообществу Azure AI Foundry в Discord
Присоединяйтесь к сообществу Discord Azure AI Foundry
[![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)
Выполните следующие шаги, чтобы начать использовать эти ресурсы:
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)
3. [**Присоединяйтесь к Discord Azure AI Foundry и встречайтесь с экспертами и другими разработчиками**](https://discord.com/invite/ByRwuEEgH4)
### 🌐 Поддержка нескольких языков
#### Поддерживается через GitHub Action (автоматически и всегда актуально)
#### Поддержка через GitHub Action (Автоматическая и всегда актуальная)
<!-- CO-OP TRANSLATOR LANGUAGES TABLE START -->
[Арабский](../ar/README.md) | [Бенгальский](../bn/README.md) | [Болгарский](../bg/README.md) | [Бирманский (Мьянма)](../my/README.md) | [Китайский (упрощённый)](../zh-CN/README.md) | [Китайский (традиционный, Гонконг)](../zh-HK/README.md) | [Китайский (традиционный, Макао)](../zh-MO/README.md) | [Китайский (традиционный, Тайвань)](../zh-TW/README.md) | [Хорватский](../hr/README.md) | [Чешский](../cs/README.md) | [Датский](../da/README.md) | [Нидерландский](../nl/README.md) | [Эстонский](../et/README.md) | [Финский](../fi/README.md) | [Французский](../fr/README.md) | [Немецкий](../de/README.md) | [Греческий](../el/README.md) | [Иврит](../he/README.md) | [Хинди](../hi/README.md) | [Венгерский](../hu/README.md) | [Индонезийский](../id/README.md) | [Итальянский](../it/README.md) | [Японский](../ja/README.md) | [Каннада](../kn/README.md) | [Корейский](../ko/README.md) | [Литовский](../lt/README.md) | [Малайский](../ms/README.md) | [Малаялам](../ml/README.md) | [Маратхи](../mr/README.md) | [Непальский](../ne/README.md) | [Нигерийский пиджин](../pcm/README.md) | [Норвежский](../no/README.md) | [Персидский (Фарси)](../fa/README.md) | [Польский](../pl/README.md) | [Португальский (Бразилия)](../pt-BR/README.md) | [Португальский (Португалия)](../pt-PT/README.md) | [Пенджаби (Гурмукхи)](../pa/README.md) | [Румынский](../ro/README.md) | [Русский](./README.md) | [Сербский (кириллица)](../sr/README.md) | [Словацкий](../sk/README.md) | [Словенский](../sl/README.md) | [Испанский](../es/README.md) | [Суахили](../sw/README.md) | [Шведский](../sv/README.md) | [Тагалог (филиппинский)](../tl/README.md) | [Тамильский](../ta/README.md) | [Телугу](../te/README.md) | [Тайский](../th/README.md) | [Турецкий](../tr/README.md) | [Украинский](../uk/README.md) | [Урду](../ur/README.md) | [Вьетнамский](../vi/README.md)
[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-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](../kn/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)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](./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 языковых переводов, что значительно увеличивает размер загрузки. Чтобы клонировать без переводов, используйте sparse checkout:
> Этот репозиторий включает более 50 переводов на разные языки, что значительно увеличивает размер загрузки. Чтобы клонировать без переводов, используйте sparse checkout:
> ```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'
> ```
> Это предоставит вам всё необходимое для прохождения курса с гораздо более быстрой загрузкой.
> Это даст вам всё необходимое для прохождения курса с гораздо более быстрой загрузкой.
<!-- CO-OP TRANSLATOR LANGUAGES TABLE END -->
**Если вы хотите добавить поддержку дополнительных языков, они перечислены [здесь](https://github.com/Azure/co-op-translator/blob/main/getting_started/supported-languages.md)**
**Если вы хотите, чтобы были добавлены дополнительные языки, поддерживаемые языки перечислены [здесь](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)
[![Open in Visual Studio Code](https://img.shields.io/static/v1?logo=visualstudiocode&label=&message=Открыть%20в%20Visual%20Studio%20Code&labelColor=2c2c32&color=007acc&logoColor=007acc)](https://open.vscode.dev/microsoft/Web-Dev-For-Beginners)
#### 🧑‍🎓 _Вы студент?_
Посетите [**страницу Student Hub**](https://docs.microsoft.com/learn/student-hub/?WT.mc_id=academic-77807-sagibbon), где вы найдете ресурсы для начинающих, студенческие пакеты и даже способы получения бесплатного ваучера на сертификат. Это страница, которую стоит добавить в закладки и периодически проверять, так как мы ежемесячно обновляем контент.
Посетите [**страницу Student Hub**](https://docs.microsoft.com/learn/student-hub/?WT.mc_id=academic-77807-sagibbon), где вы найдёте ресурсы для начинающих, студенческие пакеты и даже способы получить бесплатный ваучер на сертификат. Это страница, которую стоит добавить в закладки и периодически проверять, так как мы меняем содержимое ежемесячно.
### 📣 Объявление — Новые задания в режиме GitHub Copilot Agent!
### 📣 Объявление — новые вызовы в режиме агента GitHub Copilot!
Добавлено новое задание — найдите "GitHub Copilot Agent Challenge 🚀" в большинстве глав. Это новое задание, которое вы можете выполнить с использованием GitHub Copilot и режима Agent. Если вы еще не использовали режим Agent, он позволяет не только генерировать текст, но и создавать и редактировать файлы, выполнять команды и многое другое.
Добавлен новый вызов, ищите "GitHub Copilot Agent Challenge 🚀" в большинстве глав. Это новый вызов, который вам предстоит выполнить, используя GitHub Copilot и режим агента. Если вы раньше не использовали режим агента, он не только генерирует текст, но и может создавать и редактировать файлы, запускать команды и многое другое.
### 📣 Объявление — _Новый проект с использованием генеративного ИИ_
Добавлен новый проект AI Assistant, посмотрите [проект](./9-chat-project/README.md)
### 📣 Объявление — _Новый учебный курс_ по генеративному ИИ для JavaScript только что выпущен
### 📣 Объявление — _Новая учебная программа_ по генеративному ИИ для JavaScript только что выпущена
Не пропустите наш новый курс по генеративному ИИ!
Не пропустите нашу новую учебную программу по генеративному ИИ!
Начать можно по ссылке: [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course)
Посетите [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course), чтобы начать!
![Background](../../translated_images/ru/background.148a8d43afde5730.webp)
- Уроки, охватывающие всё от основ до RAG.
- Взаимодействуйте с историческими персонажами с помощью GenAI и нашего сопутствующего приложения.
- Весёлый и захватывающий нарратив, вы будете путешествовать во времени!
- Взаимодействуйте с историческими персонажами с помощью генAI и нашего сопутствующего приложения.
- Весёлый и увлекательный повествовательный стиль, вы будете путешествовать во времени!
![character](../../translated_images/ru/character.5c0dd8e067ffd693.webp)
Каждый урок включает задание, проверку знаний и вызов, которые помогут вам освоить темы, такие как:
- Формулировка запросов и их оптимизация
- Создание текстовых и визуальных приложений
Каждый урок включает задание для выполнения, проверку знаний и вызов для освоения таких тем, как:
- Формулирование запросов и проектирование запросов
- Генерация текстовых и графических приложений
- Поисковые приложения
Начать можно по ссылке: [https://aka.ms/genai-js-course](../../[https:/aka.ms/genai-js-course)!
Посетите [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)!
> **Учителя**, мы включили [некоторые предложения](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://aka.ms/student-page/?WT.mc_id=academic-77807-sagibbon)**, для каждого урока начните с предварительной викторины, затем читайте учебный материал, выполняйте различные задания и проверяйте свои знания с помощью послесессионной викторины.
Для улучшения вашего учебного опыта подключайтесь к вашим сокурсникам для совместной работы над проектами! Обсуждения приветствуются в нашем [форуме обсуждений](https://github.com/microsoft/Web-Dev-For-Beginners/discussions), где команда модераторов будет доступна для ответов на ваши вопросы.
Чтобы улучшить свой опыт обучения, общайтесь с товарищами по учебе и работайте над проектами вместе! Обсуждения приветствуются в нашем [форуме обсуждений](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) для получения дополнительных учебных материалов.
Для дальнейшего обучения мы настоятельно рекомендуем изучать [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).
Эта учебная программа уже готова к работе в среде разработки! В начале вы можете выбрать запуск курса в [Codespace](https://github.com/features/codespaces/) (_среда, работающая в браузере без необходимости установки_), или локально на компьютере с помощью текстового редактора, такого как [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon).
#### Создайте ваш репозиторий
Чтобы легко сохранять свою работу, рекомендуем создать собственную копию этого репозитория. Вы можете сделать это, нажав кнопку **Use this template** вверху страницы. Это создаст новый репозиторий в вашем аккаунте GitHub с копией курса.
#### Создайте свой репозиторий
Чтобы удобно сохранять свою работу, рекомендуем создать собственную копию этого репозитория. Для этого нажмите кнопку **Use this template** в верхней части страницы. Это создаст новый репозиторий в вашем аккаунте GitHub с копией учебной программы.
Выполните следующие шаги:
1. **Форкните репозиторий**: нажмите кнопку "Fork" в правом верхнем углу этой страницы.
Следуйте этим шагам:
1. **Форкните репозиторий**: Нажмите кнопку "Fork" в правом верхнем углу страницы.
2. **Клонируйте репозиторий**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
#### Запуск курса в Codespace
#### Запуск учебной программы в Codespace
В вашей копии этого репозитория, которую вы создали, нажмите кнопку **Code** и выберите **Open with Codespaces**. Это создаст для вас новый Codespace для работы.
В вашей копии репозитория нажмите кнопку **Code** и выберите **Open with Codespaces**. Это создаст новый Codespace для работы.
![Codespace](../../translated_images/ru/createcodespace.0238bbf4d7a8d955.webp)
#### Запуск курса локально на вашем компьютере
#### Запуск учебной программы локально на компьютере
Для запуска этого курса локально вам потребуется текстовый редактор, браузер и инструмент командной строки. Наш первый урок, [Введение в языки программирования и инструменты разработки](../../1-getting-started-lessons/1-intro-to-programming-languages), расскажет вам о различных вариантах каждого из этих инструментов, чтобы вы могли выбрать наиболее подходящий.
Чтобы запустить эту учебную программу локально на вашем компьютере, вам потребуется текстовый редактор, браузер и инструмент командной строки. Наш первый урок, [Введение в языки программирования и инструменты](../../1-getting-started-lessons/1-intro-to-programming-languages), проведет вас через различные варианты каждого инструмента, чтобы вы могли выбрать то, что лучше всего подходит для вас.
Мы рекомендуем использовать [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) в качестве редактора, который также имеет встроенный [терминал](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).
Мы рекомендуем использовать [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) в качестве редактора, который также имеет встроенный [терминал](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:
1. Клонируйте ваш репозиторий на компьютер. Для этого нажмите кнопку **Code** и скопируйте URL:
[CodeSpace](./images/createcodespace.png)
Затем откройте [Терминал](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) и выполните следующую команду, заменив `<your-repository-url>` на URL, который вы только что скопировали:
@ -124,136 +124,138 @@
git clone <your-repository-url>
```
2. Откройте папку в Visual Studio Code. Для этого кликните **Файл** > **Открыть папку** и выберите папку, которую вы только что склонировали.
2. Откройте папку в Visual Studio Code. Вы можете это сделать, нажав **Файл** > **Открыть папку** и выбрав папку, которую только что клонировали.
> Рекомендуемые расширения Visual Studio Code:
> Рекомендуемые расширения Visual Studio Code:
>
> * [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer&WT.mc_id=academic-77807-sagibbon) — для предварительного просмотра HTML-страниц в Visual Studio Code
> * [Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot&WT.mc_id=academic-77807-sagibbon) — для помощи в написании кода быстрее
> * [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer&WT.mc_id=academic-77807-sagibbon) — для предварительного просмотра HTML-страниц прямо в Visual Studio Code
> * [Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot&WT.mc_id=academic-77807-sagibbon) — чтобы помочь вам писать код быстрее
## 📂 В каждом уроке есть:
- необязательная скетчноут
- необязательная быстрая заметка (sketchnote)
- необязательное дополнительное видео
- разминка-квиз перед уроком
- разминка перед уроком в виде викторины
- письменный урок
- для проектных уроков — пошаговые инструкции по созданию проекта
- проверки знаний
- задание
- для проектных уроков — пошаговые руководства, как создать проект
- проверочные задания
- вызов (challenge)
- дополнительное чтение
- [квиз после урока](https://ff-quizzes.netlify.app/web/)
- задание
- [викторина после урока](https://ff-quizzes.netlify.app/web/)
> **Примечание о квизах**: Все квизы находятся в папке Quiz-app, всего 48 квизов по три вопроса каждый. Они доступны [здесь](https://ff-quizzes.netlify.app/web/), приложение для квизов можно запускать локально или деплоить в Azure; следуйте инструкциям в папке `quiz-app`.
> **Примечание о викторинах**: Все викторины находятся в папке Quiz-app, всего 48 викторин по три вопроса в каждой. Они доступны [здесь](https://ff-quizzes.netlify.app/web/); приложение для викторин можно запустить локально или развернуть в Azure; следуйте инструкциям в папке `quiz-app`.
## 🗃️ Уроки
| | Название проекта | Изучаемые концепции | Цели обучения | Связанный урок | Автор |
| :-: | :----------------------------------------------------------: | :---------------------------------------------------------------------: | --------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------: | :------------------: |
| 01 | Начало работы | Введение в программирование и инструменты профессии | Узнать основы большинства языков программирования и о программном обеспечении, которое помогает профессиональным разработчикам | [Введение в языки программирования и инструменты](./1-getting-started-lessons/1-intro-to-programming-languages/README.md) | Jasmine |
| 02 | Начало работы | Основы GitHub, работа в команде | Как использовать GitHub в вашем проекте, как сотрудничать с другими в кодовой базе | [Введение в GitHub](./1-getting-started-lessons/2-github-basics/README.md) | Floor |
| 03 | Начало работы | Доступность | Узнать основы веб-доступности | [Основы доступности](./1-getting-started-lessons/3-accessibility/README.md) | Christopher |
| 04 | Основы JS | Типы данных в JavaScript | Основы типов данных в JavaScript | [Типы данных](./2-js-basics/1-data-types/README.md) | Jasmine |
| 05 | Основы JS | Функции и методы | Узнать о функциях и методах управления логикой приложения | [Функции и методы](./2-js-basics/2-functions-methods/README.md) | Jasmine и Christopher |
| 06 | Основы JS | Создание условий в JS | Научиться создавать условия в коде с помощью методов принятия решений | [Создание условий](./2-js-basics/3-making-decisions/README.md) | Jasmine |
| 07 | Основы JS | Массивы и циклы | Работа с данными, используя массивы и циклы в JavaScript | [Массивы и циклы](./2-js-basics/4-arrays-loops/README.md) | Jasmine |
| 08 | [Террариум](./3-terrarium/solution/README.md) | HTML на практике | Создание HTML для онлайн-террариума, с акцентом на построение макета | [Введение в HTML](./3-terrarium/1-intro-to-html/README.md) | Jen |
| 09 | [Террариум](./3-terrarium/solution/README.md) | CSS на практике | Создание CSS для стилизации онлайн-террариума, основы в том числе адаптивности | [Введение в CSS](./3-terrarium/2-intro-to-css/README.md) | Jen |
| 10 | [Террариум](./3-terrarium/solution/README.md) | Замыкания JS, манипуляции с DOM | Создание JavaScript для функционала террариума с drag/drop, с упором на замыкания и работу с DOM | [Замыкания JS, работа с DOM](./3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen |
| 11 | [Игра на набор текста](./4-typing-game/solution/README.md) | Создание игры для печати | Учимся использовать события клавиатуры для управления логикой приложения на JavaScript | [Событийное программирование](./4-typing-game/typing-game/README.md) | Christopher |
| 12 | [Расширение для браузера Green](./5-browser-extension/solution/README.md) | Работа с браузерами | Узнать, как работают браузеры, их историю и создание начальных элементов расширения браузера | [О браузерах](./5-browser-extension/1-about-browsers/README.md) | Jen |
| 13 | [Расширение для браузера Green](./5-browser-extension/solution/README.md) | Создание формы, вызов API и хранение переменных в local storage | Создать JavaScript элементы расширения для вызова API с использованием переменных, хранящихся в local storage | [API, формы и local storage](./5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen |
| 14 | [Расширение для браузера Green](./5-browser-extension/solution/README.md) | Фоновые процессы в браузере, производительность веба | Использовать фоновые процессы браузера для управления иконкой расширения; узнать о веб-производительности и оптимизациях | [Фоновые задачи и производительность](./5-browser-extension/3-background-tasks-and-performance/README.md) | Jen |
| 15 | [Космическая игра](./6-space-game/solution/README.md) | Продвинутая разработка игр на JavaScript | Изучить наследование через классы и композицию, паттерн Pub/Sub, подготовка к созданию игры | [Введение в продвинутую разработку игр](./6-space-game/1-introduction/README.md) | Chris |
| 16 | [Космическая игра](./6-space-game/solution/README.md) | Рисование на canvas | Изучение Canvas API для отрисовки элементов на экране | [Рисование на Canvas](./6-space-game/2-drawing-to-canvas/README.md) | Chris |
| 17 | [Космическая игра](./6-space-game/solution/README.md) | Перемещение элементов по экрану | Познакомиться с движением элементов с использованием декартовых координат и Canvas API | [Перемещение элементов](./6-space-game/3-moving-elements-around/README.md) | Chris |
| 18 | [Космическая игра](./6-space-game/solution/README.md) | Обнаружение столкновений | Сделать так, чтобы элементы сталкивались и реагировали друг на друга с помощью нажатий клавиш, добавить функцию паузы для производительности | [Обнаружение столкновений](./6-space-game/4-collision-detection/README.md) | Chris |
| 19 | [Космическая игра](./6-space-game/solution/README.md) | Ведение счета | Выполнять математические вычисления на основе состояния игры и производительности | [Ведение счета](./6-space-game/5-keeping-score/README.md) | Chris |
| 20 | [Космическая игра](./6-space-game/solution/README.md) | Завершение и перезапуск игры | Узнать о завершении и перезапуске игры, включая очистку ресурсов и сброс значений переменных | [Условие завершения](./6-space-game/6-end-condition/README.md) | Chris |
| 21 | [Банковское приложение](./7-bank-project/solution/README.md) | HTML-шаблоны и маршруты веб-приложения | Научиться создавать структуру многополосного сайта с маршрутизацией и HTML-шаблонами | [HTML-шаблоны и маршруты](./7-bank-project/1-template-route/README.md) | Yohan |
| 22 | [Банковское приложение](./7-bank-project/solution/README.md) | Создание формы входа и регистрации | Изучить создание форм и обработку валидации | [Формы](./7-bank-project/2-forms/README.md) | Yohan |
| 23 | [Банковское приложение](./7-bank-project/solution/README.md) | Методы получения и использования данных | Как данные поступают в приложение и выходят из него, как их получать, хранить и удалять | [Данные](./7-bank-project/3-data/README.md) | Yohan |
| 24 | [Банковское приложение](./7-bank-project/solution/README.md) | Концепции управления состоянием | Узнать, как приложение сохраняет состояние и как управлять им программно | [Управление состоянием](./7-bank-project/4-state-management/README.md) | Yohan |
| 25 | [Код браузера/VScode](../../8-code-editor) | Работа с VScode | Научиться использовать редактор кода | [Использование редактора кода VScode](./8-code-editor/1-using-a-code-editor/README.md) | Chris |
| 26 | [AI помощники](./9-chat-project/README.md) | Работа с ИИ | Научиться создавать собственного AI помощника | [Проект AI помощника](./9-chat-project/README.md) | Chris |
| | Название проекта | Изучаемые концепции | Цели обучения | Связанный урок | Автор |
| :-: | :---------------------------------------------------------: | :------------------------------------------------------------------------: | -------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------: | :---------------------: |
| 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 | Типы данных в JavaScript | Основы типов данных в JavaScript | [Типы данных](./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 | Массивы и циклы | Работа с данными с помощью массивов и циклов в JavaScript | [Массивы и циклы](./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) | Замыкания JavaScript, манипуляции DOM | Создание JavaScript для функционирования террариума как интерфейса drag/drop, фокус на замыканиях и работе с DOM | [Замыкания JS и работа с DOM](./3-terrarium/3-intro-to-DOM-and-closures/README.md) | Джен |
| 11 | [Игра на набор текста](./4-typing-game/solution/README.md) | Создание игры на набор текста | Изучение использования событий клавиатуры для управления логикой JS-приложения | [Событийно-ориентированное программирование](./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 и хранение переменных в local storage | Создание JavaScript-элементов расширения для вызова API с использованием переменных в local storage | [API, формы и local storage](./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) | Более продвинутая разработка игр на JavaScript | Изучение наследования с использованием классов и композиции, а также шаблона Pub/Sub, подготовка к созданию игры | [Введение в продвинутую разработку игр](./6-space-game/1-introduction/README.md) | Крис |
| 16 | [Космическая игра](./6-space-game/solution/README.md) | Рисование на canvas | Изучение Canvas API, используемого для рисования на экране | [Рисование на Canvas](./6-space-game/2-drawing-to-canvas/README.md) | Крис |
| 17 | [Космическая игра](./6-space-game/solution/README.md) | Перемещение элементов на экране | Узнайте, как элементы получают движение с использованием декартовых координат и Canvas 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) | Крис |
## 🏫 Педагогика
Наша учебная программа основана на двух ключевых педагогических принципах:
* обучение на основе проектов
* частые квизы
Наша учебная программа разработана с учётом двух ключевых педагогических принципов:
* обучение через проекты
* частые викторины
Программа обучает основам JavaScript, HTML и CSS, а также последним инструментам и техникам, используемым современными веб-разработчиками. Студенты получат возможность приобрести практический опыт, создавая игру для печати, виртуальный террариум, экологичное расширение для браузера, игру в стиле космических захватчиков и банковское приложение для бизнеса. К концу серии студенты будут иметь твердое понимание веб-разработки.
Программа обучает основам JavaScript, HTML и CSS, а также последним инструментам и методам, используемым современными веб-разработчиками. Студенты получат возможность приобрести практические навыки, создавая игру на набор текста, виртуальный террариум, экологичное расширение для браузера, игру в стиле "космических захватчиков" и банковское приложение для бизнеса. К концу курса студенты будут иметь прочные знания в области веб-разработки.
> 🎓 Первые несколько уроков этой программы вы можете пройти как [Учебный путь](https://docs.microsoft.com/learn/paths/web-development-101/?WT.mc_id=academic-77807-sagibbon) на Microsoft Learn!
> 🎓 Вы можете пройти первые несколько уроков этой программы как [Учебный путь](https://docs.microsoft.com/learn/paths/web-development-101/?WT.mc_id=academic-77807-sagibbon) на Microsoft Learn!
Обеспечивая соответствие содержания проектам, процесс обучения становится более увлекательным для студентов, а запоминание концепций лучше. Мы также разработали несколько стартовых уроков по основам JavaScript для введения в концепции, дополненных видео из серии "[Для начинающих: JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)", где авторы видеокурсов внесли вклад в эту учебную программу.
Обеспечение соответствия контента проектам делает процесс обучения более увлекательным для студентов и способствует лучшему усвоению концепций. Мы также создали несколько вводных уроков по основам JavaScript, чтобы познакомить с концепциями, сопровождаемых видео из коллекции "[Серия для начинающих: JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)", авторы некоторых из которых внесли вклад в эту программу.
Кроме того, небольшой предварительный квиз перед занятием настраивает студента на изучение темы, а второй квиз после занятия укрепляет знания. Эта программа разработана быть гибкой и интересной, её можно проходить полностью или частично. Проекты начинаются с простого и становятся всё более сложными к концу 12-недельного цикла.
Кроме того, низкоуровневая викторина до урока задаёт учебный настрой студента, а вторая викторина после урока обеспечивает лучшее закрепление материала. Эта учебная программа разработана, чтобы быть гибкой и интересной, и её можно проходить целиком или частями. Проекты начинаются с простого и становятся более сложными к концу 12-недельного цикла.
Хотя мы намеренно избегали введения JavaScript-фреймворков, чтобы сосредоточиться на базовых навыках веб-разработчика, хорошим следующим шагом после этой программы будет изучение Node.js через другую серию видео: "[Для начинающих: Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)".
Хотя мы сознательно избегали введения фреймворков JavaScript, чтобы сосредоточиться на базовых навыках веб-разработчика до изучения фреймворков, хорошим следующим шагом после этой программы станет изучение Node.js через другую коллекцию видео: "[Серия для начинающих: Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)".
> Ознакомьтесь с нашими правилами поведения [Code of Conduct](CODE_OF_CONDUCT.md) и [Contributing](CONTRIBUTING.md). Мы приветствуем ваши конструктивные отзывы!
> Ознакомьтесь с нашими [Правилами поведения](CODE_OF_CONDUCT.md) и [Правилами вклада](CONTRIBUTING.md). Мы приветствуем ваши конструктивные отзывы!
## 🧭 Оффлайн-доступ
Вы можете использовать эту документацию офлайн при помощи [Docsify](https://docsify.js.org/#/). Форкните этот репозиторий, [установите Docsify](https://docsify.js.org/#/quickstart) на свой локальный компьютер, а затем в корневой папке репозитория введите `docsify serve`. Веб-сайт будет доступен по адресу `localhost:3000` на вашем локальном хосте.
Вы можете запускать эту документацию оффлайн с помощью [Docsify](https://docsify.js.org/#/). Форкните этот репозиторий, установите [Docsify](https://docsify.js.org/#/quickstart) на локальную машину, а затем в корневой папке репозитория выполните команду `docsify serve`. Веб-сайт будет доступен на порту 3000 по адресу localhost: `localhost:3000`.
## 📘 PDF
PDF со всеми уроками можно найти [здесь](https://microsoft.github.io/Web-Dev-For-Beginners/pdf/readme.pdf).
PDF всех уроков доступен [здесь](https://microsoft.github.io/Web-Dev-For-Beginners/pdf/readme.pdf).
## 🎒 Другие курсы
Наша команда создает и другие курсы! Ознакомьтесь:
Наша команда выпускает и другие курсы! Ознакомьтесь:
<!-- CO-OP TRANSLATOR OTHER COURSES START -->
### LangChain
[![LangChain4j для начинающих](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 для начинающих](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)
[![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)
[![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin)
---
### Azure / Edge / MCP / Агенты
[![AZD для начинающих](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 для начинающих](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 для начинающих](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 агенты для начинающих](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)
### Azure / Edge / MCP / Agents
[![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)
---
### Серия по генеративному ИИ
[![Генеративный ИИ для начинающих](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)
[![Генеративный ИИ (.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)
[![Генеративный ИИ (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)
[![Генеративный ИИ (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)
### Серия Generative 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)
---
### Основное обучение
[![Машинное обучение для начинающих](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)
[![Наука о данных для начинающих](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)
[![ИИ для начинающих](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)
[![Кибербезопасность для начинающих](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)
[![Веб-разработка для начинающих](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 для начинающих](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 для начинающих](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)
### Основы обучения
[![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
[![Copilot для парного программирования с ИИ](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 для 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](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)
[![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)
<!-- CO-OP TRANSLATOR OTHER COURSES END -->
## Получение помощи
Если вы застряли или у вас есть вопросы по созданию приложений с ИИ. Присоединяйтесь к другим учащимся и опытным разработчикам в обсуждениях MCP. Это поддерживающее сообщество, где вопросы приветствуются, а знания свободно делятся.
Если вы застряли или у вас есть вопросы по созданию приложений ИИ, присоединяйтесь к другим обучающимся и опытным разработчикам для обсуждения 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)
@ -265,5 +267,5 @@ PDF со всеми уроками можно найти [здесь](https://mi
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Отказ от ответственности**:
Этот документ был переведен с помощью сервиса машинного перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на стремление к точности, пожалуйста, учитывайте, что автоматический перевод может содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для важной информации рекомендуется профессиональный перевод специалистом. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода.
Этот документ был переведен с помощью сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия обеспечить точность, пожалуйста, учитывайте, что машинный перевод может содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется использовать профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
Loading…
Cancel
Save