# Project setup
## Setting up the environment
### Setting up GIT
Dowload and install [GIT](https://git-scm.com/downloads).
Open a console (also know as cmd or terminal) and check GIT installation -- type `git --version` in the console and check if the version is printed:

### Setting up IDE
In this course we are using [IntelliJ IDEA](https://www.jetbrains.com/idea/). If you prefer another IDE please bear in mind that you could face a problems with the latest Scala version.
It is required to you the latest IntelliJ IDEA. The best approach to keep IDEA up-to-date is to setup [Toolbox App](https://www.jetbrains.com/toolbox-app/) which allows to update JetBrains products automatically.
#### Scala related pligins setup
In IntelliJ IDEA go to plugins page (`File` → `Preferences` for Windows and Linux or `IntelliJ IDEA` → `Preferences` for MacOS):

Install SBT Executor plugin as well

## Seting up the project
### Setting up GitHub account
Register [GitHub](https://github.com/) account.
### Fork the project
Login to your GitHub account, go to [project repository](https://github.com/KarazinScalaUsersGroup/scala-course-2021-autumn) and fork it:

### Clone the project
To clone the project to your local machine copy the link to the fork in your GitHub repository:

In IntelliJ IDEA open `File` → `New` → `Project from Version Control...`

Choose a directory when you'd like to save the project and put the copied link to URL field:

If evrything is done you'll see the project:

### Add me as a collaborator to your project
To be able to add me (`IgorWolkov`) as a reviewer you need to add me as a collaborator to the project


### Setting up JDK
In IntelliJ IDEA open `File` → `Project Structure`:

In `Project Structure` set JDK:

We are using JDK 11, you can choose any vendor you like:

Downloaded JDK should appeared in `SDK`:

In `Project` should be JDK 11:

### Setting up Scala in the project
In `Project Structure` set Scala:

Download Scala 3.1:

If everything is done you'll see in `Globa Libraries`:

In `Libraries` should be Scala 3.1:

### Clean and compile project from sbt
Type `clean` in `sbt shell`:

Type `compile` in `sbt shell`:

### Clean and compile project from IDE
Refres all dependencies and load the project:

Build the project:
