# Prerequisites

### JDK

The Java client libraries requires JDK 11+. This tutorial uses JDK 17.

### IDE

Use an IDE of your choice.

{% hint style="info" %}
**Note**

* This tutorial uses Inrupt’s [PodSpaces](https://github.com/inrupt/docs-gitbook/blob/main/.gitbook/includes/broken-reference/README.md) and provides instructions on creating an account, WebID and a Pod through PodSpaces.
* PodSpaces is currently available as Developer Preview. Do not use for production or storing sensitive/personal data.
  {% endhint %}

To get a WebID and a Pod on [PodSpaces](https://github.com/inrupt/docs-gitbook/blob/main/.gitbook/includes/broken-reference/README.md) :

1. Go to [PodSpaces](https://start.inrupt.com/).
2. To create an account, you must agree to the Inrupt’s Terms of Service. To agree, select the checkbox.
3. If you agree to Inrupt’s Terms of Service, click on the <mark style="background-color:blue;">**Sign Up**</mark> button.
4. If you have not registered an account with the Inrupt Identity Provider, click on the <mark style="background-color:blue;">**Sign up**</mark> link to create an account:
   1. Fill in your username, email, and password.
   2. Click <mark style="background-color:blue;">**Sign Up**</mark>. You are sent a verification email.
   3. Check your email for the verification email. Follow the instructions in the email to verify. Check your spam if you do not see the email in your inbox.
   4. Once verified, return to click <mark style="background-color:blue;">**Continue**</mark> to go to the Sign in page:
      1. Enter your username and password.
      2. Click <mark style="background-color:blue;">**Sign in**</mark> to your account. The screen displays the access required to continue.
   5. To allow and continue, click <mark style="background-color:blue;">**Allow**</mark>.\
      The application displays your WebID and Pod Storage details:
      1. WebID: **`https://id.inrupt.com/{username}`** .\
         Pod Storage: **`https://storage.inrupt.com/{Root Container}`**

### Client Credentials

Inrupt’s PodSpaces provides an [Application Registration page](https://login.inrupt.com/registration.html) where you can statically register your applications to generate credentials for them.

1. Go to PodSpaces [Application Registration](https://login.inrupt.com/registration.html) page.
2. If not already logged in, you will redirect to the login page. Log in with your username and password.
3. In the <mark style="background-color:blue;">**Register an app**</mark> textbox, enter your application’s name and click <mark style="background-color:blue;">**Register**</mark>.
4. The Client ID and Client Secret for your application appears under Apps You’ve Registered list.

{% hint style="danger" %}
Safeguard your **`Client ID`** and **`Client Secret`** values. Do not share these with any third parties as anyone with your **`Client ID`** and **`Client Secret`** values can impersonate you and act fully on your behalf.
{% endhint %}

### Initialized Spring Boot Web Project

{% hint style="info" %}
This tutorial assumes an initialized Spring Boot Web Maven Java Project or Spring Boot Web Gradle Kotlin Project.
{% endhint %}

{% tabs %}
{% tab title="Java" %}
For Java, this tutorial uses Spring Boot Web Maven project. Initialize a Spring Boot Web Maven/Java project.

If you are initializing a new project at <https://start.spring.io/> , specify the following:

<table data-header-hidden><thead><tr><th width="135.80859375"></th><th></th></tr></thead><tbody><tr><td>Project</td><td>Select <strong><code>Maven</code></strong>.</td></tr><tr><td>Language</td><td>Select <strong><code>Java</code></strong>.</td></tr><tr><td>Spring Boot</td><td>Select a version.</td></tr><tr><td>Project Metadata</td><td>bCZIVpmU6Btn</td></tr><tr><td>Group</td><td>com.example</td></tr><tr><td>Artifact</td><td>getting-started</td></tr><tr><td>Name</td><td>getting-started</td></tr><tr><td>Description</td><td>Demo Getting Started project for Solid</td></tr><tr><td>Package Name</td><td>com.example.gettingstarted</td></tr><tr><td>Packaging</td><td>Jar</td></tr><tr><td>Java</td><td>17</td></tr><tr><td>Dependencies</td><td>Spring Web</td></tr></tbody></table>

Click <mark style="background-color:blue;">**Generate**</mark>.

Once you have generated and downloaded the resulting `zip` file, unzip the file to your destination directory and open the project in your IDE.
{% endtab %}

{% tab title="Kotlin" %}
For Kotlin, this tutorial uses Spring Boot Web Gradle project. Initialize a Spring Boot Web Gradle Kotlin project.

If you are initializing a new project at <https://start.spring.io/> , specify the following:

<table data-header-hidden><thead><tr><th width="140.90234375"></th><th></th></tr></thead><tbody><tr><td>Project</td><td>Select <code>Gradle-Kotlin</code>.</td></tr><tr><td>Language</td><td>Select <code>Kotlin</code>.</td></tr><tr><td>Spring Boot</td><td>Select a version.</td></tr><tr><td>Project Metadata</td><td>W0ReSePvnvQc</td></tr><tr><td>Group</td><td>com.example</td></tr><tr><td>Artifact</td><td>getting-started</td></tr><tr><td>Name</td><td>getting-started</td></tr><tr><td>Description</td><td>Demo Getting Started project for Solid</td></tr><tr><td>Package Name</td><td>com.example.gettingstarted</td></tr><tr><td>Packaging</td><td>Jar</td></tr><tr><td>Java</td><td>17</td></tr><tr><td>Dependencies</td><td>Spring Web</td></tr></tbody></table>

Click <mark style="background-color:blue;">**Generate**</mark>.

Once you have generated and downloaded the resulting `zip` file, unzip the file to your destination directory and open the project in your IDE.
{% endtab %}
{% endtabs %}
