Marcy Lab School Docs
  • Welcome
  • Student Guidelines & Policies
    • Student Handbook
    • AI Policy
    • Academic Calendar
  • Environment Setup
    • Local Environment Setup - Mac
    • Local Environment Setup - Windows
    • GitHub Setup
    • Postgres Setup
  • How-Tos
    • How To Code at Marcy: Code Style Guide
    • How to Do Short Response and Coding Assignments
    • How to Debug
    • How to PEDAC
    • How to Create A GitHub Organization and Scrumboard
    • How to Create Projects with Vite
    • How to Deploy on GitHub Pages
    • How to Deploy on Render
    • How to Test your API with Postman
  • Mod 0 - Command Line Interfaces, Git, and GitHub
    • Overview
    • 1. Command Line Interfaces
    • 2. Git & GitHub
    • 3. Git Pulling & Merging
    • 4. Git Branching & PRs
  • Mod 1 - JavaScript Fundamentals
    • Overview
    • 1. Intro to Programming
    • 2. Errors
    • 3. Node & Node Modules
    • 4. Variables, Functions & String Methods
    • 5. Control Flow, typeof, and Math
    • 6. Loops
    • 7. Arrays
    • 8. Objects
    • 9. Higher Order Functions: Callbacks
    • 10. Higher Order Functions: Array Methods
    • 11. Regex
  • Mod 2 - HTML, CSS & the DOM
    • Overview
    • 1. HTML
    • 2. CSS
    • 3. Accessibility (a11y)
    • 4. The Document Object Model (DOM) API
    • 5. Events
    • 6. Forms
    • 7. The Box Model and Positioning
    • 8. Flexbox
    • 9. Grid & Media Queries
    • 10. ESModules
    • 11. Vite
    • 12. LocalStorage
  • Mod 3 - Async & APIs
    • Overview
    • 1. Promises
    • 2. Fetch
    • 3. Building a Fetching App
    • 4. Async & Await
    • 5. A Generic Fetch Handler
  • Mod 4 - Project Week!
    • Important How Tos and Guides
      • How to Create a GitHub Organization and Scrum Board
      • How To Start a Project with Vite
      • How To Deploy a Project with GitHub Pages
    • Project Week Overview
    • Agile Methodologies
    • Deliverables & Milestones
    • Technical Requirements Checklist
    • Free API List
    • Collaborative GitHub
  • Mod 5 - Object-Oriented Programming
    • Overview
    • 1. Intro to OOP, Encapsulation, Factory Functions, and Closure
    • 2. Classes
    • 3. Private & Static
    • 4. UML Diagrams & Has Many/Belongs To Relationships
    • 5. Challenge: Implementing Has Many/Belongs To
    • 6. Inheritance
    • 7. Polymorphism
    • 8. Review and Practice
    • MDN: Object Prototypes
  • Mod 6 - Data Structures & Algorithms
    • Overview
    • Important How Tos and Guides
      • How to Debug
      • How to PEDAC
    • 1. Nodes & Linked Lists
    • 2. Singly & Doubly Linked Lists
    • 3. Stacks & Queues
    • 4. Recursion
    • 5. Trees
  • Mod 7 - React
    • Overview
    • Important How Tos and Guides
      • How to Create Projects with Vite
      • How to Deploy on GitHub Pages
    • 1. Intro to React
    • 2. Events, State, and Forms
    • 3. Fetching with useEffect
    • 4. React Router
    • 5. Building a Flashcards App
    • 6. React Context
    • 7. Global Context Pattern
  • Mod 8 - Backend
    • Overview
    • Important How Tos and Guides
      • How to Deploy on Render
      • How to Test your API with Postman
      • Postgres Setup
    • 1. Intro to Express
    • 2. Building a Static Web Server with Middleware
    • 3. Securing API Keys and Environment Variables
    • 4. RESTful CRUD API
    • 5. Model-View-Controller Architecture
    • 6. SQL and Databases
    • 7. JOIN (Association) SQL Queries
    • 8. Knex
    • 9. Your First Fullstack App!
    • 10. Migrations & Seeds
    • 11. Schema Design & Normalization
    • 12. Hashing Passwords with Bcrypt
    • 13. React Express Auth Template Overview
  • Mod 9 - Civic Tech Hackathon
    • Overview
    • Rubric
  • Mod 10 - Capstone
    • Overview
Powered by GitBook
On this page
  • Set up Github Organization
  • Create an organization repository
  • Create a project board for the repository
  • Tips for Using a Scrum Board
  1. How-Tos

How to Create A GitHub Organization and Scrumboard

PreviousHow to PEDACNextHow to Create Projects with Vite

Last updated 4 months ago

Table of Contents:

You will be using Github Projects to organize and manage your workflow. You can follow the instructions below to get started!

Set up Github Organization

  • Sign into Github

  • In the top right corner, find the + icon and select New organization

  • Select Create a free organization

  • Name the organization with an approved team name

  • One team-member will enter their email and will make the organization on their personal account.

  • Add all teammates to the organization

Create an organization repository

  • From the organization overview page, click on the Repositories tab.

  • Click on Create a new repository

  • Give your repository a fun name that matches the name of your game!

  • Make sure to make the repo public

  • Add a README

  • Choose the MIT License

Create a project board for the repository

  • From the repository homepage, click on the Projects tab.

  • Click on the dropdown next to Link a project and select New project

  • Then, click on New project

    • Name the project board: “Scrum Board”

    • Create a Board, not a Table

  • Modify the settings which can be found by clicking on the three dots ... in the top right corner and then selecting Settings

  • [Optional] Add a description and a README

  • Change the visibility to Public

Tips for Using a Scrum Board

  1. Work together at the beginning to establish the foundation of your project

    • Setting up your files, creating your HTML elements, and agreeing upon variable names and data structures together will ensure that as you split up and work on your own features, you are all on the same page.

  2. Organize your JavaScript code into clear sections.

      • Variables

      • Initial Setup

      • New Frame Logic

      • Event Handler Logic

      • Helper Functions

    • The bulk of your code should live in the helper functions section and the rest of your code should simply invoke the appropriate helper function in the appropriate order.

    • This approach will allow you to assign individuals to work on separate functions and minimize merge conflicts.

  3. Get the size of the task right. Aim for a single function's worth of work. Consider these examples for Pong:

    • Too big: Implement scoring

      • Why? Implementing scoring is too vague! Scoring involves checking the DOM to see if the ball has left the screen, updating the scoring data, rendering it to the screen, and checking if the score triggers the end of the game. We can be more specific.

    • Too small: Declare a score variable

      • Why? declaring a single variable may be just one step towards writing a function to handle scoring.

    • Just right: Keep track of scoring data each time the ball leaves the screen

      • Why? This task is very specific and it focuses on a particular interaction between the DOM and the program's data. We might have a separate task for rendering the data to the screen and another for ending the game at a particular score threshold.

  4. Proactively update the scrum board:

    • Assign yourself to a task that you want to tackle and immediately move it to In Progress. This will prevent your team from doing duplicate work by showing ownership of tasks and will result in more autonomous work.

    • Remember to move tasks to Done. Not only will it let your teammates know that a feature is complete, it will also feel really good to make that progress!

    • Consider coming up with a team ritual for completing tasks. Maybe you have some slack message or emoji that you all send and you can breifly have a congratulatory moment! This is not just for team-building, it will also keep your teammates up-to-date on the state of the program.

  5. Prioritize minimum-viable-product features first. For Pong, the prioritization might look like

    • Render two paddles and a ball to the screen in correct starting positions

    • Control the paddles with keyboard inputs

    • Move the ball on each new frame

    • Detect collisions between the ball and the paddles

    • Bounce the ball off the top and bottom walls

    • Add scoring when the ball goes past the paddles

    • Implement a restart feature

    • Implement bonus features (AI mode, leaderboards, etc...)

I recommend the following sections (see my example):

Pong
Set up Github Organization
Create an organization repository
Create a project board for the repository
Tips for Using a Scrum Board