Computer Setup for V School

Before continuing on, ensure that you have completed all of the tasks listed in the V School Preparation page, including the ones at the bottom

TL;DR: That page has you get accounts with:

You also need to:

There are a number of technical setup items we need to get out of the way that will make our learning process go more smoothly. We've written a simple bash script that will help take care of the more technical setup items for you, with minimal input on your end. If you prefer to manually complete the setup, jump down to the manual technical setup section.

Automatic setup with bash script

It isn't usually a good idea to just run random bash scripts without knowing what's happening. Below we outline exactly what this bash script does, and you're welcome to check out the contents of the script before running it and ask us what any particular line of code in the script means before running it.

What is the script doing?

Running the setup script does the following:

  1. Changes your default shell back to bash. If you're using oh-my-zsh or some other shell and you don't want to change back to bash, don't run this script.
  2. Checks if you already have an SSH key
    • If not, it creates one for you, using your github email address as the comment to the file so you get credit for your contributions to Github.
    • Copies the SSH key to your clipboard so you can paste it into your Github SSH key settings
  3. Installs Homebrew (and Xcode command line tools and Git)
    • Homebrew is a popular package manager for installing Mac tools. We use Homebrew to install the Node Version Manager, or nvm. Later, we'll also use it to install MongoDB.
    • This script also sets up the folder structure and .bash_profile commands necessary to ensure nvm works correctly
  4. Uses nvm to install the latest LTS version of node.js
  5. Sets up git command tab completion and modifies your terminal prompt to show your current git branch if you're inside a git repository.
    • These are niceties that make working with Git much nicer.
  6. Closes the Terminal program to ensure that all changes are reflected upon the next time you start Terminal.

Once you feel comfortable enough to run the bash script, you'll go through the following steps.

How do I use the setup script?

1) Open Terminal and run the following (triple click to select the whole thing, which may automatically run it when you paste it in to terminal. Paste first, then press enter if necessary):

bash <(curl -s  

2) At any point in this process, when prompted to enter a password, enter the password you use to log in to your computer. If you don't use a password for your own account, you'll need the password of the administrator of the computer to complete this step.

It will NOT look like your password is showing up when you type. This is normal, and you should still type your password and hit enter when you're done.

3) It should open your GitHub settings page (you may be required to log in first). The terminal asks for you to enter your email, so make sure to provide the same email address you use for GitHub. On your Github profile settings, check the "Public email" field. This is the one you should enter into the terminal. (Copy/paste is even better to make sure you don't type it wrong).

4) Hit return (Enter key) when prompted in order to allow the install of Homebrew. If prompted to install the Xcode command line tools, click "Install" in the pop-up window.

5) Let the script do the rest! Once the Terminal app closes itself, you can open it again and everything should be set up correctly

If anything appears to be out of order, please reach out to an instructor for help before trying to mess with something yourself.

Add your SSH key to your Github account

Note: You must either have run the technical setup script above OR completed the Manual setup section below (specifically the section on creating an SSH key) in order to complete this task. Once you do that, your SSH key should be saved in your clipboard, ready to be pasted into Github. If you've copied something since then, open a Terminal and run pbcopy < ~/.ssh/ to copy the SSH key again.

  • Open your Github settings > SSH & GPG Keys > Add New SSH Key. See the animated gif below.

Manual Technical Setup

If you ran the setup script from the top of this article, you're already done! No need to do any of the steps in this section. 🎉

Create an SSH key

  1. Check to see if you already have an SSH key. Run cat ~/.ssh/
    • If it prints out a long string of characters, skip to step 3.
  2. In terminal, run the following: ssh-keygen -t rsa -N "" -f id_rsa -C (Making sure to replace with the actual email you use on Github).
    If you're unsure which email you used to sign up for Github, check the Public email section of your Github profile settings
  3. Run pbcopy < ~/.ssh/ to copy your new ssh key to the clipboard.

Install Homebrew, NVM, and Node.js

Modify your terminal prompt to be awesome

For instructors - set up the Trello assignments system for this cohort

  • Create a new Trello organization specific to this cohort. Something like "V School JS September" for a JavaScript cohort starting in September.
  • Share the URL to join the group to the students' slack channel. Make sure everyone joins.
    • This can be found by going to the "Members" section of the organization, clicking the "Add by Name or Email" button, then clicking the "Invite people by giving them a special link..." link at the bottom. Paste this link into their Slack channel and wait for everyone to join.
    • Instructors must join the board too
  • Copy the "_'s Assignments" board from the V School org to the new organization
  • Have each student copy that board and put their first and last name as the board title.
  • Have each student invite all the instructors to their board

Note: Students can modify their assignments boards all they want, except for the name of the first list. That one MUST remain "Assigned (Don't Change)".

  • When ready, run npm start of the Trello Push React project, authenticate with Trello, select the new organization from the dropdown list, and search for the assignment you wish to push. Click on 1-3 assignments you want to assign and click "Assign cards" to create new cards on every board in this organization.