Installation Guide

This page will set your machine up for working on the CS Unplugged project. You should only need to do these installation steps once (unless the required steps for setup change).

Requirements

  • At least 5 GB of hard drive space.

  • An internet connection to download 1 to 2 GB of data.

Step 1: Setup Virtual Machine (optional)

For those working on a computer in a restricted environment (for example: a computer managed by an education insitution), then working in a virtual machine is recommended.

If you wish to setup a virtual machine for development, we have a guide here: Setting up a Virtual Machine.

Step 2: Install Git

Install the version control software Git onto your computer.

Note

If you are new to Git and not comfortable with using the terminal, you may like to use a free program like SourceTree to use Git.

Step 3: Create GitHub Account

If you don’t already have an account on GitHub, create a free account on the GitHub website. This account will be tied to any changes you submit to the project.

Step 4: Set Git Account Values

When you make a commit in Git (the term for changes to the project), the commit is tied to a name and email address. We need to set name and email address within the Git system installed on the machine.

You can also keep your email address private on GitHub if needed.

Note

If your GitHub account is secured with two-factor authentication (2FA) this is a perfect time to setup SSH keys.

Step 5: Download the CS Unplugged Repository

Firstly create the directory you wish to hold the CS Unplugged repository directory in if you wish to store the data in a specific location. Once you have decided upon the location, clone (the Git term for download) the project onto your computer.

If you are using terminal commands to use Git, type the following command in terminal (you don’t need to enter the $ character, this shows the start of your terminal prompt):

$ git clone https://github.com/uccser/cs-unplugged.git

Note

If you connect to GitHub through SSH, then type:

$ git clone git@github.com:uccser/cs-unplugged.git

Once Git has cloned the directory, checkout the repository to the development branch develop.

Step 6: Install Docker

We use a system called Docker to run the CS Unplugged system, both on local machine for development, and also when deployed to production. Download the latest version of the free Docker Community Edition for your operating system from the Docker Store.

Once you have installed the software, run the following commands in a terminal to check Docker is working as intended (you don’t need to enter the $ character, this shows the start of your terminal prompt).

$ docker version
$ docker compose version
$ docker run hello-world

Note

Depending on your operating system, if the above commands don’t work you may need to set Docker to be able to run without sudo. You will need to do this in order to use the dev helper script.

Step 7: Install Text Editor/IDE (optional)

This is a good time to install your preferred IDE or text editor, if you don’t have one already. Some free options we love:

Step 8: Install Developer Tools (optional)

Note

You can skip this step if you’re only adding content to the project.

For those developing the CS Unplugged system, you will need to install some tools on your computer for local development. These tools include packages for style checking and compiling documentation.

Install Python 3

Install Python 3 with the following command in terminal:

$ sudo apt install python3

Install Python 3 PIP

Then install Python 3 pip (pip is a package management system used to install and manage software packages written in Python) with the following command in terminal:

$ sudo apt install python3-pip

Install Python virtualenv

We recommend (though it’s not required) to work within a virtual environment (see What is a Virtual Environment?). This helps to prevent conflicts with dependencies.

Install virtualenv with the following command in terminal:

$ sudo pip3 install virtualenv

Note

Optional step: You can also install virtualenvwrapper to make it easier when using and managing your virtual environments.

Create Virtual Environment

Type the following commands in terminal to create and activate a virtualenv named venv. You can change the virtual environment name to whatever you wish. You will need to replace the x with the version number of Python you have (for example: python3.5):

$ python -m virtualenv --python=python3.x venv
$ . venv/bin/activate

Note

If you installed virtualenvwrapper, then type the following command to to create a virtual environment called csunplugged, with Python within the virtual environment already set to Python 3.

$ mkvirtualenv --python=/usr/bin/python3.x csunplugged

You should now have the name of your virtual environment before the terminal prompt.

Install Packages into the Virtual Environemnt

Now that the virtual environment is active, we can install the Python packages into it for local development. This allows you to run these tools without having to run these within the Docker system.

$ pip install -r requirements/local.txt

Step 9: Check Project Setup Works

To check the project works, open a terminal in the project root directory, which is the cs-unplugged/ directory (should contain a file called dev).

Type the following commands into the terminal (we will cover these commands in more detail on the next page):

$ ./dev start
$ ./dev update

If this is the first time you’re running this script, it will need to build system images. This can take some time, roughly 15 to 30 minutes, depending on your computer and internet speed (we recommend grabbing a cup of tea and watching an episode of Brooklyn Nine-Nine on Netflix).

After the helper script builds the system images, it will automatically start the system, and will let you know when the system is ready. You should then be able to open your preferred web browser to the URL cs-unplugged.localhost and see the CS Unplugged homepage.

Congratulations if you made it this far and everything is working, you’re all set to contribute to the CS Unplugged project.