{"id":18605336,"url":"https://github.com/kottans/frontend-2021-homeworks","last_synced_at":"2025-08-31T16:33:07.159Z","repository":{"id":50662065,"uuid":"301338703","full_name":"kottans/frontend-2021-homeworks","owner":"kottans","description":"Repository for home works of FE2021 course students","archived":false,"fork":false,"pushed_at":"2021-04-10T16:03:27.000Z","size":159485,"stargazers_count":20,"open_issues_count":3,"forks_count":81,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-03-25T03:51:19.596Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kottans.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":["suchov"],"patreon":"kottans","open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2020-10-05T08:18:38.000Z","updated_at":"2021-07-29T09:01:11.000Z","dependencies_parsed_at":"2022-09-12T15:43:06.537Z","dependency_job_id":null,"html_url":"https://github.com/kottans/frontend-2021-homeworks","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kottans%2Ffrontend-2021-homeworks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kottans%2Ffrontend-2021-homeworks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kottans%2Ffrontend-2021-homeworks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kottans%2Ffrontend-2021-homeworks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kottans","download_url":"https://codeload.github.com/kottans/frontend-2021-homeworks/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248290019,"owners_count":21078923,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-07T02:20:57.443Z","updated_at":"2025-04-10T20:30:57.927Z","avatar_url":"https://github.com/kottans.png","language":"JavaScript","funding_links":["https://github.com/sponsors/suchov","https://patreon.com/kottans"],"categories":[],"sub_categories":[],"readme":"[![MIT Licensed][icon-mit]][license]\n[![Kottans-Frontend][icon-kottans]][kottans-frontend]\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\n[![Telegram][icon-chat]][chat]\n\n# Frontend 2021 course homeworks\n\nThis repo was created for students to submit their homeworks for review.\n\nPlease follow the instructions below to submit your code for review.\n\n\u003c!-- START doctoc generated TOC please keep comment here to allow auto update --\u003e\n\u003c!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --\u003e\n**Table of Contents**\n\n- [Overview of contribution flow](#overview-of-contribution-flow)\n- [Glossary](#glossary)\n- [Contribution stage A. Setup the fork and local clone](#contribution-stage-a-setup-the-fork-and-local-clone)\n- [Contribution stage B. Adding new code and updating submissions](#contribution-stage-b-adding-new-code-and-updating-submissions)\n  - [B1. Submitting new task (app) code base](#b1-submitting-new-task-app-code-base)\n  - [B2. When any changes are required](#b2-when-any-changes-are-required)\n  - [B3. When all of your PRs are finally merged](#b3-when-all-of-your-prs-are-finally-merged)\n- [Reference materials and troubleshooting](#reference-materials-and-troubleshooting)\n\n\u003c!-- END doctoc generated TOC please keep comment here to allow auto update --\u003e\n\u003c!-- *generated with [DocToc](https://github.com/thlorenz/doctoc)* --\u003e\n\n## Overview of contribution flow\n\nNow you are a contributor to an educational open source project.\n\n[These slides](https://docs.google.com/presentation/d/13dati5gvA5f_hQFgxJPhPicjF5CRKu1e75RSsahmEaU/edit#slide=id.g58afea5148_0_0)\nvisualize the contribution workflow.\n\nThe instructions below will lead you through the contribution workflow\nas you will submit your tasks code base.\n\n## Glossary\n\nTerm | Definition\n---  | ---\nrepo                   | short for 'repository'\n_homeworks main repo_  | Kottans FE course homeworks repository: https://github.com/kottans/frontend-2021-homeworks\n_homeworks fork_       | your own fork of homeworks main repo\n_homeworks local repo_ | your local clone of your homeworks fork\napp                    | an application (or web page) you develop to fulfil a specific task in the course\n_app repo_             | a repository that contains your application code\n\n## Contribution stage A. Setup the fork and local clone\n\nYou need to do this only once.\n\nA1. Fork _homeworks main repo_ via GitHub web interface\n\nA2. Clone _homeworks fork_ on your local machine:\n   - `git clone https://github.com/YOUR_USERNAME/frontend-2021-homeworks.git`\n\n\u003e Make sure you are inside the homeworks local repo directory before any further operations  \n\nA3. Add _homeworks main repo_ as an upstream:\n   - `git remote add upstream https://github.com/kottans/frontend-2021-homeworks.git`\n\nA4. In _homeworks local repo_, add a folder with your github username under `submissions` directory\n\nYou will add code from your every task (app) in its individual directory under\nyour named directory. So, the file structure will be similar to the following\n(in this example `amashoshyna` is a username and `js-dom` is a task name)\n\n![File structure example](img/file-structure.png)\n\n## Contribution stage B. Adding new code and updating submissions \n\n### B1. Submitting new task (app) code base\n\n\u003e IMPORTANT things to remember at all times.\n\u003e\n\u003e 1. Do not commit to `main`.\n\u003e\n\u003e 2. `checkout main` before creating a new branch, i.e. do not create a new branch while\n\u003e on any branch that is not `main`.\n\u003e\n\u003e 3. Do not merge your branches into `main`. You can merge `main` into your branch if you\n\u003e realize why you need this. In current workflow you normally do not need this.\n\u003e\n\u003e And don't panic if some code seems to be gone when you switch between branches.\n\u003e It will be available to you once you switch back to a specific branch.\n\u003e The point is to submit tasks in isolation from each other.\n\nB11. Make sure that the app you develop to complete the task:\n\n(a) has its own dedicated project/repository on GitHub (_app repo_)\n\n(b) is [published on GitHub pages](./publish-your-app.md)\n\nB12. In your _homeworks local repo_ do the following:\n\nB121. Sync up `main` branch of your _homeworks local repo_ and _homeworks fork_ (`origin`)\nwith the `main` branch of _homeworks main repo_ (`upstream`):\n - `git checkout main`\n - `git pull upstream main`\n - `git push origin main`\n  \n\u003e At that moment you may already have some code under some other task branch\n\u003e and it may seem to be gone. Don't worry, it is still available under\n\u003e its own task branch. No need to merge that branch into the `main`,\n\u003e and do not merge it into the `main` as this will most likely entail code conflicts.  \n\nB122. Create a dedicated branch for your new task (app) code base while on the `main`:\n  - `git checkout main`\n  - `git branch \u003ctask-branch-name\u003e` (`\u003ctask-branch-name\u003e` can be e.g. `dom-api-task`)\n   \nB123. Add required files:\n - `git checkout \u003ctask-branch-name\u003e`\n - create a directory for your task (app) code base under `./submissions/YOUR_USERNAME` so\n   that the path to your task is `./submissions/YOUR_USERNAME/TASK_NAME`\n   (see the screenshot above for an example of the structure you are expected to have)\n - copy files from your _app repo_, those and only those that are required for the review\n\n\u003e **IMPORTANT!** Put only files/code required to conduct review, i.e. `html`, `css`, `js` files and such.\n\u003e Images, icons, IDE directories like `.idea`, `.vscode` etc **are not required** for code review.\n\u003e **Never** have `.git` directory in your task submissions.\n\u003e Copy required files **one by one**. **Never copy the directories** in bulk as this may entail\n\u003e copying unwanted files and **hidden directories**.\n\n - stage files with `git add` command and commit changes\n\nB124. Open a Pull Request (PR):\n - push to _homeworks fork_: `git push --set-upstream origin \u003ctask-branch-name\u003e`\n - wait until push operation completes successfully\n - navigate to your _homeworks fork_ on GitHub\n - GitHub will offer to open a Pull Request from your new task branch; Just do it\n\n![github-pr-opening](./img/github-pr-opening.png)\n \n - you will be offered a PR template message with instructions; read them and fulfil as prescribed\n - once PR is open, check **Files changed** to see what's being submitted\n   \n\u003e Make sure your PR **doesn't contain any unrelated files or commits** from any other tasks,\n\u003e and no files from other your tasks or from other authors are being deleted\n\nB125. Ask for a review:\n - post a link to your PR in the\n   [FE Questionarium chat](https://t.me/joinchat/DmX0JAl-mh5W0jrWli8Ycw)\n   and ask mentors and peers for a code review\n - monitor your pull request for possible change requests\n \n### B2. When any changes are required\n\nWhenever you want or are requested to make any changes do the following:\n\nB21. Update your app (in the relevant _app repo_):\n - implement changes\n - make sure your app publication is updated\n\nB22. Update your submission PR - in your _homeworks local repo_:\n - `git checkout \u003ctask-branch-name\u003e`\n - copy changed files (one by one) to your task directory from the _app repo_\n - stage, commit and push\n\nYour PR will be updated automagically.\n\nB23. Check your PR and summon a mentor:\n - navigate to your PR in _homeworks main repo_\n - check your submitted files under **Files changed**;\n   you will want to see your latest changes in the files\n - click **Re-request review** icon in the list of your PR reviewers\n   to draw mentors' attention, so that they know you changed\n   your code and there is something new to see\n\n\u003e When your submission gets finally merged, put your reflections on the task\n\u003e and your code review experience to your student's diary (your `kottans-frontend` repo):\n\u003e  - _what was new to you_\n\u003e  - _what surprised you_\n\u003e  - _what you intend to use in future_\n\n### B3. When all of your PRs are finally merged\n\nUpdate _homeworks local clone_ and your _homeworks fork_ to have all of your code\nunder the `main` branch:\n - `git checkout main`\n - `git pull upstream main`\n - `git push origin main` \n\n## Reference materials and troubleshooting\n\n1. [Contribution guide for beginners](https://gist.github.com/OleksiyRudenko/236c3046fbba028e0555fa847dae7001).\n1. Refer to [this troubleshooting guide](https://gist.github.com/OleksiyRudenko/8b3ddb664308de0634b53c525e551d8b)\n   whenever you face any conflicts when updating `main` from the upstream (original repo)\n   or have unrelated files or commits in your pull requests\n1. Any issues? Ask community. Many others had similar issues, the community will help you out\n\n[icon-mit]: https://img.shields.io/badge/license-MIT-blue.svg\n[license]: https://github.com/OleksiyRudenko/a-tiny-JS-world/blob/master/LICENSE.md\n[icon-chat]: https://img.shields.io/badge/chat-on%20telegram-blue.svg\n[icon-kottans]: https://img.shields.io/badge/%3D(%5E.%5E)%3D-frontend-yellow.svg\n[kottans-frontend]: https://github.com/kottans/frontend\n[chat]: https://t.me/joinchat/DmX0JAl-mh5W0jrWli8Ycw\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkottans%2Ffrontend-2021-homeworks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkottans%2Ffrontend-2021-homeworks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkottans%2Ffrontend-2021-homeworks/lists"}