Git Product home page Git Product logo

21f-gitbetter's People

Contributors

ediewilson avatar github-classroom[bot] avatar haileypfox avatar irenelam22 avatar joannaliu2010 avatar krkim565 avatar zoewortzman avatar

Watchers

 avatar  avatar

21f-gitbetter's Issues

Connect to git

As a new employee, I would like to connect to my company's github repo.

New Employee

New Employee

New Employee

Background and Demographic Information

  • Nickname: Sally
  • Demographics: Women in CS
  • Overheard quote: "I don't remember how GitHub works"
  • "What if I break my team's code?"

Narrative

Sally is entering her first day of work at a company as a software engineer. She is worried that she may be viewed as incompetent because she does not know how to use git with team members. She is not sure how to deal with merge conflicts or let alone how to avoid merge conflicts.

Behavioral and Dimensional Information

  • Goals and Motivations:

    • Learn Git, so that she can work seamlessly alongside her teamm

    what are they trying to accomplish)

  • Tasks:

    • Use our platform to familiarize herself with git commands with out stressing that she will mess her team's project repo
  • Pain Points, Concerns, and Challenges:

    • Merge conflicts
  • User Flow

    1. Opens up web app
    2. Writes some code in project repo
    3. With our app, she tests a few commands to see if any merge conflicts will arise
    4. If so, then our platform would ideally be a guide to resolve merge conflicts
    5. If not, then she can proceed to run those commands in her actual project repo.

Visualizing Git

An epic for all the git commands that we want to be able to visualize with our tool.

Parse git related errors in the terminal

Description

Some git / npm errors are hard to understand. Add functionality to parse the error messages

Tasks

  • parse terminal output by line
  • divide by error type
  • output the error in "explain it to me like I'm five" or just natural human language words
  • add toggle between terminal output and parsed style errors

Set up database

Description

Need to have a database to hold users who are signed up, their recent error searches, and recent error messages

Notes

Should figure out if there are privacy concerns related to terminal commands, maybe give the user an option to opt out of the feature.

Design

Description

App UI work!

JuliaB

College Student in Computer Science Course

sketch/picture

Background and Demographic Information

  • Nickname: Julia
  • Demographics: College students
  • Overheard quote: "I spent 3 hours last night trying to fix an issue with Git, and then I used the wrong command and had to rewrite a bunch of code. I'm crying. I never get to go out anymore."

Narrative

Julia is very frustrated that she continues to experience the same problems every time she uses Github. She wants to use Gitbetter so that she can finally understand Github better and prevent mistakes that she has frequently encountered. She wants her coding process to be more efficient as she currently spends a significant amount of time dealing with Github struggles everytime she codes. She is taking organic chemistry, econ 20, and CS52 and is deeply upset that she is spending so much time on Github, which prevents her from getting her work done. She is tired and stressed and hates Github and wants Gitbetter to help her.

Behavioral and Dimensional Information

  • Goals and Motivations:
    • Wants to use Gitbetter so that she can really understand Github
    • Wants to practice problem solving in Github
    • Wants to make her coding process more efficient
    • Wants to make her life less stressful
    • Wants to have more free time so she can spend time with her friends
  • Tasks:
    • Use Gitbetter to visualize the outcomes of different commands so that she can have a better fundamental understanding of Github
    • Practice different scenarios on Gitbetter to practice handling Github problems in a low-stress environment so that she is prepared to handle them when she experiences similar problems with her code
    • Learn how to solve problems so that when an error occurs, she is equipped with the knowledge for how to fix it, thus saving her time and stress
    • Use Gitbetter to test out commands that she thinks she needs to use to accomplish a certain task in her code, run the command in Gitbetter to ensure that it does what she wanted it to do so that she does not accidentally run the wrong command and cause a big problem
  • Pain Points, Concerns, and Challenges:
    • Worried that Gitbetter will be more trouble than it's worth and that she will spend more time trying to get it to work than just figuring the Github problem out herself
    • Worried that Gitbetter is just another ineffective tool like so many others she has tried
    • Julia is worried that she will not understand how to use Gitbetter
    • Julia is concerned that she will spend time learning to use Gitbetter, but find that it does not actually help her at all
  • User Flow
    • Julia logs into her Gitbetter account
    • She sees that there are new practice situations that she can do, but she did a couple over the weekend and doesn't have time to do any right now
    • Julia is having a problem with her current branch for her CS52 class and wants to use Gitbetter to visualize the problem
    • She links the site to her current repository and refreshes the page so that it can load in her history
    • She then goes to her terminal and types in the command that she thinks will fix her problem but is not entirely sure
    • After running the command, she checks Gitbetter to see what the outcome of this command was
    • After seeing that the command works, she confidently runs this command with git

Boss Man

Boss (Wo)man

sketch/picture

Background and Demographic Information

  • Nickname: Boss Man
  • Demographics: A baby who is also a boss but actually probably an adult
  • Overheard quote: "It is SO annoying when I hire a new engineer and they don't have git experience that they need to work with their team."

Narrative

Boss man is using GitBetter to train his employees in the basics or git, as well as team or project specific git commands that they will need to understand on the job. They might not understand all the ins and outs of git that the engineers do, but they know the common issues that the teams see and want to make custom training plans for different employees. They want to make sure that new engineers are able to hit the ground running with git so that they can focus on getting up to speed with the code base rather than wasting time with commonly seen git issues and Stack Overflow.

Behavioral and Dimensional Information

  • Goals and Motivations:

    • Provide simple onboarding with git refreshers and lessons for employees
    • Reduce repeat git questions for themselves / managers
    • Save time in the future by making sure their employees are confident with git
  • Tasks:

    • Create a basic training plan for employees
    • Customize training plans based on team / role
    • Keep track of employee progress in the onboarding process
  • Pain Points, Concerns, and Challenges:

    • Not necessarily an experienced git user
    • Doesn't want to have to recustomize training plans for new employees on existing teams
    • Might not know what commands are useful for teams
  • User Flow

    • Logs in as admin / boss
    • Checks dashboard to see how employees on the training plan are doing (have they started / in progress / completed / time in progress or time for completion)
    • Send onboarding plan to a brand new employee
    • Check on the current existing plans to make sure they're up to date
    • Adds a new software team in the company and creates a custom training plan for them by adding to the default onboarding plan

Getting started

Description

An epic to cover all of the tasks associated with getting some code that runs, and starts doing the initial stuff we want it to (connect to git, contain a terminal, have space for visualizations).

User Experience

Description

Any issues involving the user flow and experience outside of git use and visualizations

Instructor

Instructor

Instructor

Background and Demographic Information

  • Nickname: Ms. Care
  • Demographics: Thai American, currently teaching at I.S. 250
  • Overheard quote: Pull before you push

Narrative

Ms. Care is an extremely caring teacher. She wants to help her students succeed, specifically in learning CS. But now that she's introducing git to them, a lot of her students are extemely confused. A lot of her students are skipping over documentation entirely and copying whatever is on Stack Overflow. One of them even accidentally deleted all of their team's code!

She wants to give them a resource that makes git much easier to visualize, and can let them experiment with commands without creating any irreversible changes. So far, she's hoping her lesson plans will do the trick, but she's not confident because each student that comes to her has very unique issues.

Behavioral and Dimensional Information

  • Goals and Motivations:

    • Give her students a platform that will help them visualize git
    • Provide a resource that lets students experiment with their specific use case without repercussions
    • Help her students understand what each git command really does
  • Tasks:

    • Create a sample project directory using the project with an example walkthrough to help students learn git commands
    • Allow students to upload code through the website so they can experiment with what they need
  • Pain Points, Concerns, and Challenges:

    • Privacy of uploading code (Will third-party users be authorized to view the code? What happens to the code after the student is finished with the project?)
    • Ease of use (if the project is harder to use than just forcing yourself to read git documentation, it's not worth the effort)
    • Accessibility (useful for everyone from intro students to PhD students)
    • Easy to understand (simple, something students want to use because the project helps them understand what's going on)
  • User Flow

    • Ms. Care creates a temporary repository
    • She tries various basic commands (e.g. git pull/ git push), before proceeding to rarer but equally useful commands (git rebase)
    • She walks through her git commands (e.g. visiting previous commands and looking at the state of her repository) to make sure everything is accurate
    • She savs her work so she is able to share it in her next lecture on Monday

Jimmy Neutron

UserPersonaNickName

sketch/picture

Background and Demographic Information

  • Nickname: Jimmy Neutron
  • Demographics: High School student who codes for fun
  • Overheard quote: "I need to display all my projects so colleges can know what an experienced programmer I am"

Narrative

Jimmy is a very bright high schooler who spends his free time coding and developing new projects. Most of Jimmy's friends do not know how to code so he seldom needs to collaborate. He is mainly interested in git hub because he wants to link it in his college applications to help him get into a Computer Science program at a good college. He needs a way to organize his projects and put them online so he can share them with others. He has never worked on a software development team and knows nothing about coding norms and computer science in general outside using pycharm to work on python projects.

Behavioral and Dimensional Information

  • Goals and Motivations:

    • Display his work for his college applicatons
    • Practice using git hub for when he is on a software development team they are familiar with the commands
  • Tasks:

    • Learn how to add ReadMe files
    • Create a repository and push code to it
    • Organize projects to underscore his work and look impressive
  • Pain Points, Concerns, and Challenges:

    • He has never used git before
    • He is unfamiliar with typical coding practices
    • He has never used terminal
  • User Flow

    • Jimmy finishes his code in pycharm and would like to show it to the world. He wants to upload it to git hub but has never used terminal. Where does he start?
    • Jimmy now knows how to use terminal and has successfully uploaded his code. How can he add information about his code so that someone who doesn't want to run it can see what he's done?
    • Jimmy lost some of his files, but remembered he pushed them to git hub. He now wants to clone his repository.

Learn How to Use Github

Description: We will need to have a better understanding of Github in order to be able to one, teach other people how to use Github, and two, be able to create the visualization aspects and the outcomes of the commands. We will need to understand the commands ourselves, in order for our tool to be useful (and provide correct information)

Create mockups

Description

Create paper and/or figma mockups for the user flow and application.

Create a new user tutorial

Description

With all of the included features, a new user might be overwhelmed by the application. We should add a guided walk through for new users when they sign up.

Tasks

  • identify key features
  • pick order for walk through that makes sense
  • add the walk through

Visualize walkthrough

Functionality to allow users to look at previous commands and current commands (e.g. arrows to allow users to walk through previous visualizations)

Boots

UserPersonaNickName

image

Background and Demographic Information

  • Nickname: Boots
  • Demographics: Australian, but working in NYC!
  • Overheard quote: "I have never used git before but I need to know it well because I will need it for work in the future. Really need a job."

Narrative

He does not have a background in computer science but he is going through bootcamp right now to become a software engineer in the near future. He is concerned because he has never used git before and he need to learn it quickly and well so that he is able to use it for his job. He needs GitBetter to become confident with Github while working in the future.

Behavioral and Dimensional Information

  • Goals and Motivations:
    • Learn how to use Github for version control
    • Be able to confortably use it while working in the future
  • Tasks:
    • Learn the basic git commands and how they correspond to what happens in Github
    • Learn the git commands commonly used in a workplace while working on a team
    • Understand/visualize the basic structure of git branches and what each command does so that he can discuss potential issues in the workplace with his co-workers in the future
  • Pain Points, Concerns, and Challenges:
    • Has no experience with Github before
    • Not much time to learn and needs to retain the info
    • Hard to learn and remember the commands instead of just searching for commands that he needs
    • Even if he knows which command to use, he doesn't fully understand how the commands affect the branches in Github
  • User Flow
    • In bootcamp and notices that he is having trouble learning about Github.
    • Discovers GitBetter
    • Selects a subcategory that has basic commands
    • Learns the basic commands and be able to visualize them by playing around with these commands and seeing the new state
    • Selects a subcategory that has other commonly used commands
    • Learns commands commonly used in the workplace while working with a team by playing around with these commands and seeing the new state
    • Turns back to GitBetter at work when he needs to review certain commands or notices that he is running into a lot of errors for certain git commands.
    • Types in commands and sees it working (or not) and figures out any problems and the proper way to use the command before applying it to the team's project.

Undo functionality

Allow users to undo git commands and arrive at the state they were previously at

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.