Skip to content

Flx232/project-management-github-activity

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

156 Commits
 
 
 
 
 
 
 
 

Repository files navigation

MyWebClass Collaboration and Brainstorming Assignment

Overview

The purpose of this assignment is to practice collaborating using GIT/GitHub and develop the requirements for the mywebclass.org website's tutorials and courses. To accomplish this task we are going to create three lists(What I Know, What I Don't Know, and What I Want To Learn) and consolidate the items from everyone in the class into a master list that counts the number of repeated issues. You need at least 3 items for each list for a total of 9 items and you should plan that these items are going to be used for project 1 as the basis for the possible topics that people can choose to build online tutorials about.

Learning Objectives:

  1. You will learn to collaborate online using GIT
  2. You will learn to merge pull requests and resolve merge conflicts
  3. You will learn to manage a basic project using GitHub Project.

Complete the Assignment By adding your issues to these 3 lists and count how many times each issue is mentioned. The number in the bracket next to each issue is the count, you should set your count at 1 for your issue. We need the count of how many times the issue is mentioned, so that we can prioritze each issue.

Your list should look like this:

Things we understand**

  1. Python[1]
  2. Linux Directory listing[5]
  3. Docker [1]
  4. Git [2]
  5. JavaScript
  6. React
  7. Pull Request[1]
  8. Docker Installation[1]
  9. Python libraries
  10. Set up an oracle server

Things we don't understand

  1. Git Stash[2]
  2. GIt pull[3]
  3. Git Rebase[1]
  4. GIt Track[1]
  5. Git Cherry-pick[1]
  6. GIT status[3]
  7. sql and database
  8. traefik[2]
  9. Javascript
  10. Watchtower
  11. Continuous integration/continuous deployment (CI/CD)

Things we want to know next**

  1. Django [1]
  2. OpenStack[1]
  3. Ceph[1]
  4. web maintenance & security
  5. Write Dockerfile
  6. Elastic Search Indexing [3]
  7. Cloud deployment with Kubernetes[5]
  8. Teraform[3]

Prerequisite - YOU. MUST SETUP PRIVATE PUBLIC KEY AUTH WITH GITHUB OR YOU WILL GET ACCESS DENIED ERRORS WHEN YOU PUSH FROM THE TERMINAL

Add your ssh public key to github - See video **open powershell or terminal and run "ssh-keygen -b 4096" and hit enter through the prompts and then open the file your home directory/.ssh/id_rsa.pub and copy that text into your github account settings under SSH/GPG keys -> add key. in one of the prompts it will tell you where it is going to save the key. If you already have a key reusue the one you have and cancel out of the process with control c **. I do it on my mac with the command vi ~/.ssh/id_rsa.pub" and then i press shift colon : and q to quit

You will accomplish this assignment in 5 phases:

  1. Each person will follow the instructions below to create one issue per list item i.e. 9 issues. You need one issue per item in your list for a total of 9 issues.. Resolve each issue to add each of your items to the appropriate list.

  2. Find a person in class and then make a pull request for each item on your list to THEIR repository. You make 9 pull requests to someone else

This person should then merge the pull requests and resolve the merge conflict to add new items to their list and increment the count on dupilicate items. We want to know how many people said the same thing, so that we can prioritize the requirement, when we decide on what to make in project 1.

  1. Once you have merged the pull requests from someone else in class, you need to find someone new in class to submit a pull request called "merge my list". that asks to merge your master into their master, so that they can add new items to their list and increment the duplicate issue count for each item in the list. Create an issue using the template "Assignment Master List" and reference the pull request that you make in the issue. Make sure you make a issue template to accept this issue on your own repository and provide these instructions.

  2. The person that receives the pull request from #3 needs to resolve merge conflics and merge, so that the new issues are added and duplicate counts are incrimented as necessary.

  3. Once you have merged someone else's combined list into your project make an issue and a pull request to the "complete_list" branch on the upstream repository i.e. the one you forked from. Use the issue "Complete List" and put a link to the pull request. Submit a link to the issue to Canvas to finish the assignment. In your pull request include your UCID, course number, and section.

You are done when you have completed the following:

  1. Added your issues individually and resolved them
  2. Made 9 pull requests to another person for each item that contains the branch you want to merge
  3. Merged 9 pull requests from someone else
  4. Made a pull request to another person with your master branch that contains the consolidated list
  5. Merged the pull request of someone elsesa compiled list
  6. Submmited a pull request to this repository to have your complete list merged

Canvas Submission instructions

To submit this assignment you need to submit the result of step #5 to canvas. When you look at the commits for your project you should see a total of 3 different users have contributed items to the list including yourself . If you don't have at least 3 people's commits on the project you will lose 33 points for each person not found.

Project Setup Instructions

Collaborating on GitHub:

  1. Fork the repository: Each person should fork the repository to their own GitHub account. To do this, click the "Fork" button in the top-right corner of the repository page. 18-ceph
  2. Enable issues: If you don't see the "Issues" tab in the main menu, you should enable it in the repository settings.
  3. Go to the "Issues" tab, and click "Milestones" to add a 0.1.0 milestone and describe it as a consolidated list of issues from your team.
  4. Go to the issues tab you should also create labels for "I Know", "Want to Know", "Don't Understand", and "Master List".
  5. Once you create these labels then go to settings and look for the "Issues Template" and create/edit 4 issue templates that will provide the starting text for each issue filed of that type. At the bottom of each issue you will see that you can automaticly assign a label to that issue type, so connect the respective labels you created with the 4 issue types. You need an issue for "I Know", "Want to Know", "Don't Understand", and "Master List".
  6. Goto the project tab and create a new project (you have to click the down arrow next to "link project" to change it to new project). When you create a project you need to select "board" and name it "Documentation Tasks".
  7. Once this is completed then clone this to your computer using the SSH link NOT THE HTTP LINK you need the ssh link to use the key you added to your account, so you don't get an error when pushing.

Project management and Collaboration workflow Steps

  1. create an issue
  2. assign issue to project task
  • Assign to yourself
  • Assign to correct project board
  • Assign to "todo" project status
  • Assign to the correct milestone
  • create issue branch
  1. Go to the project board and move the task you created to in progress

  2. git fetch origin to see new branch

  3. checkout issue branch locally

  4. git status to make sure you don't have any changed files in the branch before you work

  5. Resolve the issue by adding the list item or incrementing the count of the item

  6. commit -a -m "message text" to do the commit

  7. git push origin head <- pushes current branch to github

  8. Do a pull request for the branch and make sure you pick the correct source and destination. Click compare forks because by default it will go to the upstream repository i.e. mine

  9. merge the pull request and add "closes # i.e. closes #4 to close the issue

  10. Check that your task is moved from in progress to done

  11. update your local main branch with the changes from the merge by doing git pull origin main

  12. Repeat again, and again, and again

  13. Enable issues: If you don't see the "Issues" tab in the main menu, you should enable it in the repository settings. Go to the "Issues" tab, and click "Milestones" to add a 0.1.0 milestone and describe it as a consolidated list of issues from your team. On the issues tab you should also create labels for "I Know", "Want to Know", and "Don't Understand". Once you create these labels then go to settings and look for the "Issues Template" and create 3 issue templates that will provide the starting text for each issue filed of that type. At the bottom of each issue you will see that you can automaticly assign a label to that issue type, so connect the respective labels you created with the 3 issue types.

  14. Create one issue per item in your list and assign it to the correct issue template.

  15. Create a new project tab and create a new project (you have to click the down arrow next to "link project" to change it to new project). When you create a project you need to select "board" and name it "Documentation Tasks".

  16. Go back to your issues, click on each issue, and assign the issue to the following: assignee i.e. you, miletone i.e. the one you created 0.1.0, project documentation (set the status to todo) and create the branch for the issue.

  17. Go to the "Project" board, and if you see any tasks without a status move them to the todo column.

  18. Pick one task and move it to the in progress column to indicate you are going to work on it.

  19. If you have not done so already clone the repository to your local and type "git fetch" to see the branch(s) for the issues you created.

  20. Do a "git checkout " i.e. "git checkout 1-some-issue".

  21. Complete the issue by adding one item to one of the 3 categories. Do a git status and make sure that only the readme is changed. If the readme just has the change then you can do a git commit -a -m "PUT A DESCRIPTIVE MESSAGE HERE". git commit with the -a flag adds all the new and modified files to the commit.

  22. Push the branch back by doing a git push origin head or use the push command from the drop down in Pycharm.

  23. Make a pull request (MAKE SURE YOU DO IT FOR YOUR OWN IT WILL DEFAULT TO MAKING A PULL REQUEST TO THE UPSTREAM REPOSITORY" for the branch and when you come to the part where you have to need the commit message you have to add "closes #?" the ? is whatever issue number that the pull request resolves.

  24. Check the documentation board and you should see that the task has moved from in progress to done.

  25. Once you have resolved an issue you should go to your partners' fork and make a pull request that to merge your issue branch.

  26. Your partner will then need to create an issue to merge the pull request. You first need to save an issue and after you save it will make the right side controls active and you can select the repository / pull request you want to link and fill out the other fields like assigning the task to the milestone, assigning a developer, assiginging it to the right project with the todo status.

  27. Once your partner creates the issue they need to merge the pull request and close it with the "closes #?" in the merge message.

  28. On your own fork, you will want to make a pull request to yourself to merge their updated master into yours.

Complete the Assignment By adding your issues to these 3 lists.

Put your items here

Things you understand so far

  1. How to create a new branch
  2. How to switch branches
  3. How to push using gui in vscode

Things you don't understand about what we are doing / web development.

  1. syncing vs merging
  2. the proccess of resolving merge conflicts
  3. watchtower

Things you want to know next

  1. Kubernetes
  2. Browser dev tools
  3. Authentication main

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published