https://github.com/kottans/frontend-2022-homeworks
https://github.com/kottans/frontend-2022-homeworks
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/kottans/frontend-2022-homeworks
- Owner: kottans
- Created: 2022-05-30T18:21:39.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2024-10-29T22:41:56.000Z (over 1 year ago)
- Last Synced: 2024-10-30T00:46:33.306Z (over 1 year ago)
- Language: HTML
- Size: 154 MB
- Stars: 16
- Watchers: 4
- Forks: 184
- Open Issues: 206
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
README
[![MIT Licensed][icon-mit]][license]
[![Kottans-Frontend][icon-kottans]][kottans-frontend]
[![Telegram][icon-chat]][chat]
# Frontend 2022 course homeworks
Цей репозиторій було створено для того, щоб студенти могли надсилати свої домашні завдання для перевірки.
Виконайте наведені нижче інструкції, щоб надіслати код на розгляд.
**Зміст**
- [Огляд contribution flow](#%D0%BE%D0%B3%D0%BB%D1%8F%D0%B4-contribution-flow)
- [Словарик](#%D1%81%D0%BB%D0%BE%D0%B2%D0%B0%D1%80%D0%B8%D0%BA)
- [Contribution stage A. Налаштування форку і локального клону](#contribution-stage-a-%D0%BD%D0%B0%D0%BB%D0%B0%D1%88%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F-%D1%84%D0%BE%D1%80%D0%BA%D1%83-%D1%96-%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE-%D0%BA%D0%BB%D0%BE%D0%BD%D1%83)
- [Contribution stage B. Додавання нового коду та оновлення submissions](#contribution-stage-b-%D0%B4%D0%BE%D0%B4%D0%B0%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F-%D0%BD%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE-%D0%BA%D0%BE%D0%B4%D1%83-%D1%82%D0%B0-%D0%BE%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%BD%D1%8F-submissions)
- [B1. Відправка коду нового завдання (app).](#b1-%D0%B2%D1%96%D0%B4%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0-%D0%BA%D0%BE%D0%B4%D1%83-%D0%BD%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE-%D0%B7%D0%B0%D0%B2%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F-app)
- [B2. Коли потрібні будь-які зміни](#b2-%D0%BA%D0%BE%D0%BB%D0%B8-%D0%BF%D0%BE%D1%82%D1%80%D1%96%D0%B1%D0%BD%D1%96-%D0%B1%D1%83%D0%B4%D1%8C-%D1%8F%D0%BA%D1%96-%D0%B7%D0%BC%D1%96%D0%BD%D0%B8)
- [B3. Коли всі ваші PR нарешті будуть вмержені](#b3-%D0%BA%D0%BE%D0%BB%D0%B8-%D0%B2%D1%81%D1%96-%D0%B2%D0%B0%D1%88%D1%96-pr-%D0%BD%D0%B0%D1%80%D0%B5%D1%88%D1%82%D1%96-%D0%B1%D1%83%D0%B4%D1%83%D1%82%D1%8C-%D0%B2%D0%BC%D0%B5%D1%80%D0%B6%D0%B5%D0%BD%D1%96)
- [FAQ](#faq)
- [Довідкові матеріали та усунення проблем](#%D0%B4%D0%BE%D0%B2%D1%96%D0%B4%D0%BA%D0%BE%D0%B2%D1%96-%D0%BC%D0%B0%D1%82%D0%B5%D1%80%D1%96%D0%B0%D0%BB%D0%B8-%D1%82%D0%B0-%D1%83%D1%81%D1%83%D0%BD%D0%B5%D0%BD%D0%BD%D1%8F-%D0%BF%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC)
## Огляд contribution flow
Тепер ви є учасником освітнього проекту з відкритим кодом.
[Ці слайди](https://docs.google.com/presentation/d/13dati5gvA5f_hQFgxJPhPicjF5CRKu1e75RSsahmEaU/edit#slide=id.g58afea5148_0_0)
візуалізують contribution workflow.
Наведені нижче інструкції проведуть вас через contribution workflow -
так ви будете публікувати код своїх завдань.
## Словарик
| Термін | Визначення |
|------------------------|---------------------------------------------------------------------------------------------------|
| repo | скорочення від "репозиторій" |
| _homeworks main repo_ | Kottans FE репозиторій домашніх завдань курсу: https://github.com/kottans/frontend-2022-homeworks |
| _homeworks fork_ | ваш власний форк головної репи домашніх завдань |
| _homeworks local repo_ | ваш локальний клон форку домашнього завдання |
| _app_ | програма (або веб-сторінка), яку ви розробляєте для виконання конкретного завдання в курсі |
| _app repo_ | репозиторій, який містить код вашої програми |
## Contribution stage A. Налаштування форку і локального клону
Зробити це потрібно лише один раз.
A1. Форкніть основне репо _homeworks_ через веб-інтерфейс GitHub
A2. Клонуйте _homeworks fork_ на вашій локальній машині:
- `git clone https://github.com//frontend-2022-homeworks.git`
> Перед будь-якими подальшими операціями переконайтеся, що ви перебуваєте в каталозі локального repo homeworks
A3. Додайте _homeworks main repo_ як upstream:
- `git remote add upstream https://github.com/kottans/frontend-2022-homeworks.git`
A4. У _homeworks local repo_ додайте папку зі своїм іменем користувача github до каталогу `submissions`
Ви додаватимете код із кожного завдання (app) в його окремий каталог під
ваш іменований каталог. Отже, структура файлу буде схожа на наступну
(у цьому прикладі `amashoshyna` - це ім'я користувача, а `js-dom` - назва завдання)

## Contribution stage B. Додавання нового коду та оновлення submissions
### B1. Відправка коду нового завдання (app).
> ВАЖЛИВІ речі, про які слід завжди пам’ятати.
>
> 1. Не робіть коміти у `main`.
>
> 2. `checkout main` перед створенням нової гілки, тобто не створюйте нову гілку, поки ви
> на будь-якій гілці яка не `main`.
>
> 3. Не мержіть свої гілки в `main`. Ви можете змержити `main` у свою гілку, якщо ви
> усвідомте, навіщо вам це потрібно. У поточному робочому процесі вам зазвичай це не потрібно.
>
> І не панікуйте, якщо під час переходу між гілками якийсь код зник.
> Він стане доступним для вас, коли ви повернетеся до певної гілки.
> Суть полягає в тому, щоб подавати завдання ізольовано одне від одного.
B11. Переконайтеся, що app, який ви розробляєте для виконання завдання:
(a) має власний спеціальний проект/репозиторій на GitHub (_app repo_)
(b) [опубліковано на GitHub pages](./publish-your-app.md)
B12. In your _homeworks local repo_ do the following:
B121. Синхронізуйте `main` гілку вашого _homeworks local repo_ та _homeworks fork_ (`origin`)
з гілкою `main` _homeworks main repo_ (`upstream`):
- `git checkout main`
- `git pull upstream main`
- `git push origin main`
> На той момент у вас вже може бути код у іншій гілці завдань
> і може здатися, що його вже немає. Не хвилюйтеся, він все ще доступний на
> власній гілкці завдань. Немає необхідності об’єднувати цю гілку в `main`,
> і не мержіть його в `main`, оскільки це, швидше за все, призведе до конфліктів коду.
B122. Створіть спеціальну гілку для вашої нової кодової бази завдань (app), перебуваючи на `main`:
- `git checkout main`
- `git branch ` (`` can be e.g. `dom-api-task`)
B123. Додайте необхідні файли:
- `git checkout `
- створіть каталог для бази коду вашого завдання (app) у розділі `./submissions/YOUR_USERNAME`, щоб
шлях до вашого завдання був – `./submissions/YOUR_USERNAME/TASK_NAME`
(перегляньте знімок екрана вище для прикладу структури, яку ви очікуєте)
- копіювати файли з вашого _app repo_, ті і тільки ті, які потрібні для перевірки
> **ВАЖЛИВО!** Додайте лише файли/код, необхідні для перевірки і **написані вами**, наприклад файли `html`, `css`, `scss`, `js` тощо.
> Зображення, значки, каталоги IDE, такі як `.idea`, `.vscode` тощо - **не потрібні** для перевірки коду.
> `css`-файли, які є результатом компіляції вашого `scss`, теж немає сенсу перевіряти, а отже і подавати на перевірку.
> **Ніколи** не використовуйте `.git` у своїх завданнях які надсилаєте.
> Скопіюйте потрібні файли **по одному**. **Ніколи не копіюйте папки** масово, оскільки це може спричинити за собою
> копіювання небажаних файлів і **прихованих папок**.
- помістіть на стейдж файли за допомогою команди `git add` і закомітьте зміни
B124. Відкрийте Pull Request (PR):
- запуште до _homeworks fork_: `git push --set-upstream origin `
- зачекайте, доки операція push завершиться успішно
- перейдіть до вашого _homeworks fork_ на GitHub
- GitHub запропонує відкрити Pull Request із вашої нової гілки, просто зробіть це

- вам буде запропоновано PR шаблон повідомлення з інструкцією; прочитайте їх і заповніть, як це передбачено
- коли PR відкрито, перевірте **Файли змінено**, щоб побачити, що надсилається
> Переконайтеся, що ваш PR **не містить жодних непов’язаних файлів або комітів** від будь-яких інших завдань,
> і жодні файли з інших ваших завдань або від інших авторів не видаляються
B125. Попросити рев'ю:
- опублікуйте посилання на свій PR у
[FE Questionarium chat](https://t.me/joinchat/DmX0JAl-mh5W0jrWli8Ycw)
і попросіть наставників і колег про перевірку коду
- відслідковувати запити на можливі зміни
### B2. Коли потрібні будь-які зміни
Щоразу, коли ви хочете або вам буде запропоновано внести будь-які зміни, виконайте такі дії:
B21. Оновіть свою програму (у відповідному _app repo_):
- впровадити зміни
- переконайтеся, що публікація вашої програми оновлена
B22. Оновіть свій PR - у вашому _homeworks local repo_:
- `git checkout `
- скопіюйте змінені файли (один за одним) у ваш каталог завдань із _app repo_
- stage, commit і push
Ваш PR буде оновлено автоматично.
B23. Перевірте свій PR і повідомте ментора:
- перейдіть до свого PR у _homeworks main repo_
- перевірте надіслані файли в розділі **Файли змінено**;
ви повинні побачити свої останні зміни у файлах
- клацніть **Re-request review** у списку ваших PR-рев'юерів щоб
привернути увагу наставників, щоб вони знали, що є нові зміни для перегляду
> Коли ваш PR буде нарешті змержено, напишіть міркування про завдання
> і досвід код рев'ю до вашого щоденника студента (ваш repo `kottans-frontend`):
> - _що для вас було нового_
> - _що вас здивувало_
> - _що ви збираєтеся використовувати в майбутньому_
### B3. Коли всі ваші PR нарешті будуть вмержені
Оновіть _homeworks local clone_ та _homeworks fork_, щоб мати весь свій код
у `main`:
- `git checkout main`
- `git pull upstream main`
- `git push origin main`
## FAQ
**Q1: Я зробив(ла) частину домашок в рамках попереднього курсу або р2р.
Мені їх зарахують?**
A1: Щоб це сталося, треба зробити наступне:
Для всіх PR, які не вмерджено - подай код на рев'ю, як описано
в цьому документі.
Для PR, які було вмерджено в інших репо:
1. Знайди всі вмерджені PR в інших репо, які треба зарахувати, і май лінки на них під рукою.
1. Відкрий issue в цьому репо скориставшись
[шаблоном](https://github.com/kottans/frontend-2022-homeworks/issues/new?template=import-tasks-from-another-repo.md&title=your-github-username:%20Import%20tasks%20from%20another%20homeworks%20repo)
1. В студентському чаті закинь лінк на issue і попроси менторів врахувати вже раніше прийняті задачі.
1. Ментори перевірять статус залінкованих PR і навісять відповідні лейбли.
1. Через деякий час в [статі цього репо](./stats/pr-stats.md) з'являться відповідні записи.
## Довідкові матеріали та усунення проблем
1. [Contribution guide for beginners](https://gist.github.com/OleksiyRudenko/236c3046fbba028e0555fa847dae7001).
1. Зверніться до [цього посібнику з усунення проблем](https://gist.github.com/OleksiyRudenko/8b3ddb664308de0634b53c525e551d8b)
щоразу, коли ви стикаєтеся з будь-якими конфліктами під час оновлення `main` з upstream (оригінальне репо)
або маєте непов’язані файли чи коміти у своїх pull requests
1. Є проблеми? Запитайте у спільноти. У багатьох інших були подібні проблеми, спільнота допоможе вам
[icon-mit]: https://img.shields.io/badge/license-MIT-blue.svg
[license]: https://github.com/OleksiyRudenko/a-tiny-JS-world/blob/master/LICENSE.md
[icon-chat]: https://img.shields.io/badge/chat-on%20telegram-blue.svg
[icon-kottans]: https://img.shields.io/badge/%3D(%5E.%5E)%3D-frontend-yellow.svg
[kottans-frontend]: https://github.com/kottans/frontend
[chat]: https://t.me/joinchat/DmX0JAl-mh5W0jrWli8Ycw