Best Practices Guide
Agile, GitHub, VSCode Development
- The Development Process
- 1. Brainstorm requirements
- 2. Design
- 3. Development
- 4. Deployment
- Scrum Teams
The Development Process
1. Brainstorm requirements
Before programming or designing anything, you should have a clear idea of the features you want to create, bugs you want to fix, and goals you want to meet. GitHub Issues are especially useful for creating requirements.
GUI:
-
In your repository, click the
Issues
tab. Make sure you are in the right repository. For instance, if you want to write a requirement for the frontend, make sure you are in the frontend repository. -
Click
New Issue
-
Create a descriptive title for for issue, and describe it thoroughly in the comments. Add links to existing code, resources, etc.
-
For further organization, you can assign an issue to a person or a project
CLI:
gh issue create --title "title here" --body "body here
You can also use the parameters --assignee
, --project
, and --milestone
to add more info to your issue.
Projects
GitHub Projects allow you to organize your issues on a higher level, and make it easier to group issues by person, completion status, and topic.
Tutorial source: GitHub Docs
-
In your project, navigate to projects,, and create a new project.
-
The GitHub Project can be either in a table (vertical) or board (horizontal) format.
-
Add a project description and readme.
-
Once you've created your poject, you can add columns to organize issues for your project's repositories.
2. Design
Once you have a set of requirements, begin designing. Make sure your designs are easy to follow, but also practical to implement. If you discover that a feature is impractical during the design process, you can update your requirements.
Tools: Figma, Canva, Google, etc.
For backend, you can use a diagram to model how information in your databases will be stored/interact with each other.
3. Development
GitHub and VS Code can be used simultaneously.
Make sure to install the GitHub extension with VS Code.
- Fork the main project repository. This will give you a copy of the upstream repo, allowing you to iterate on ideas before merging your changes into the main project.
In the repository, click on fork:
- Clone the forked repository onto your local system. This is the copy of the code that you will be working with.
git clone [link to repo]
- Enter your project's directory, and open the project in VS Code.
cd myProject
code .
- If you make any changes, first stage them. Then, commit them. This will assign your changes to a "commit", making them easier to keep track of.
git add [files with changes you want to stage]
git commit -m "detailed commit message"
- Push your changes to your forked repository.
git push
Branching
Instead of pushing all of your changes to the main
branch, it's good practice to work on a separate branch specifically dedicated to the feature you are testing. When you switch branches, your commits will be saved to the branch you have checked out.
To switch branches, use the command:
git checkout <name of branch>
A more detailed guide to branching can be found here.
Pull Requests
Once you're ready to merge your changes with the main upstream repository, you can create a Pull Request (or PR).
-
Navigate to the branch with the changes you want to merge.
-
Click
Pull Request
above the list of files. -
Make sure your pull request has the main repository of the upstream branch as the
base
. Double check you are on the right branch. -
Add a title and description to your pull request, and create it. Document the changes that you made, and include any helpful screenshots/information.
-
Someone else can test your pull request and make sure it works/doesn't have any conflicts before merging it into the final branch!
4. Deployment
Instructions for AWS Deployment can be found here. Setting up automatic deployment for your backend will speed up the development process.