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:

  • Download a text editor. We recommend VS Code.
  • Download the native Slack client (click "View in Mac App Store").
  • Download note-taking software. We recommend Evernote.
  • Update to the latest version of MacOS (to be done at home, not in class)

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.

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
  1. 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.

Also, from here on, the instructions should be fairly straight forward. Hit enter when it asks, type your password when it asks, type your full name when it asks, etc.

  1. 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. In case it didn't open that page, head to your Github profile settings and 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).

  2. Let the script do the rest! One of the steps is for it to download Xcode, so that step will take awhile. 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.

  1. If Xcode is downloading (which will take awhile), you can jump to the section below ("Add your SSH key to your GitHub account"), which is the only manual step you'll have in this setup. No need to wait for Xcode to finish before doing this.

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.

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 (including 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 in the course 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 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 features that make working with Git much nicer.
  6. Installs Xcode if it isn't already installed.
  7. Closes the Terminal program to ensure that all changes are applied.

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

Install Xcode

  • Go to the Mac App store and install Xcode
  • Run the following to make sure you're using the right version of the Xcode command line tools:
sudo xcode-select --switch /Applications/
  • Accept the Xcode license by either opening Xcode for the first time or running sudo xcodebuild -license accept from anywhere in Terminal

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 organization 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.