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

pull/1690/head
localizeflow[bot] 3 weeks ago
parent b09fdabac4
commit a15fe4acd2

@ -493,7 +493,7 @@
},
"AGENTS.md": {
"original_hash": "a362efd06d64d4134a0cfe8515a86d34",
"translation_date": "2026-02-06T11:57:24+00:00",
"translation_date": "2026-02-06T12:25:23+00:00",
"source_file": "AGENTS.md",
"language_code": "bg"
},

@ -2,27 +2,27 @@
## Преглед на проекта
Това е образователно хранилище за учебна програма за обучението на начинаещи по основи на уеб разработката. Учебната програма представлява изчерпателен курс от 12 седмици, разработен от Microsoft Cloud Advocates, с 24 практически урока, обхващащи JavaScript, CSS и HTML.
Това е образователно хранилище с учебна програма за преподаване на основите на уеб разработката за начинаещи. Учебната програма е изчерпателен 12-седмичен курс, разработен от Microsoft Cloud Advocates, включващ 24 практически урока по JavaScript, CSS и HTML.
### Основни компоненти
- **Образователно съдържание**: 24 структурирани урока, организирани в проекти по модули
- **Практически проекти**: Terrarium, Typing Game, Browser Extension, Space Game, Banking App, Code Editor и AI Chat Assistant
- **Интерактивни викторини**: 48 викторини с по 3 въпроса всяка (предварителни/следурочни оценки)
- **Поддръжка на множество езици**: Автоматизирани преводи за 50+ езика чрез GitHub Actions
- **Образователно съдържание**: 24 структурирани урока, организирани в курсови модули с проекти
- **Практически проекти**: Терариум, Игра за писане, Разширение за браузър, Космическа игра, Банково приложение, Редактор на код и AI чат асистент
- **Интерактивни викторини**: 48 викторини с по 3 въпроса всяка (оценка преди/след урок)
- **Многоезична поддръжка**: Автоматизирани преводи на 50+ езика чрез GitHub Actions
- **Технологии**: HTML, CSS, JavaScript, Vue.js 3, Vite, Node.js, Express, Python (за AI проекти)
### Архитектура
- Образователно хранилище със структура, базирана на уроци
- Всяка папка с урок съдържа README, кодови примери и решения
- Самостоятелни проекти в отделни директории (quiz-app, различни проектни уроци)
- Система за превод с помощта на GitHub Actions (co-op-translator)
- Документация, обслужвана чрез Docsify и достъпна като PDF
- Образователно хранилище със структура базирана на уроци
- Всяка папка с урок съдържа README, примери с код и решения
- Самостоятелни проекти в отделни директории (quiz-app, различни проекти от уроци)
- Система за превод, използваща GitHub Actions (co-op-translator)
- Документация, достъпна чрез Docsify и като PDF
## Команди за настройка
Това хранилище е основно за консумация на образователно съдържание. За работа със специфични проекти:
Това хранилище е основно за консумация на образователно съдържание. За работа с конкретни проекти:
### Основна настройка на хранилището
@ -37,7 +37,7 @@ cd Web-Dev-For-Beginners
cd quiz-app
npm install
npm run dev # Стартиране на сървър за разработка
npm run build # Създаване за продукция
npm run build # Създаване на продукционна версия
npm run lint # Стартиране на ESLint
```
@ -59,15 +59,15 @@ npm install
# Следвайте инструкциите за зареждане на разширения, специфични за браузъра
```
### Проекти за Space Game
### Проекти за космическа игра
```bash
cd 6-space-game/solution
npm install
# Отворете index.html в браузър или използвайте Live Server
# Отворете index.html в браузъра или използвайте Live Server
```
### Проект Chat (Python Backend)
### Чат проект (Python Back-end)
```bash
cd 9-chat-project/solution/backend/python
@ -76,33 +76,33 @@ pip install openai
python api.py
```
## Работен процес на разработка
## Работен процес при разработка
### За допринасящите съдържание
### За сътрудници по съдържанието
1. **Направете форк на хранилището** в акаунта си в GitHub
2. **Клонирайте вашия форк** локално
1. **Клонирайте хранилището** във вашия GitHub акаунт
2. **Клонирайте вашето копие** локално
3. **Създайте нов клон** за вашите промени
4. Направете промени в съдържанието на урока или кодовите примери
5. Тествайте всякакви кодови промени в съответните проектни директории
6. Изпратете Pull Request следвайки указанията за принос
4. Направете промени в съдържанието на уроците или примерите с код
5. Тествайте промените в съответните директории с проекти
6. Подайте pull заявки, следвайки указанията за принос
### За учащите
### За учащи
1. Направете форк или клонирайте хранилището
2. Навигирайте послойно в директориите с уроци
1. Fork или клонирайте хранилището
2. Навигирайте през папките с уроци последователно
3. Прочетете README файловете за всеки урок
4. Попълнете предварителните викторини на https://ff-quizzes.netlify.app/web/
5. Работете с кодовите примери в папките с уроци
6. Изпълнете задачи и предизвикателства
7. Попълнете следурочните викторини
5. Работа с примерите с код в папките на уроците
6. Завършете задачи и предизвикателства
7. Вземете следурочни викторини
### Живо разработване
### Жива разработка
- **Документация**: Стартирайте `docsify serve` в корена (порт 3000)
- **Документация**: Стартирайте `docsify serve` в основната папка (порт 3000)
- **Quiz App**: Стартирайте `npm run dev` в директорията quiz-app
- **Проекти**: Използвайте разширението VS Code Live Server за HTML проекти
- **API Проекти**: Стартирайте `npm start` в съответните API директории
- **API проекти**: Стартирайте `npm start` в съответните API директории
## Инструкции за тестване
@ -110,8 +110,8 @@ python api.py
```bash
cd quiz-app
npm run lint # Проверка за проблеми със стила на кода
npm run build # Проверка дали изграждането е успешно
npm run lint # Проверете за проблеми със стила на кода
npm run build # Уверете се, че компилацията е успешна
```
### Тестване на Bank API
@ -119,34 +119,34 @@ npm run build # Проверка дали изграждането е ус
```bash
cd 7-bank-project/api
npm run lint # Проверете за проблеми със стила на кода
node server.js # Проверете дали сървърът стартира без грешки
node server.js # Потвърдете, че сървърът стартира без грешки
```
### Общ подход към тестването
- Това е образователно хранилище без изчерпателни автоматизирани тестове
- Ръчното тестване се фокусира върху:
- Кодови примери, които се изпълняват без грешки
- Връзки в документацията работят правилно
- Проектите се изграждат успешно
- Примерите следват най-добрите практики
- Ръчно тестване се фокусира върху:
- Примерите с код да стартират без грешки
- Линковете в документацията да работят коректно
- Проектите да се компилират успешно
- Примерите да следват добри практики
### Проверки преди изпращане
### Проверки преди подаване
- Стартирайте `npm run lint` в директории с package.json
- Проверете дали линковете в markdown са валидни
- Тествайте кодовите примери в браузър или Node.js
- Проверете дали преводите запазват правилната структура
- Проверете валидността на markdown линковете
- Тествайте примерите с код в браузър или Node.js
- Уверете се, че преводите са структурирани правилно
## Насоки за стил на кода
### JavaScript
- Използвайте съвременен синтаксис ES6+
- Следвайте стандартните ESLint конфигурации в проектите
- Използвайте смислени имена на променливи и функции за яснота при учене
- Използвайте съвременен ES6+ синтаксис
- Спазвайте стандартните ESLint конфигурации в проектите
- Използвайте смислени имена на променливи и функции за образователна яснота
- Добавяйте коментари, обясняващи концепциите за учащите
- Форматирайте с Prettier, където е конфигуриран
- Форматирайте с Prettier, когато е конфигуриран
### HTML/CSS
@ -157,26 +157,26 @@ node server.js # Проверете дали сървърът стартир
### Python
- Насоки за стил PEP 8
- Ясни образователни кодови примери
- Типови указания, където са полезни за учене
- Насоки по стил PEP 8
- Ясни, образователни примери с код
- Типови анотации, където са полезни за обучението
### Markdown документация
- Ясна йерархия на заглавия
- Кодови блокове с определен език
- Блокове с код със зададен език
- Линкове към допълнителни ресурси
- Екранни снимки и изображения в директории `images/`
- Скриншотове и изображения в директории `images/`
- Алтернативен текст за изображения за достъпност
### Организация на файловете
- Уроците са номерирани последователно (1-getting-started-lessons, 2-js-basics и др.)
- Уроците са номерирани последователно (1-getting-started-lessons, 2-js-basics и т.н.)
- Всеки проект има директории `solution/` и често `start/` или `your-work/`
- Изображенията са съхранени в папки `images/`, специфични за всеки урок
- Изображенията се съхраняват в специфичните за урока папки `images/`
- Преводите са в структура `translations/{language-code}/`
## Изграждане и разгръщане
## Сглобяване и разгръщане
### Разгръщане на Quiz App (Azure Static Web Apps)
@ -185,98 +185,98 @@ quiz-app е конфигуриран за разгръщане в Azure Static W
```bash
cd quiz-app
npm run build # Създава папка dist/
# Публикува чрез GitHub Actions workflow при натискане към main
# Извършва внедряване чрез GitHub Actions workflow при натискане в main
```
Конфигурация на Azure Static Web Apps:
Конфигурация за Azure Static Web Apps:
- **Местоположение на приложението**: `/quiz-app`
- **Местоположение на изхода**: `dist`
- **Работен процес**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
- **Изходна директория**: `dist`
- **Работен поток**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
### Генериране на PDF документация
```bash
npm install # Инсталирайте docsify-to-pdf
npm run convert # Генериране на PDF от документи
npm install # Инсталиране на docsify-to-pdf
npm run convert # Генериране на PDF от docs
```
### Документация Docsify
### Documentation с Docsify
```bash
npm install -g docsify-cli # Инсталирайте Docsify глобално
docsify serve # Стартирайте на localhost:3000
```
### Изграждане, специфично за проект
### Сглобяване за конкретни проекти
Всяка проектна директория може да има собствен процес на изграждане:
Всяка проектна директория може да има собствен процес на сглобяване:
- Vue проекти: `npm run build` създава продукционни пакети
- Статични проекти: Няма стъпка за изграждане, файловете се обслужват директно
- Статични проекти: Без стъпка на сглобяване, файловете се обслужват директно
## Насоки за Pull Request
## Насоки за pull заявки
### Формат на заглавието
Използвайте ясни, описателни заглавия, указващи областта на промяна:
Използвайте ясни, описателни заглавия, указващи областта на промяната:
- `[Quiz-app] Добавяне на нова викторина за урок X`
- `[Lesson-3] Поправка на печатна грешка в проекта terrarium`
- `[Lesson-3] Поправка на печатна грешка в проекта терариум`
- `[Translation] Добавяне на испански превод за урок 5`
- `[Docs] Актуализиране на инструкции за настройка`
- `[Docs] Актуализация на инструкциите за настройка`
### Задължителни проверки
### Изисквани проверки
Преди изпращане на PR:
Преди да подадете PR:
1. **Качество на кода**:
- Стартирайте `npm run lint` в засегнатите проектни директории
1. **Код качество**:
- Стартирайте `npm run lint` в засегнатите директории с проекти
- Поправете всички грешки и предупреждения
2. **Проверка на изграждането**:
- Стартирайте `npm run build` ако е приложимо
- Осигурете, че няма грешки при изграждане
2. **Проверка на сглобяването**:
- Стартирайте `npm run build`, ако е приложимо
- Уверете се, че няма грешки при сглобяването
3. **Проверка на линкове**:
3. **Проверка на линковете**:
- Тествайте всички markdown линкове
- Проверете работата на препратките към изображения
- Потвърдете, че препратките към изображения работят
4. **Преглед на съдържанието**:
- Проверкa за правопис и граматика
- Осигурете, че кодовите примери са правилни и образователни
- Проверете дали преводите запазват оригиналния смисъл
- Прегледайте за правопис и граматика
- Уверете се, че примерите с код са правилни и образователни
- Проверете, че преводите запазват смисъла
### Изисквания за принос
- Съгласие с Microsoft CLA (автоматична проверка при първия PR)
- Приемете Microsoft CLA (автоматична проверка при първия PR)
- Спазвайте [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
- Вижте [CONTRIBUTING.md](./CONTRIBUTING.md) за подробни насоки
- Посочвайте номера на проблеми в описанието на PR, ако е приложимо
- Прочетете [CONTRIBUTING.md](./CONTRIBUTING.md) за подробни указания
- Посочете номера на въпроси в описанието на PR, ако е приложимо
### Процес на преглед
- PR се преглеждат от поддръжници и общността
- Приоритет се дава на образователна яснота
- Кодови примери трябва да следват актуални най-добри практики
- PR се преглеждат от поддържащи и общността
- Приоритет е образователната яснота
- Примерите с код трябва да следват съвременни добри практики
- Преводите се преглеждат за точност и културна съобразност
## Система за превод
### Автоматичен превод
### Автоматизиран превод
- Използва GitHub Actions с workflow co-op-translator
- Автоматичен превод на 50+ езика
- Източникови файлове в основните директории
- Преведените файлове са в директории `translations/{language-code}/`
- Използва GitHub Actions с co-op-translator workflow
- Автоматично превежда на 50+ езика
- Изходните файлове са в основните директории
- Преведените файлове са в `translations/{language-code}/`
### Добавяне на ръчни подобрения на преводи
### Добавяне на ръчни подобрения в превода
1. Намерете файл в `translations/{language-code}/`
1. Намерете файла в `translations/{language-code}/`
2. Направете подобрения, запазвайки структурата
3. Осигурете функционалността на кодовите примери
4. Тествайте локализирано покритие на викторините
3. Уверете се, че примерите с код остават функционални
4. Тествайте локализираното викторинно съдържание
### Преводни метаданни
### Метаданни за превода
Преведените файлове съдържат метаданни в заглавната част:
Преведените файлове включват заглавен метаданни:
```markdown
<!--
CO_OP_TRANSLATOR_METADATA:
@ -289,120 +289,120 @@ CO_OP_TRANSLATOR_METADATA:
-->
```
## Отстраняване на грешки и проблеми
## Отстраняване на неизправности и отживяване
### Чести проблеми
### Често срещани проблеми
**Quiz app не стартира**:
- Проверете версия на Node.js (препоръчва се v14+)
- Изтрийте `node_modules` и `package-lock.json`, пуснете отново `npm install`
- Проверете за конфликти на портове (по подразбиране Vite използва порт 5173)
- Проверете версията на Node.js (препоръчва се v14+)
- Изтрийте `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`
- Уверете се, че пакетът OpenAI е инсталиран: `pip install openai`
- Проверете дали променливата на средата GITHUB_TOKEN е зададена
- Проверете разрешенията за достъп до GitHub Models
- Проверете правата за достъп на GitHub Models
**Docsify не обслужва документацията**:
- Инсталирайте docsify-cli глобално: `npm install -g docsify-cli`
- Стартирайте от корена на хранилището
- Проверете дали файлът `docs/_sidebar.md` съществува
- Стартирайте от основния каталог на хранилището
- Проверете дали съществува `docs/_sidebar.md`
### Съвети за развойна среда
- Използвайте VS Code с разширение Live Server за HTML проекти
- Инсталирайте ESLint и Prettier за консистентно форматиране
- Използвайте DevTools на браузъра за JavaScript отстраняване на грешки
- За Vue проекти инсталирайте Vue DevTools браузър разширение
- Използвайте VS Code с Live Server разширение за HTML проекти
- Инсталирайте ESLint и Prettier разширения за последователно форматиране
- Използвайте DevTools на браузъра за отстраняване на JavaScript
- За Vue проекти използвайте Vue DevTools за браузър
### Съображения за производителност
- Голям брой преведени файлове (50+ езика) означава големи пълни копия
- Използвайте shallow clone ако работите само върху съдържание: `git clone --depth 1`
- Изключвайте преводите от търсения при работа само с английско съдържание
- Изграждането може да е бавно при първо изпълнение (npm install, Vite build)
- Голям брой преведени файлове (50+ езика) означава големи пълни клонинги
- Използвайте плитко клониране, ако работите само със съдържание: `git clone --depth 1`
- Изключвайте преводите при търсене, когато работите с английското съдържание
- Процесите на сглобяване може да са бавни при първо пускане (npm install, Vite build)
## Съображения за сигурност
## Сигурност
### Променливи на средата
- API ключове никога не трябва да се качват в хранилището
- Използвайте `.env` файлове (вече в `.gitignore`)
- Документирайте необходимите променливи на средата в README на проектите
- API ключовете никога не трябва да се качват в хранилището
- Използвайте `.env` файлове (вече са в `.gitignore`)
- Документирайте изискваните променливи на средата в README на проектите
### Python проекти
- Използвайте виртуални среди: `python -m venv venv`
- Поддържайте зависимости актуализирани
- GitHub token-и трябва да имат минимални нужни разрешения
- Поддържайте зависимостите актуални
- GitHub токените трябва да имат минимално необходими права
### Достъп до GitHub Models
- За GitHub Models се изискват персонални токени за достъп (PAT)
- Необходими са лични токени за достъп (PAT) за GitHub Models
- Токените трябва да се съхраняват като променливи на средата
- Никога не комитвайте токени или удостоверителни данни
- Никога не ги качвайте в кода или хранилището
## Допълнителни бележки
### Целева аудитория
- Пълни начинаещи в уеб разработката
- Абсолютни начинаещи в уеб разработката
- Студенти и самоучащи се
- Учители, използващи учебната програма в класна стая
- Съдържанието е проектирано за достъпност и постепенно натрупване на умения
- Учители, използващи програмата в класни стаи
- Съдържанието е проектирано за достъпност и постепенно изграждане на умения
### Образователна философия
- Подход, базиран на проекти
- Чести проверки на знания (викторини)
- Практически упражнения по кодиране
- Примери за реални приложения
- Фокус върху основите преди фреймуъркове
- Чести проверки на знанията (викторини)
- Практически упражнения с код
- Примери за приложения в реалния свят
- Фокус върху основите преди рамки
### Поддръжка на хранилището
- Активна общност от учащи и допринасящи
- Активна общност от учащи и сътрудници
- Редовни актуализации на зависимости и съдържание
- Следене на проблеми и дискусии от поддръжниците
- Управление на въпроси и дискусии от поддържащи
- Автоматизирани актуализации на преводи чрез 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) за учащи
- Допълнителни курсове: Генеративен AI, Data Science, ML, 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) препоръчван за учащи
- Допълнителни курсове: Генеративен AI, Data Science, ML, IoT учебни програми
### Работа със специфични проекти
### Работа с конкретни проекти
За подробни инструкции за отделни проекти вижте README файловете в:
- `quiz-app/README.md` - Vue 3 викторина приложение
За подробни инструкции за индивидуалните проекти вижте README файловете в:
- `quiz-app/README.md` - Vue 3 quiz приложение
- `7-bank-project/README.md` - Банково приложение с автентикация
- `5-browser-extension/README.md` - Разработка на браузър разширения
- `6-space-game/README.md` - Разработка на игра базирана на Canvas
- `9-chat-project/README.md` - AI чат асистент проект
- `5-browser-extension/README.md` - Разработка на браузърно разширение
- `6-space-game/README.md` - Разработка на игра със Canvas
- `9-chat-project/README.md` - Chat асистент с AI
### Структура на монохранилище
Въпреки че не е традиционно монохранилище, това хранилище съдържа множество независими проекти:
- Всеки урок е самостоятелен
- Проектите не споделят зависимости
- Работете по отделни проекти без да влияете на другите
- Работете по отделни проекти без да влияете на други
- Клонирайте цялото хранилище за пълния учебен опит
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Отказ от отговорност**:
Този документ е преведен с помощта на AI преводаческа услуга [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля имайте предвид, че автоматизираните преводи могат да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Не носим отговорност за каквито и да е разбирателства или погрешни тълкувания, произтичащи от използването на този превод.
Този документ е преведен с помощта на AI преводаческа услуга [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": "2026-02-06T11:56:16+00:00",
"translation_date": "2026-02-06T12:24:12+00:00",
"source_file": "AGENTS.md",
"language_code": "ro"
},

@ -2,23 +2,23 @@
## Prezentare generală a proiectului
Acesta este un depozit curricular educațional pentru predarea bazelor dezvoltării web începătorilor. Curriculumul este un curs cuprinzător de 12 săptămâni, dezvoltat de Microsoft Cloud Advocates, care cuprinde 24 de lecții practice ce acoperă JavaScript, CSS și HTML.
Acesta este un depozit curricular educațional pentru predarea fundamentelor dezvoltării web începătorilor. Curriculumul este un curs cuprinzător de 12 săptămâni dezvoltat de Microsoft Cloud Advocates, cuprinzând 24 de lecții practice care acoperă JavaScript, CSS și HTML.
### Componente cheie
- **Conținut educațional**: 24 de lecții structurate organizate în module bazate pe proiecte
- **Proiecte practice**: Terrarium, Joc de tastare, Extensie browser, Joc spațial, Aplicație bancară, Editor de cod și Asistent AI pentru chat
- **Teste interactive**: 48 de teste cu câte 3 întrebări fiecare (evaluări înainte și după lecție)
- **Suport multilingv**: Traduceri automate în peste 50 de limbi prin GitHub Actions
- **Tehnologii**: HTML, CSS, JavaScript, Vue.js 3, Vite, Node.js, Express, Python (pentru proiecte AI)
- **Proiecte practice**: Terrarium, Joc de tastare, Extensie browser, Joc spațial, Aplicație bancară, Editor de cod și Asistent AI chat
- **Chestionare interactive**: 48 de chestionare cu câte 3 întrebări fiecare (evaluări pre/post-liceu)
- **Suport multilingv**: traduceri automate pentru peste 50 de limbi prin GitHub Actions
- **Tehnologii**: HTML, CSS, JavaScript, Vue.js 3, Vite, Node.js, Express, Python (pentru proiectele AI)
### Arhitectură
- Depozit educațional cu structură bazată pe lecții
- Fiecare dosar de lecție conține README, exemple de cod și soluții
- Proiecte independente în directoare separate (quiz-app, diverse proiecte de lecții)
- Fiecare folder lecție conține README, exemple de cod și soluții
- Proiecte independente în directoare separate (quiz-app, diverse proiecte lecții)
- Sistem de traducere folosind GitHub Actions (co-op-translator)
- Documentație servită prin Docsify și disponibilă în format PDF
- Documentație servită prin Docsify și disponibilă și în PDF
## Comenzi de configurare
@ -36,12 +36,12 @@ cd Web-Dev-For-Beginners
```bash
cd quiz-app
npm install
npm run dev # Porniți serverul de dezvoltare
npm run build # Compilați pentru producție
npm run lint # Rulați ESLint
npm run dev # Pornește serverul de dezvoltare
npm run build # Construiește pentru producție
npm run lint # Rulează ESLint
```
### API Proiect bancar (Node.js + Express)
### API proiect bancar (Node.js + Express)
```bash
cd 7-bank-project/api
@ -67,7 +67,7 @@ npm install
# Deschide index.html în browser sau folosește Live Server
```
### Proiect chat (backend Python)
### Proiect chat (Backend Python)
```bash
cd 9-chat-project/solution/backend/python
@ -76,122 +76,122 @@ pip install openai
python api.py
```
## Flux de lucru pentru dezvoltare
## Flux de dezvoltare
### Pentru contribuitori de conținut
### Pentru contribuitorii de conținut
1. **Forkați depozitul** în contul dvs. GitHub
2. **Clonați fork-ul** local
3. **Creați un nou branch** pentru modificările dvs.
4. Faceți modificări în conținutul lecțiilor sau exemplele de cod
5. Testați orice modificări de cod în directoarele proiectelor relevante
6. Trimiteți pull request-uri urmând ghidul de contribuție
1. **Fork la depozit** în contul tău GitHub
2. **Clonează fork-ul** local
3. **Creează un branch nou** pentru modificările tale
4. Fă schimbări la conținutul lecțiilor sau la exemplele de cod
5. Testează orice modificări de cod în directoarele relevante proiectului
6. Trimite cereri pull request urmând ghidurile de contribuție
### Pentru cursanți
1. Fork sau clonați depozitul
2. Navigați secvențial prin directoarele lecțiilor
3. Citiți fișierele README pentru fiecare lecție
4. Completați testele înainte de lecție la https://ff-quizzes.netlify.app/web/
5. Parcurgeți exemplele de cod din folderele lecțiilor
6. Finalizați temele și provocările
7. Susțineți testele post-lectie
1. Fă fork sau clonează depozitul
2. Navighează secvențial prin directoarele lecțiilor
3. Citește fișierele README pentru fiecare lecție
4. Completează chestionarele pre-liceu la https://ff-quizzes.netlify.app/web/
5. Lucrează cu exemplele de cod din folderele lecțiilor
6. Completează temele și provocările
7. Susține chestionarele post-liceu
### Dezvoltare live
- **Documentație**: Rulați `docsify serve` în rădăcină (port 3000)
- **Quiz App**: Rulați `npm run dev` în directorul quiz-app
- **Proiecte**: Folosiți extensia VS Code Live Server pentru proiectele HTML
- **Proiecte API**: Rulați `npm start` în directoarele API respective
- **Documentație**: Rulează `docsify serve` în rădăcină (port 3000)
- **Quiz App**: Rulează `npm run dev` în directorul quiz-app
- **Proiecte**: Folosește extensia VS Code Live Server pentru proiectele HTML
- **Proiecte API**: Rulează `npm start` în directoarele API respective
## Instrucțiuni de testare
### Testarea Quiz App
### Testare Quiz App
```bash
cd quiz-app
npm run lint # Verifică problemele de stil de cod
npm run lint # Verifică problemele stilului de cod
npm run build # Verifică dacă compilarea reușește
```
### Testarea API bancar
### Testare API bancar
```bash
cd 7-bank-project/api
npm run lint # Verifică problemele de stil de cod
npm run lint # Verifică pentru probleme de stil de cod
node server.js # Verifică dacă serverul pornește fără erori
```
### Abordare generală pentru testare
### Abordare generală de testare
- Acesta este un depozit educațional fără teste automate cuprinzătoare
- Acesta este un depozit educațional fără teste automate complexe
- Testarea manuală se concentrează pe:
- Exemple de cod care rulează fără erori
- Linkurile din documentație funcționează corect
- Proiectele se construiesc cu succes
- Exemplele urmează cele mai bune practici
- Legături în documentație funcționează corect
- Build-urile proiectelor se finalizează cu succes
- Exemplele respectă bunele practici
### Verificări înainte de trimitere
### Verificări pre-trimitere
- Rulați `npm run lint` în directoarele cu package.json
- Verificați validitatea linkurilor markdown
- Testați exemplele de cod în browser sau Node.js
- Asigurați-vă că traducerile mențin structura corectă
- Rulează `npm run lint` în directoarele cu package.json
- Verifică dacă link-urile markdown sunt valide
- Testează exemplele de cod în browser sau Node.js
- Verifică dacă traducerile păstrează structura corectă
## Ghid de stil pentru cod
## Ghiduri de stil pentru cod
### JavaScript
- Folosiți sintaxa modernă ES6+
- Urmați configurațiile standard ESLint din proiecte
- Folosiți nume semnificative pentru variabile și funcții pentru claritatea educațională
- Adăugați comentarii explicative pentru concepte
- Formatați folosind Prettier unde este configurat
- Folosește sintaxa modernă ES6+
- Urmează configurațiile standard ESLint din proiecte
- Folosește nume semnificative pentru variabile și funcții pentru claritate educațională
- Adaugă comentarii care explică conceptele pentru cursanți
- Formatează folosind Prettier, dacă este configurat
### HTML/CSS
- Elemente semantice HTML5
- Principii de design responsive
- Convenții clare de denumire a claselor
- Comentarii care explică tehnicile CSS pentru cursanți
- Convenții clare de denumire pentru clase
- Comentarii explicative privind tehnicile CSS pentru cursanți
### Python
- Respectați ghidul de stil PEP 8
- Exemple de cod clare și educaționale
- Sugestii de tipuri de date acolo unde ajută la învățare
- Ghiduri de stil PEP 8
- Exemple clare, educaționale de cod
- Hint-uri de tip unde sunt utile pentru învățare
### Documentație Markdown
- Ierarhie clară a titlurilor
- Blocuri de cod cu specificație de limbaj
- Linkuri către resurse suplimentare
- Blocuri de cod cu specificarea limbajului
- Link-uri către resurse suplimentare
- Capturi de ecran și imagini în directoarele `images/`
- Text alt pentru imagini pentru accesibilitate
- Text alternativ pentru imagini pentru accesibilitate
### Organizarea fișierelor
- Lecții numerotate secvențial (1-getting-started-lessons, 2-js-basics, etc.)
- Fiecare proiect are directoare `solution/` și adesea `start/` sau `your-work/`
- Imaginile stocate în foldere `images/` specifice lecțiilor
- Lecțiile numerotate secvențial (1-getting-started-lessons, 2-js-basics, etc.)
- Fiecare proiect are directoarele `solution/` și frecvent `start/` sau `your-work/`
- Imaginile stocate în foldere `images/` specifice fiecărei lecții
- Traducerile în structura `translations/{language-code}/`
## Construire și implementare
### Implementarea Quiz App (Azure Static Web Apps)
quiz-app este configurat pentru implementare în Azure Static Web Apps:
Quiz-app este configurat pentru implementarea pe Azure Static Web Apps:
```bash
cd quiz-app
npm run build # Creează folderul dist/
# Realizează implementarea prin workflow-ul GitHub Actions la împingerea pe main
# Implementare prin fluxul de lucru GitHub Actions la push pe main
```
Configurare Azure Static Web Apps:
- **Locația aplicației**: `/quiz-app`
- **Locația outputului**: `dist`
- **Workflow**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
- **Locație aplicație**: `/quiz-app`
- **Locație output**: `dist`
- **Flux de lucru**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
### Generare PDF documentație
@ -203,80 +203,80 @@ npm run convert # Generează PDF din docs
### Documentație Docsify
```bash
npm install -g docsify-cli # Instalează Docsify la nivel global
docsify serve # Rulează pe localhost:3000
npm install -g docsify-cli # Instalează Docsify global
docsify serve # Servește pe localhost:3000
```
### Construiri specifice proiectelor
Fiecare director de proiect poate avea propriul proces de build:
- Proiecte Vue: `npm run build` creează bundle-uri pentru producție
- Proiecte statice: Nu au pas de build, se servesc fișierele direct
Fiecare director de proiect poate avea propriul proces de construire:
- Proiecte Vue: `npm run build` creează pachetele pentru producție
- Proiecte statice: Fără pas de build, fișierele se servesc direct
## Ghid de pull request-uri
## Ghiduri pentru Pull Request-uri
### Formatul titlului
### Format titlu
Folosiți titluri clare și descriptive care indică aria de modificare:
- `[Quiz-app] Adaugă test nou pentru lecția X`
- `[Lecția-3] Corectează typo în proiectul terrarium`
- `[Traducere] Adaugă traducere spaniolă pentru lecția 5`
- `[Docs] Actualizează instrucțiunile de configurare`
Folosește titluri clare, descriptive care indică aria de modificare:
- `[Quiz-app] Add new quiz for lesson X`
- `[Lesson-3] Fix typo in terrarium project`
- `[Translation] Add Spanish translation for lesson 5`
- `[Docs] Update setup instructions`
### Verificările necesare
### Verificări necesare
Înainte de a trimite un PR:
1. **Calitatea codului**:
- Rulați `npm run lint` în directoarele proiectelor afectate
- Remediați toate erorile și avertismentele lint
- Rulează `npm run lint` în directoarele proiectelor afectate
- Corectează toate erorile și avertismentele linting
2. **Verificarea build-ului**:
- Rulați `npm run build` dacă este cazul
- Asigurați-vă că nu există erori la build
- Rulează `npm run build`, dacă este cazul
- Asigură-te că nu există erori de build
3. **Validarea linkurilor**:
- Testați toate linkurile markdown
- Verificați funcționalitatea imaginilor
- Testează toate link-urile markdown
- Verifică dacă referințele imaginilor funcționează
4. **Revizuirea conținutului**:
- Corectați ortografia și gramatica
- Asigurați-vă că exemplele de cod sunt corecte și educaționale
- Verificați ca traducerile să păstreze sensul original
- Corectează ortografia și gramatica
- Asigură-te că exemplele de cod sunt corecte și educaționale
- Verifică dacă traducerile păstrează sensul original
### Cerințe de contribuție
### Cerințe pentru contribuție
- Acceptați Microsoft CLA (verificare automată la primul PR)
- Urmați [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
- Consultați [CONTRIBUTING.md](./CONTRIBUTING.md) pentru ghid complet
- Referiți numerele de issue în descrierea PR-ului dacă este cazul
- Acceptă Microsoft CLA (verificare automată la primul PR)
- Urmează [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
- Consultă [CONTRIBUTING.md](./CONTRIBUTING.md) pentru ghiduri detaliate
- Referințează în descrierea PR-ului numerele de issue, dacă este cazul
### Procesul de revizuire
- PR-urile sunt revizuite de mentori și comunitate
- Claritatea educațională este prioritară
- Exemplele de cod trebuie să urmeze cele mai bune practici curente
- Traducerile sunt verificate pentru acuratețe și adecvare culturală
- Se prioritizează claritatea educațională
- Exemplele de cod trebuie să respecte cele mai bune practici actuale
- Traducerile sunt revizuite pentru acuratețe și adecvare culturală
## Sistem de traducere
### Traducere automată
- Folosește GitHub Actions cu workflow-ul co-op-translator
- Folosește GitHub Actions cu fluxul co-op-translator
- Traduce automat în peste 50 de limbi
- Fișiere sursă în directoare principale
- Fișiere sursă în directoarele principale
- Fișiere traduse în directoarele `translations/{language-code}/`
### Adăugarea îmbunătățirilor manuale de traducere
### Adăugarea îmbunătățirilor manuale la traduceri
1. Localizați fișierul în `translations/{language-code}/`
2. Faceți îmbunătățiri păstrând structura
3. Asigurați funcționalitatea exemplelor de cod
4. Testați orice conținut de quiz localizat
1. Găsește fișierul în `translations/{language-code}/`
2. Fă îmbunătățiri păstrând structura
3. Asigură-te că exemplele de cod rămân funcționale
4. Testează conținutul localizat al chestionarelor
### Metadate pentru traduceri
### Metadate traducere
Fișierele traduse includ un header de metadate:
Fișiere traduse includ antet de metadate:
```markdown
<!--
CO_OP_TRANSLATOR_METADATA:
@ -289,120 +289,120 @@ CO_OP_TRANSLATOR_METADATA:
-->
```
## Depanare și rezolvare probleme
## Debugging și depanare
### Probleme comune
**Quiz app nu pornește**:
- Verificați versiunea Node.js (recomandat v14+)
- Ștergeți `node_modules` și `package-lock.json`, rulați din nou `npm install`
- Verificați conflictele de port (implicit: Vite folosește port 5173)
- Verifică versiunea Node.js (recomandat v14+)
- Șterge `node_modules` și `package-lock.json`, rulează `npm install` din nou
- Verifică conflictele de port (implicit: Vite folosește port 5173)
**Server API nu pornește**:
- Verificați dacă versiunea Node.js este minim (node >=10)
- Verificați dacă portul este deja folosit
- Asigurați-vă că toate dependențele sunt instalate cu `npm install`
**Serverul API nu pornește**:
- Verifică versiunea minimă Node.js (node >=10)
- Verifică dacă portul este deja ocupat
- Asigură-te că toate dependențele sunt instalate cu `npm install`
**Extensia browser nu se încarcă**:
- Verificați formatul corect al fișierului manifest.json
- Consultați consola browserului pentru erori
- Urmați instrucțiunile specifice browserului pentru instalare
- Verifică dacă manifest.json este formatat corect
- Verifică consola browser pentru erori
- Urmează instrucțiunile specifice browserului pentru instalare extensii
**Probleme proiect chat Python**:
- Asigurați instalarea pachetului OpenAI: `pip install openai`
- Verificați setarea variabilei de mediu GITHUB_TOKEN
- Verificați permisiunile de acces la GitHub Models
- Asigură-te că pachetul OpenAI e instalat: `pip install openai`
- Verifică că variabila de mediu GITHUB_TOKEN este setată
- Verifică permisiunile de acces la GitHub Models
**Docsify nu servește documentația**:
- Instalați global docsify-cli: `npm install -g docsify-cli`
- Rulați din directorul rădăcină al repo-ului
- Verificați existența fișierului `docs/_sidebar.md`
- Instalează docsify-cli global: `npm install -g docsify-cli`
- Rulează din directorul rădăcină al depozitului
- Verifică dacă `docs/_sidebar.md` există
### Sfaturi pentru mediul de dezvoltare
- Folosiți VS Code cu extensia Live Server pentru proiectele HTML
- Instalați extensiile ESLint și Prettier pentru formatare consistentă
- Folosiți DevTools din browser pentru depanarea JavaScript
- Pentru proiectele Vue, instalați extensia Vue DevTools în browser
- Folosește VS Code cu extensia Live Server pentru proiectele HTML
- Instalează extensiile ESLint și Prettier pentru formatare consistentă
- Folosește DevTools din browser pentru depanarea JavaScript
- Pentru proiectele Vue, instalează extensia Vue DevTools în browser
### Considerații de performanță
- Numărul mare de fișiere traduse (peste 50 de limbi) face clonele complete mari
- Folosiți shallow clone dacă lucrați doar pe conținut: `git clone --depth 1`
- Excludeți traducerile din căutări când lucrați pe conținut în limba engleză
- Procesele de build pot fi lente la prima rulare (npm install, build Vite)
- Numărul mare de fișiere traduse (50+ limbi) face clonele complete mari
- Folosește clone shallow dacă lucrezi doar cu conținut: `git clone --depth 1`
- Exclude traducerile din căutări când lucrezi pe conținut în engleză
- Procesele de build pot rula încet la prima execuție (npm install, build Vite)
## Considerații de securitate
### Variabile de mediu
- Cheile API nu trebuie niciodată să fie comise în depozit
- Folosiți fișiere `.env` (inclus deja în `.gitignore`)
- Documentați variabilele de mediu necesare în README-urile proiectelor
- Cheile API să nu fie niciodată comise în depozit
- Folosește fișiere `.env` (deja în `.gitignore`)
- Documentează variabilele de mediu necesare în README-urile proiectelor
### Proiecte Python
- Folosiți medii virtuale: `python -m venv venv`
- Mențineți dependențele actualizate
- Folosește medii virtuale: `python -m venv venv`
- Menține dependențele actualizate
- Token-urile GitHub trebuie să aibă permisiunile minime necesare
### Acces GitHub Models
- Token-uri personale de acces (PAT) necesare pentru GitHub Models
- Pentru GitHub Models sunt necesare token-uri personale de acces (PAT)
- Token-urile trebuie stocate ca variabile de mediu
- Nu comiteți niciodată token-uri sau credențiale
- Nu comite niciodată token-uri sau credențiale
## Note suplimentare
### Public țintă
- Începători absoluți în dezvoltarea web
- Începători compleți în dezvoltarea web
- Studenți și autodidacți
- Profesori care folosesc curriculumul în săli de clasă
- Conținut proiectat pentru accesibilitate și dezvoltare graduală a competențelor
- Profesori care folosesc curriculumul în sălile de clasă
- Conținutul este conceput pentru accesibilitate și dezvoltare graduală a abilitaților
### Filosofie educațională
- Abordare bazată pe învățare prin proiecte
- Verificări frecvente de cunoștințe (teste)
- Abordare de învățare bazată pe proiecte
- Verificări frecvente ale cunoștințelor (chestionare)
- Exerciții practice de codare
- Exemple reale de aplicare
- Accent pe fundamente înainte de framework-uri
- Exemple de aplicare în lumea reală
- Focalizare pe fundamente înainte de cadre de lucru
### Mentenanța depozitului
### Mentenanță depozit
- Comunitate activă de cursanți și contribuitori
- Actualizări regulate ale dependențelor și conținutului
- Probleme și discuții monitorizate de mentori
- Actualizări automate ale traducerilor prin GitHub Actions
- Actualizările traducerilor automatizate prin GitHub Actions
### Resurse utile
### Resurse conexe
- [Module Microsoft Learn](https://docs.microsoft.com/learn/)
- [Resurse Student Hub](https://docs.microsoft.com/learn/student-hub/)
- [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) recomandat pentru cursanți
- Cursuri suplimentare: AI Generativ, Data Science, ML, IoT disponibile
- Cursuri suplimentare: Generative AI, Data Science, ML, IoT disponibile
### Lucrul cu proiecte specifice
Pentru instrucțiuni detaliate despre proiectele individuale, consultați fișierele README din:
Pentru instrucțiuni detaliate despre proiectele individuale, consultă fișierele README din:
- `quiz-app/README.md` - aplicație quiz Vue 3
- `7-bank-project/README.md` - aplicație bancară cu autentificare
- `5-browser-extension/README.md` - dezvoltare extensie browser
- `6-space-game/README.md` - dezvoltare joc pe canvas
- `9-chat-project/README.md` - proiect asistent AI pentru chat
- `6-space-game/README.md` - dezvoltare joc bazat pe canvas
- `9-chat-project/README.md` - proiect asistent chat AI
### Structura Monorepo
Deși nu este un monorepo tradițional, acest depozit conține mai multe proiecte independente:
- Fiecare lecție este autonomă
- Proiectele nu împart dependențe
- Lucrați pe proiecte individuale fără a afecta altele
- Clonați întregul repo pentru experiența completă a curriculumului
- Lucrează pe proiecte individuale fără a afecta altele
- Clonează întregul depozit pentru experiența completă a curriculumului
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Declinare de responsabilitate**:
Acest document a fost tradus folosind serviciul de traducere automată AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa nativă trebuie considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm răspunderea pentru neînțelegeri sau interpretări eronate rezultate din utilizarea acestei traduceri.
**Declinare a responsabilității**:
Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim pentru acuratețe, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa nativă trebuie considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm răspunderea pentru eventuale neînțelegeri sau interpretări greșite rezultate din utilizarea acestei traduceri.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -493,7 +493,7 @@
},
"AGENTS.md": {
"original_hash": "a362efd06d64d4134a0cfe8515a86d34",
"translation_date": "2026-02-06T11:58:48+00:00",
"translation_date": "2026-02-06T12:26:53+00:00",
"source_file": "AGENTS.md",
"language_code": "sr"
},

@ -2,64 +2,64 @@
## Преглед пројекта
Ово је репозиторијум едукативног програма за подучавање основа веб развоја почетницима. Програм је свеобухватан курс у трајању од 12 недеља који је развио Microsoft Cloud Advocates, и садржи 24 практична часа који покривају JavaScript, CSS и HTML.
Ово је репозиторјум образовног наставног плана за учење основа веб развоја за почетнике. Наставни план је обиман курс од 12 недеља развијен од стране Microsoft Cloud Advocates тима, који садржи 24 практична часа који покривају JavaScript, CSS и HTML.
### Кључне компоненте
### Кључне Компоненте
- **Едукативни садржај**: 24 структуирана часа организована у модуле базиране на пројектима
- **Практични пројекти**: Терраријум, Игра куцања, Прегледачки екстензија, Игрица у свемиру, Банкарска апликација, Уредник кода и AI помоћник за разговор
- **Интерактивни квизови**: 48 квизова са по 3 питања (пре и после часа)
- **Подршка за више језика**: Аутоматизовани преводи за 50+ језика преко GitHub Actions
- **Образовни садржај**: 24 структуирана часа организована у модуле засноване на пројектима
- **Практични пројекти**: Terrarium, Typing Game, Browser Extension, Space Game, Banking App, Code Editor, и AI Chat Assistant
- **Интерактивни квизови**: 48 квизова са по 3 питања (процена пре и после часа)
- **Подршка више језика**: Аутоматски преводи за 50+ језика преко GitHub Actions
- **Технологије**: HTML, CSS, JavaScript, Vue.js 3, Vite, Node.js, Express, Python (за AI пројекте)
### Архитектура
- Едукативни репозиторијум са структуром заснованом на часовима
- Свака фасцикла са часом садржи README, примере кода и решења
- Самостални пројекти у посебним директоријумима (quiz-app, различити пројекти часова)
- Образовни репозиторјум са структуром заснованом на часовима
- Свака фасцикла часа садржи 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
```
### Подешавање Quiz апп-а (Vue 3 + Vite)
### Постављање Quiz апликације (Vue 3 + Vite)
```bash
cd quiz-app
npm install
npm run dev # Покрени развојни сервер
npm run build # Направи продукцијску верзију
npm run dev # Покрени сервер за развој
npm run build # Направи верзију за продукцију
npm run lint # Покрени ESLint
```
### API банкарског пројекта (Node.js + Express)
### API За Bank пројекат (Node.js + Express)
```bash
cd 7-bank-project/api
npm install
npm start # Постави API сервер
npm start # Покрени API сервер
npm run lint # Покрени ESLint
npm run format # Форматирај помоћу Prettier
npm run format # Форматирај помоћу Prettier-а
```
### Пројекти прегледачких екстензија
### Пројекти за Прегледачке додатке
```bash
cd 5-browser-extension/solution
npm install
# Пратите упутства за учитавање екстензија специфичних за прегледач
# Следите упутства за учитавање екстензије специфична за прегледач
```
### Пројекти игре у свемиру
### Пројекти за Space игру
```bash
cd 6-space-game/solution
@ -67,7 +67,7 @@ npm install
# Отворите index.html у прегледачу или користите Live Server
```
### Пројекат разговора (Python Backend)
### Chat пројекат (Python Backend)
```bash
cd 9-chat-project/solution/backend/python
@ -76,77 +76,77 @@ pip install openai
python api.py
```
## Развојни ток рада
## Радни Проток Развоја
### За сараднике на садржају
1. **Направите fork** репозиторијума на вашем GitHub налогу
2. **Клонирајте свој fork** на локални рачунар
3. **Креирајте нову грану** за ваше измене
4. Извршите измене у садржају часова или примерима кода
1. **Направите форк репозиторијума** на свој GitHub налог
2. **Клонирајте свој форк** локално
3. **Креирајте нову грану** за своје измене
4. Направите измене у садржају часова или примерима кода
5. Тестирајте измене кода у релевантним фасциклама пројеката
6. Пошаљите pull request-ове пратећи смернице за допринос
### За ученике
### За учеснике
1. Направите fork или клон репозиторијума
2. Пратећи редослед приступајте фасциклама часова
1. Форкујте или клонирајте репозиторјум
2. Навигација кроз фасцикле часова по реду
3. Читајте README фајлове за сваки час
4. Завршите квизове пре часа на https://ff-quizzes.netlify.app/web/
5. Прођите кроз примере кода у фасциклама са часовима
4. Попуните предчасовне квизове на https://ff-quizzes.netlify.app/web/
5. Прођите кроз примере кода у фасциклама часова
6. Завршите задатке и изазове
7. Решеите квизове после часа
7. Решавајте постчасовне квизове
### Живи развој
- **Документација**: Покрените `docsify serve` у корену (порт 3000)
- **Quiz Апликација**: Покрените `npm run dev` у директоријуму quiz-app
- **Quiz апликација**: Покрените `npm run dev` у quiz-app фасцикли
- **Пројекти**: Користите VS Code Live Server екстензију за HTML пројекте
- **API пројекти**: Покрените `npm start` у одговарајућим API директоријумима
- **API Пројекти**: Покрените `npm start` у одговарајућим API фасциклама
## Упутства за тестирање
## Упутства за Тестирање
### Тестирање Quiz App-а
### Тестирање Quiz апликације
```bash
cd quiz-app
npm run lint # Провери проблеме стила кода
npm run build # Верификуј да ли је компилација успешна
npm run lint # Провери проблеме са стилом кода
npm run build # Потврди да је изградња успешна
```
### Тестирање Bank API-ja
### Тестирање Bank API
```bash
cd 7-bank-project/api
npm run lint # Провери проблеме са стилом кода
node server.js # Потврди да сервер стартује без грешака
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 конфигурације обезбеђене пројектима
- Користите значајна имена променљивих и функција ради едукативне јасноће
- Користите модерну ES6+ синтаксу
- Пратите стандардне ESLint конфигурације достављене у пројектима
- Користите смислене имена променљивих и функција за боље разумевање
- Додајте коментаре који објашњавају концепте за ученике
- Форматирајте помоћу Prettier где је конфигурисано
- Форматирајте помоћу Prettier-а где је конфигурисано
### HTML/CSS
@ -157,126 +157,126 @@ node server.js # Потврди да сервер стартује без г
### Python
- Поштујте PEP 8 стилске смернице
- Јасни, едукативни примери кода
- Типски савети где су корисни за учење
- ПРАВО ПЕП 8 смернице
- Јасни, образовни примери кода
- Типске наговештаје где помаже учењу
### Markdown документација
- Јасна хијерархија наслова
- Блокови кода са одређеним језиком
- Везе ка додатним ресурсима
- Блокови кода са спецификацијом језика
- Линкови ка додатним изворима
- Снимци екрана и слике у `images/` фасциклама
- Alt текст за слике ради приступачности
### Организација фајлова
- Часови су нумерисани секвенцијално (1-getting-started-lessons, 2-js-basics итд.)
- Часови нумерисани узастопно (1-getting-started-lessons, 2-js-basics, итд.)
- Сваки пројекат има `solution/` и често `start/` или `your-work/` фасцикле
- Слике су у фасциклама `images/` специфичним за час
- Слике се чувају у фасциклама `images/` специфичним за час
- Преводи у структури `translations/{language-code}/`
## Изградња и постављање
## Изградња и објава
### Постављање Quiz апп-а (Azure Static Web Apps)
### Објава Quiz апликације (Azure Static Web Apps)
quiz-app је конфигурисан за постављање на Azure Static Web Apps:
quiz-app је конфигурисан за Azure Static Web Apps објављивање:
```bash
cd quiz-app
npm run build # Креира фолдер dist/
# Поставља путем GitHub Actions workflow-а на пуш ка main-у
npm run build # Креира фасциклу dist/
# Деплојује преко GitHub Actions рада на сваком пушовању у main
```
Конфигурација Azure Static Web Apps:
- **Локација апликације**: `/quiz-app`
- **Локација излаза**: `dist`
- **Workflow**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
- **Излазна локација**: `dist`
- **Радни ток**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
### Генерисање PDF документације
### Генерација документације у PDF
```bash
npm install # Инсталирај docsify-to-pdf
npm run convert # Генериши PDF из докса
npm install # Инсталирајте docsify-to-pdf
npm run convert # Генеришите PDF из докумената
```
### Docsify документација
### Документација преко Docsify
```bash
npm install -g docsify-cli # Инсталирајте Доксифи глобално
npm install -g docsify-cli # Инсталирајте Docsify глобално
docsify serve # Покрените на localhost:3000
```
### Изградње специфичне за пројекат
### Изградње специфичне за пројекте
Сваки директоријум пројекта може имати свој процес изградње:
- Vue пројекти: `npm run build` креира производне пакете
- Статички пројекти: Нема корака изградње, датотеке се служе директно
Свака фасцикла пројекта може имати свој процес изградње:
- Vue пројекти: `npm run build` прави продукцијске пакете
- Статички пројекти: Без корака изградње, служе се фајлови директно
## Смернице за Pull Request-ове
## Смјернице за Pull Request-ове
### Формат наслова
Користите јасне, описне наслове који указују на област измена:
Користите јасне, описне наслове који указују на област измене:
- `[Quiz-app] Додај нови квиз за час X`
- `[Lesson-3] Исправи типо у терраријум пројекту`
- `[Lesson-3] Исправи правописну грешку у terrarium пројекту`
- `[Translation] Додај шпански превод за час 5`
- `[Docs] Ажурирај упутства за подешавање`
- `[Docs] Ажурирај упутства за поставку`
### Обавезне провере
### Захтеване провере
Пре слања PR-а:
Пре слања PR:
1. **Квалитет кода**:
- Покрените `npm run lint` у погођеним пројектима
- Исправите све грешке и упозорења
- Покрените `npm run lint` у пројектним фасциклама које су погођене
- Исправите све грешке и упозорења линтера
2. **Верификација изградње**:
- Покрените `npm run build` ако је применљиво
- Осигурајте да нема грешака у изградњи
- Осигурајте да нема грешака при изградњи
3. **Валидација веза**:
3. **Валидација линкова**:
- Тестирајте све markdown линкове
- Проверите да референце слика раде
- Верификујте рад слика
4. **Преглед садржаја**:
- Провера правописа и граматике
- Осигурати да су примери кода исправни и едукативни
- Проверити да преводи задржавају оригинално значење
- Лектура за правопис и граматику
- Осигурајте да су примери кода исправни и образовни
- Верификујте да преводи задржавају оригинално значење
### Захтеви за допринос
- Прихватите Microsoft CLA (аутоматска провера при првом PR)
- Слажите се са Microsoft CLA (аутоматска провера при првом PR)
- Пратите [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
- Погледајте детаљне смернице у [CONTRIBUTING.md](./CONTRIBUTING.md)
- Наведите бројеве issues у опису PR-а када је применљиво
- Погледајте [CONTRIBUTING.md](./CONTRIBUTING.md) за детаљна упутства
- Реферишите бројеве тикета у опису PR ако је применљиво
### Процес прегледа
### Процес рецензије
- PR-ови се прегледају од стране одржавалаца и заједнице
- Приоритет је едукативна јасноћа
- PR-ове прегледају одржаваоци и заједница
- Приоритет је образовна јасноћа
- Примери кода треба да прате актуелне добре праксе
- Преводи се прегледају ради тачности и културне одговарајућости
- Преводи се прегледају ради тачности и културне прикладности
## Систем превођења
## Систем за превођење
### Аутоматизовани превод
### Аутоматски превод
- Користи GitHub Actions са co-op-translator workflow-ом
- Аутоматски преводи на 50+ језика
- Изворне датотеке у главним директорijумима
- Преведене датотеке у `translations/{language-code}/` директорijумима
- Користи GitHub Actions са co-op-translator радним током
- Преводи аутоматски на 50+ језика
- Изворне датотеке у главним фасциклама
- Преведене датотеке у фасциклама `translations/{language-code}/`
### Додавање ручних побољшања превода
1. Пронађите датотеку у `translations/{language-code}/`
1. Пронађите фајл у `translations/{language-code}/`
2. Направите побољшања уз очување структуре
3. Осигурате да примери кода остају функционални
4. Тестирајте локализовани садржај квизова
3. Осигурајте да примери кода остану функционални
4. Тестирајте евентуални локализовани квиз садржај
### Мета подаци о преводу
### Мета подаци превода
Преведене датотеке садрже заглавље са мета подацима:
Преведени фајлови садрже хедер са мета подацима:
```markdown
<!--
CO_OP_TRANSLATOR_METADATA:
@ -289,120 +289,120 @@ CO_OP_TRANSLATOR_METADATA:
-->
```
## Дебаговање и решавање проблема
## Дијагностика и решавање проблема
### Уобичајени проблеми
### Чести проблеми
**Quiz app не успева да стартује**:
- Проверите Node.js верзију (препоручено v14+)
- Обришите `node_modules` и `package-lock.json`, поново покрените `npm install`
- Проверите да ли је порт у употреби (подразумевано: Vite користи порт 5173)
**Quiz апликација не почиње**:
- Проверите верзију Node.js (препоручује се v14+)
- Обришите `node_modules` и `package-lock.json`, па покрените поново `npm install`
- Проверите да ли постоје конфликти портова (подразумевано: Vite користи порт 5173)
**API сервер неће да се покрене**:
- Верификујте да Node.js верзија испуњава минимум (node >=10)
**API сервер не почиње**:
- Проверите да Node.js верзија испуњава минимум (node >=10)
- Проверите да ли је порт већ у употреби
- Осигурајте да су све зависности инсталиране помоћу `npm install`
- Осигурајте да су све зависности инсталиране са `npm install`
**Прегледачки екстензија се не учитава**:
- Проверите да је manifest.json исправно форматиран
**Прегледачки додатак се не учитава**:
- Проверите да је manifest.json правилно форматиран
- Погледајте конзолу прегледача за грешке
- Пратите упутства за инсталацију специфична за прегледач
- Пратите упутства специфична за прегледач за инсталацију додатка
**Проблеми са Python chat пројектом**:
- Проверите да је OpenAI пакет инсталиран: `pip install openai`
- Верификујте да је GITHUB_TOKEN променљива окружења подешена
- Проверите приступне дозволе за GitHub Models
- Осигурајте да је пакет 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 екстензије за доследно форматирање
- Користите DevTools у прегледачу за дебаговање JavaScript-а
- За Vue пројекте инсталирајте Vue DevTools екстензију за прегледач
- Користите прегледачке DevTools за дебаговање JavaScript-а
- За Vue пројекте, инсталирајте Vue DevTools прегледачку екстензију
### Перформансна разматрања
### Разматрања перформанси
- Велики број преведених датотека (50+ језика) чини пуне клоне великим
- Користите shallow клонирање ако радите само на садржају: `git clone --depth 1`
- Велики број преведених фајлова (50+ језика) значи да су клонирања велика
- Користите shallow clone ако радите само на садржају: `git clone --depth 1`
- Искључите преводе из претрага када радите на енглеском садржају
- Процеси изградње могу бити споро приликом првог покретања (npm install, Vite build)
- Процеси изградње могу бити спори при првом покретању (npm install, Vite build)
## Безбедносне мере
## Безбедносна разматрања
### Променљиве окружења
- API кључеви никада не смеју бити послати у репозиторијум
- API кључеви никад не смеју бити унети у репозиторјум
- Користите `.env` фајлове (већ у `.gitignore`)
- Документирајте потребне променљиве окружења у README-има пројеката
- Документујте потребне променљиве окружења у README-има пројеката
### Python пројекти
- Користите виртуална окружења: `python -m venv venv`
- Одржавајте зависности ажурним
- GitHub токени требају имати минималне потребне дозволе
- Користите виртуелна окружења: `python -m venv venv`
- Одржавајте ажурираним зависности
- GitHub токени требају најмање потребне дозволе
### Приступ GitHub Models
- Потребни су Personal Access Tokens (PAT) за GitHub Models
- Токени треба да буду чувани као променљиве окружења
- Никада не шаљите токене или акредитиве у репозиторијум
- Потребни су Personal Access Token-ови (PAT) за GitHub Models
- Токени се чувају као променљиве окружења
- Никад не уносите токене или креденцијале у репозиторјум
## Додатне напомене
### Циљна публика
- Апсолутни почетници у веб развоју
- Потпуни почетници у веб развоју
- Студенти и самоуки учесници
- Наставници који користе програм у учионицама
- Наставници који користе наставни план у учионицама
- Садржај је дизајниран за приступачност и постепено стицање вештина
### Едукативна филозофија
### Образовна филозофија
- Приступ учењу базиран на пројектима
- Често провере знања (квизови)
- Практичне вежбе програмирања
- Примери примене у стварном свету
- Фокус на основе пре приступа оквирима (frameworks)
- Приступ учењу заснован на пројектима
- Честа провера знања (квизови)
- Практичне вежбе писања кода
- Примери примене из стварног света
- Фокус на основе пре оквира (framework-a)
### Одржавање репозиторијума
- Активна заједница ученика и сарадника
- Активна заједница учесника и сарадника
- Редовна ажурирања зависности и садржаја
- Прати се проблеми и дискусије од стране одржавалаца
- Аутоматизација ажурирања превода преко 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) препоручен за ученике
- Додатни курсеви: Generative AI, Data Science, ML, IoT програми доступни
- Додатни курсеви: Generative AI, Data Science, ML, IoT наставни планови доступни
### Рад са специфичним пројектима
### Рад са одређеним пројектима
За детаљна упутства о појединачним пројектима, погледајте README фајлове у:
- `quiz-app/README.md` - Vue 3 квиз апликација
- `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 помоћник за разговор
- `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 -->
Loading…
Cancel
Save