quangkieu / starterupper

Automate away the pain of setting up git for classroom use

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Starter Upper

Introducing undergraduate students to git and hosting services is difficult without cutting into scarce class time. Even with clear instructions, students rarely set up everything properly, frustrating everyone. As a result, few undergraduate computer science faculty use git for work submission, despite its importance in software development. Starter Upper automates set up as much as possible so students and faculty can get to work using git on the cloud in the classroom.

Student instructions

  1. Install Git

  2. Copy/paste this command into Git Bash or Terminal:

curl https://raw.githubusercontent.com/lawrancej/starterupper/master/starterupper.sh | bash

What Starter Upper does for students

  1. Configures git locally

    1. Configures git’s user.name to the student’s full name

    2. Configures git’s user.email to the student’s school email address

    3. Creates SSH keys if they do not already exist without user interaction

  2. Configures project hosting on Github

    1. Asks users to join Github if they haven’t already

    2. Authenticates with Github (supporting two-factor authentication)

    3. Ensures the student’s email is validated

    4. Requests educational discounts

    5. Sets the user’s profile name to the student’s full name

    6. Shares SSH keys with Github, if not already shared

    7. Tests SSH connectivity, and reconfigures gracefully in case of firewall restrictions

  3. Set up the course repository

    1. Creates a private repository (origin) for the student on Github

    2. Adds faculty as a collaborator to the private repository

    3. Clones the course (upstream) repository

    4. Adds origin for the student

    5. Pushes to origin

    6. Loads the local repository in the file explorer / finder

    7. Loads the Github repository page in the web browser

What Starter Upper does for faculty

Starter Upper collects the class roster from Github and fetches all student work.

Starter Upper principles

  • Set up everything with one command

  • Small download

  • Minimize user interaction as much as possible

  • Provide good defaults and ask for confirmation

  • Validate all user input

  • Degrade gracefully when facing errors

References

About

Automate away the pain of setting up git for classroom use


Languages

Language:CSS 49.4%Language:JavaScript 31.4%Language:Shell 19.2%