GitHub comes with built-in features for collaborating on projects and tracking progress. You will learn how to use most of these features and workflows through the homework submission process. Taking the time to understand how we handle homework at HYF will directly prepare you for working on a team using the agile development methodology.
The cornerstone of the homework submission process is GitHub Issues (link 1, link 2). You can think of an issue as a high-tech post-it note. Each week you will be required to create 2 issues: a Homework Issue and a Wednesday Check-in.
By using check boxes (
- [ ]) you can turn your issues into a task list. This will let you and your coaches see how far you are through the week's assignments just by displaying a progress bar, without needing to open the issue.
Over your time at HYF, you and your classmates will create hundreds of issues in the class repository. To keep everything well-organized and searchable you are required to use labels, milestones, and assignees.
GitHub Notifications will be your best friend. Keep an eye on them to know when a classmate is asking for help, when someone has answered your question, when your homework has been reviewed, and much more!
If you want to ask for help from, or share a tip with a specific person you can mention them in your issue by writing
@userName. They'll get a notification on their GitHub account and will know to come read your issue.
To help you, your classmates, and your coaches support each other through each module you will be using GitHub Project Boards.
Feeling stuck? Move your issue into the BLOCKED column so everyone knows you have a question!
Want to see just your issues? Or just the project-1 issues? You can filter cards in a project board based on their labels, milestones, assignees and more.
Coaches will often give you feedback on your assignments by sending a Pull Request directly to your assignment repository. This is a standard part of the code review workflow, after some practice you'll find this is a very practical way to collaborate on a shared code base.