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?

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 https://raw.githubusercontent.com/VSchool/computer-setup/master/vschool-mac-setup.sh)

That's it! The script should guide you the rest of the way. Make sure to read the instructions it gives carefully.

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/id_rsa.pub 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 vschool-mac-setup.sh 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. 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/id_rsa.pub.
    • 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 your_github_email@here.com (Making sure to replace your_github_email@here.com 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/id_rsa.pub to copy your new ssh key to the clipboard.

Install Homebrew, NVM, and Node.js

Modify your terminal prompt to be awesome

Set up your Git config

Enter the following (replacing the name and email with your actual name and GitHub email address):

git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

This ensures you get credit on GitHub for your commits.

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/Xcode.app/Contents/Developer/
  • 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.