/Group-Assignment-Create-A-GitHub-Pages-Website

GitHub Classroom assignment for assessing collaboration using Git and GitHub.

🤝 Group Assignment - Create A GitHub Pages Website

points bar

In your group, you will collaborate on the creation of a website built using GitHub Pages.

Your website can be about one of the following topics, or your teacher may give you a topic for the website.

History of Programming
  • Each group member should choose a different programming language and create a page that details the key characteristics of the language, its development history, and key influences on the language. Sources for each page should be cited.
  • The site should include a 'timeline' page that each member contributes to. The 'timeline' page should have each programming language listed in the correct time-slot, linking to that language's page.
Cloud Computing
  • Each group member should choose one of either: a key characteristics of cloud computing OR a service model used in cloud computing. They should create a page that describes the characteristic or service model they have chosen.
  • The site should also include a 'cloud services' page that each member contributes to. This page should give an overview of the services offered by the major cloud providers, highlighting the key services offered per service type.

Each member of your team will need to make a contribution to the development of the website:

  • each group member is to create at least one page
  • each group member is to contribute content to a common page
  • each group member will need to review the work of at least one other group member and have their work reviewed too.

The site should have common navigation, header and footer on all pages. Consistent theme and formatting should be used throughout the site.

You will need to enable GitHub Pages for this repo. You are to use the main branch and /docs folder for site contents.

When enabled, your site will be available at: https://<org name>.github.io/<repo name>

🎯 Tasks

(You might need to refresh the page to see task completion statuses.)

GitHub Pages

GitHub Pages is a website hosting service from GitHub that takes files straight from a repository on GitHub and renders them into a static website. Pages can be created using simple Markdown files, or for more flexibility, HTML, CSS and JavaScript can be used.

GitHub Pages can be enabled in the repository's settings.

activity status ⌨️ Activity - Enable GitHub Pages
Enable pages for this repo. Use the main branch and /docs folder for site contents. The /docs folder already contains an index.md file for you to get started with.

Collaboration

Commits

activity status ⌨️ Activity - Make commit

Each member in the team must make a commit that adds a new file.

You can either use the editing tools on GitHub to do this, or clone this repository to your local computer, make the changes, commit them and push the commit back to GitHub.

Pull Requests

Pull Requests are a way to discuss changes before implementing them.

activity status ⌨️ Activity - Open Pull Request
Each member in the team must open a pull request. The pull request should include relevant proposed changes to the website.
activity status ⌨️ Activity - Review Pull Request
Each member in the team must comment on someone else's pull request. The comment should be relevant to their proposed changes.

Merges

Merging is an import feature of Git. When you create a branch, at some point you will need to merge those changes back into main or another branch. A merge commit is a special kind of commit that is created when combining, or merging, branches.

📺 Video: Merge

activity status ⌨️ Activity - Merge Commit

Each member in the team must author a merge commit.

Merges can be made, either by using GitHub's Pull Request feature, or locally and then pushed to the GitHub repository. Remember to resolve any merge conflicts before committing each merge.


💡 Additional Help and Hints

GitHub Pages

📺 Video: What is GitHub Pages?

For an introduction to using GitHub Pages, try the MS Learn course 📖Create and host web sites by using GitHub Pages.

Jekyll

For more theming and configuration options, GitHub Pages supports the Jekyll static site generator. Jekyll allows the use of re-usable elements, which can be used for common page elements like site navigation. Page layout can be customized by using page templates.

Merging

Resolving Merge Conflicts

Git does a reasonable job of figuring out how to combine files that have changes in both branches and usually merges are problem free. Sometimes though, git isn't sure how to combine changes in a file. This will create what is called a 'merge conflict'. This is nothing to be afraid of. Git has paused the merge and asked a human to combine the changes instead.

Merge conflicts usually arise when two people have changed the same lines in a file. In these cases, Git cannot automatically determine what is correct. Git will mark the file as being conflicted and halt the merging process. Git will add standard conflict-resolution markers to the files that have conflicts, highlighting where in a file the conflict has occurred, and the content that needs to be merged. These visual markers are: <<<<<<<, =======, and >>>>>>>.

The conflicted files can be edited as normal. Edit the files to combine the two changes as desired. The conflict-resolution markers are just text and can be edited out at the same time the conflict is fixed.

When the conflicts are fixed, use git add on the conflicted files to tell Git that the merge conflict has been resolved. Then run git commit to finish the merge commit.

Conflicts only affect the developer conducting the merge. The rest of the team is unaware of the conflict. It is then the developers' responsibility to resolve the conflict.