diff --git a/book/_toc.yml b/book/_toc.yml index e3791c4d..f427aa5c 100644 --- a/book/_toc.yml +++ b/book/_toc.yml @@ -26,7 +26,6 @@ parts: - file: projects/list_of_projects - file: projects/index sections: - - file: projects/project_roles - file: projects/project_roadmap - file: projects/project_initialization - caption: Reference diff --git a/book/img/project-purpose.png b/book/img/project-purpose.png deleted file mode 100644 index eb8c4d60..00000000 Binary files a/book/img/project-purpose.png and /dev/null differ diff --git a/book/img/project-roles.png b/book/img/project-roles.png deleted file mode 100644 index b61bec95..00000000 Binary files a/book/img/project-roles.png and /dev/null differ diff --git a/book/img/project-template.png b/book/img/project-template.png new file mode 100644 index 00000000..9853e8b0 Binary files /dev/null and b/book/img/project-template.png differ diff --git a/book/img/project-work.png b/book/img/project-work.png deleted file mode 100644 index 53fbf2c1..00000000 Binary files a/book/img/project-work.png and /dev/null differ diff --git a/book/img/projects-montage.png b/book/img/projects-montage.png new file mode 100644 index 00000000..61063ab9 Binary files /dev/null and b/book/img/projects-montage.png differ diff --git a/book/projects/example_workflow.md b/book/projects/example_workflow.md deleted file mode 100644 index c3ed8780..00000000 --- a/book/projects/example_workflow.md +++ /dev/null @@ -1,79 +0,0 @@ -# Basic git workflow for a project -Here we suggest a basic git workflow for working on your group project. Combined with our example project template and good communication, this workflow should help minimize conflicts on your GitHub project repo. - -## First time only - clone your project into your local working environment - -``` -$ git clone https://github.com//.git -``` - - -Where the `````` is the name of our hackweek organization (in our case **{{ hackweek }}**), and the `````` is the unique name of your project repository. - -## Each time you begin working - -Navigate to your project directory: - -``` -$ cd -``` - -Now, check in with your team: has there been any new work pushed to GitHub? If so, you will need to pull remote changes to your main branch: - -``` -$ git fetch -$ git pull origin main:main -``` - -Next, checkout your working branch. Use the ```-b``` option if you are beginning work and need to create a new branch: - -``` -$ git checkout [-b] -``` - -Here `````` is an arbitrary name identifying this branch of work. - -## Make changes or add new files locally and put them on GitHub - -``` -$ git add new_file #if adding a new file -$ git status #to see which files have been added or modified and are ready (staged) for committing -$ git commit -am "brief description of your changes (commit message)" -$ git push origin branch_name -``` -Complete pull request and merge with main via GitHub UI. - - -## Clean up your local repository (after successful merge of pull request) -Switch back to the main branch. -``` -$ git checkout main -``` - -Confirm that you are on the main branch. -``` -$ git branch -``` - -Delete the branch containing the changes you just merged. This will delete it on GitHub (remote, if you did not click the "delete branch" button after merging). -``` -$ git push origin --delete branch_name -``` - -You need to also delete the local version of your branch. -``` -$ git branch -d branch_name -``` - -Finally, git pull all the latest changes (yours and others) to your local main branch. -``` -$ git pull -``` - -_When you are ready to do more work, checkout another branch and repeat._ - - -# Project Data - download, storage, and access -Transferring and storing large amounts of data is expensive. Rather than each project team member downloading their own copy of the data, we encourage teams to have one member download the data to a shared project directory (and make sure the code to get the data is shared on the group's project repo) that everyone can access from the Hackweek's Pangeo JupyterHub. - -The file system can be accessed in the same manner as any other drive with a directory/file structure. The name of the file system is `/srv/shared/projects/`, and you should create a directory for your team's data (which may then also have subdirectories). \ No newline at end of file diff --git a/book/projects/index.md b/book/projects/index.md index ec4ce292..a6c60e8b 100644 --- a/book/projects/index.md +++ b/book/projects/index.md @@ -1,29 +1,17 @@ # Projects -During hackweeks we invite participants to collaborate in small group project teams (usually 5-7 people). Projects provide unique opportunities for networking, advancing research and learning new things: - -```{image} ../img/project-purpose.png -:alt: diagram of the purpose of hackwek project work -:class: bg-primary mb-1 -:width: 600px -:align: center -``` +During hackweeks we invite participants to collaborate in small group project teams (usually 5-7 people). Projects provide unique opportunities for networking, advancing research and learning new things. We encourage you to be creative in how you design your project work! Here are some ways people have used project time in the past: - * *focus on learning*: dive deeper into tutorial content and gain more hands on experience with new tools * *focus on community building*: hackweeks bring people together for the first time and projects are used to build social fabric and foster open science * *focus on research*: people often work to advance a research challenge using tools shared during the event. This often includes ongoing graduate and postgraduate investigations. * *focus on creating new tools*: hackweeks often expose general community software needs. Projects can be the catalyst for new community libraries. -```{image} ../img/project-work.png +```{image} ../img/projects-montage.png :alt: picture of people interacting during hackweek project work :class: bg-primary mb-1 -:width: 500px +:width: 700px :align: center -``` - -## Projects from Past Events - -Visit our [gallery of past hackweeks](https://uwhackweek.github.io/hackweeks-as-a-service/gallery/index.html) to browse our catalog of amazing projects from previous events! +``` \ No newline at end of file diff --git a/book/projects/list_of_projects.md b/book/projects/list_of_projects.md index 77a9a615..48a395f5 100644 --- a/book/projects/list_of_projects.md +++ b/book/projects/list_of_projects.md @@ -1,7 +1,8 @@ # List of Projects -Here is where we will be listing the projects during the {{dates}} {{ hackweek }} hackweek: +Here is our current list of project for our {{dates}} {{ hackweek }} hackweek: -| Project Name (with link to GitHub repo) | slack channel | final presentation | +| Project Name (with link to GitHub repo) | Short Description | Project Lead(s) | |:--------|:--------|:-----| -| [Snow Temperature Changes](https://github.com/snowex-hackweek/hot-pow) | [#Hot-Pow](https://snowexhackweek2021.slack.com/archives/C027RBZ9JH3) | [Video](https://youtu.be/lV3to0c_KtA) | \ No newline at end of file +| [Snow-Extrapolation](https://github.com/geo-smart/Snow-Extrapolation) | Goal: Improve National Snow Model (NSM) prediction performance in the Sierra Nevada mountains through domain constraints and the exploration of different ML algorithms. | Ryan Johnson | + diff --git a/book/projects/project_initialization.md b/book/projects/project_initialization.md index db8f5057..98607b91 100644 --- a/book/projects/project_initialization.md +++ b/book/projects/project_initialization.md @@ -16,16 +16,23 @@ Before getting started, you'll need a name for your project. A team exploring sn We have created a GitHub template that is pre-populated with directories and a README layout the we find works well with most teams. We encourage all teams to create a new GitHub repository within the {{hackweek}} Organization, even if it is just to point to an already-existing repository or package your team is contributing to for their project. -1. Go to: {{ '[https://github.com/`{hw}`](https://github.com/{hw})'.format(hw=hackweek) }} -1. Click the green “New” button on right side of page -1. Select the "{{hackweek}}/sample_project_repository" template -1. Use short project name -1. We recommend choosing "Public" (so other participants can follow progress). You can also select Private for now and make Public before final presentation. + +* Go to: {{ '[https://github.com/{name}/sample_project_repository](https://github.com/{name}/sample_project_repository)'.format(name=hackweek) }} + +* Click the green "Use this template" button on right side of page: + +![new-repo-screenshot](../img/project-template.png) + +* Choose "Create a new repository" +* Name your repository using a short name. +* We recommend choosing "Public" (so other participants can follow progress). You can also select Private for now and make Public before final presentation. + +Visit the [GitHub documentation](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-repository-from-a-template#creating-a-repository-from-a-template) for more details on creating a repository from a template. ## Create a new GitHub team within the {{hackweek}} Organization GitHub teams provide a convenient way for you to set permissions on your project repository for groups of people, rather than having to do this for each individual on your team. -1. Go to: {{ '[https://github.com/orgs/`{hw}`](https://github.com/orgs/{hw})'.format(hw=hackweek + "/teams") }} (or click the "Teams" tab near the top of the GitHub Organization page) +1. Go to the "Teams" tab near the top of the GitHub {{hackweek}} Organization page: {{ '[https://github.com/orgs/{name}/teams](https://github.com/orgs/{name}/teams)'.format(name=hackweek) }} 1. Click green “New team” button 1. Use your short project name for "Team name" 1. Set the team to visibility "Visible" @@ -38,4 +45,6 @@ GitHub teams provide a convenient way for you to set permissions on your project 1. Click “Settings” tab in upper right corner 1. Select “Manage access” on left side of page 1. Add your team name under the "Manage access" section -1. Select “write” to enable all team members to make commits \ No newline at end of file +1. Select “write” to enable all team members to make commits + +Visit the [GitHub documentation](https://docs.github.com/en/organizations/organizing-members-into-teams/creating-a-team) for more details on creating a team. \ No newline at end of file diff --git a/book/projects/project_roadmap.md b/book/projects/project_roadmap.md index 95fe3536..8d842611 100644 --- a/book/projects/project_roadmap.md +++ b/book/projects/project_roadmap.md @@ -1,6 +1,6 @@ # Project Roadmap -Each project will progress through these stages: +Each project will progress through these stages: ```{image} ../img/project-timeline.png :alt: flowchart of typical hackweek project timelines @@ -13,38 +13,25 @@ Each project will progress through these stages: ### Weeks Before the Event -Ideally the project work begins in advance of the hackweek. As soon as you are accepted to the event we will invite you to Slack where you can begin sharing project ideas: +We will form project teams in the month prior to the hackweek. As soon as you are accepted to the event we will invite you to Slack where you can begin exploring project ideas. Organizers will be available to answer questions and to help participants get connected with a project that fits their learning objectives. -{fa}`check,text-success mr-1` Have an idea for a project? Pitch it on the hackweek Slack group #project-ideas channel - -{fa}`check,text-success mr-1` If you don't yet have an idea brewing, take time to browse other ideas on Slack. Start up a conversation in a Slack thread if something catches your eye. - -{fa}`check,text-success mr-1` Feel free to consult with one of the organizers if you have questions about project purpose, scope, roles and datasets. - -{fa}`check,text-success mr-1` You may already have a critical mass forming. This is great! Go ahead and begin defining [project roles](project_roles) so that you can arrive at the hackweek ready to get started. ### Day 1 of the Event -We facilitate a project team formation session at the end of the first day of the event. - -{fa}`check,text-success mr-1` People with project ideas will make a 1-minute pitch to the group - -{fa}`check,text-success mr-1` People looking for a project are invited into small groups to learn more about existing ideas - -{fa}`check,text-success mr-1` UW eScience helpers and facilitators are available to help teams get clear on size and scope of the effort +We facilitate a project team formation session on the first day of the hackweek. During this time we will finalize project goals and objectives. Hackweek organizers and facilitators will help each team set reasonable goals and develop a roadmap for task completion. ## **Teamwork** * kick-off meeting focuses on hearing from each team member: - * What are your unique learning goals? + * What are your unique learning goals? * How do you work best? What level of group interaction works for you? * What skills and background are you most excited to share with the team? * When are you available to meet? -* set up team computing infrastructure on Slack and GitHub ([Project Initialization](project_initialization)) +* set up team computing infrastructure on Slack and GitHub ([Project Initialization](project_initialization)) * project work begins and teams have regular check-ins to chart progress * project outputs are recorded in a GitHub repository -## **Presentations** +## **Share-Out** * each team has 15 minutes to share what was learned, what challenges arose, what might be worth trying next * individual contributions to the group effort are recognized and celebrated @@ -54,7 +41,7 @@ We facilitate a project team formation session at the end of the first day of th * We aspire to keep projects going after the hackweek! This is an optional (ideal) outcome of hackweek project work. * Project leads/helpers will transition to longer-term engagement via mentorship role (optional/with support). * Additional people join a growing Community of Practice (for example, centered on a community software library). -* software, research results are packaged and shared/published. +* software, research results are packaged and shared/published. diff --git a/book/projects/project_roles.md b/book/projects/project_roles.md deleted file mode 100644 index dcae7457..00000000 --- a/book/projects/project_roles.md +++ /dev/null @@ -1,40 +0,0 @@ -# Project Roles - -We find it helps to have clearly defined roles for everyone who is engaged in hackweek projects: - -```{image} ../img/project-roles.png -:alt: diagram of the purpose of hackwek project work -:class: bg-primary mb-1 -:width: 450px -:align: center -``` -## **Project Leadership** - -### Lead Project Coordinator - -The Lead Project Coordinator will help to assess what projects are possible and to align projects with programmatic objectives if applicable. They will be active on communication platforms such as Slack to encourage participants to pitch ideas before the hackweek, and to communicate the process, roles and responsibilities of working in collaborative teams. During the event they might facilitate project team formation and embed with teams to guide collaborations, resolve conflicts and define what is possible within the allotted time. - -### Collaboration Consultant - -The Collaboration Consultant is a member of the UW eScience Team who helps to create the conditions for participants and organizers to function well together in teams. They will share best practices to guide project formation, team building and collaboation, conflict resolution and generating random connections through social interactions. - -## **Project Teams** - -We invite everyone to be a participant in a project team. There are two additional roles for participants that we encourage you to consider: - -### Project Team Lead - -The role of Project Team Lead is to guide the collaborative project work before, during and sometimes after the hackweek. Specific tasks could include: - -* pitching an idea for a project -* gathering together a team and helping each person get clear on their individual goals during the project work -* facilitating relationship-building and development of collaborative structures among the team -* helping everyone design project work that is within the scope of the hackweek - -### Project Helper - -Each project might have one or several Project Helpers. Their role is often to: - -* offer technical guidance on a specific data science tool or topic in which they have expertise -* help team members navigate collaboration technologies like JupyterHub and GitHub -* offer a deeper-dive on content touched on during tutorials \ No newline at end of file