# Necessary tools

Before starting the project itself, we need to install the necessary tools and software listed below. Due to the practical nature of the course, many programs will be required.

## Required software

* [Node.js](https://nodejs.org/en) (**LTS** version)
* [NVM](https://github.com/coreybutler/nvm-windows/releases) (Optional)
* [VSCode](https://code.visualstudio.com/)\* - Used extensions below
  * ESLint
  * Prettier - Code formatter
  * Docker
  * DotENV
  * GitLens - Git supercharged
  * IntelliCode
  * Material Icon Theme (optional cosmetic)
  * Prisma (for the Parallel module)
* [GitHub](https://github.com/) account - During the project, we'll be committing at key points. If you have an account, you can benefit from this and also publish your project if you want.
* [Git](https://git-scm.com/) - For actually committing and publishing the project
* [Insomnia](https://insomnia.rest/download)\* - REST Client for API testing (usage covered only in video lessons)
* [Windows Terminal](https://apps.microsoft.com/store/detail/windows-terminal/9N0DX20HK701)\*
* [Docker Desktop](https://www.docker.com/) (also requires [WSL](https://learn.microsoft.com/en-us/windows/wsl/install#install-wsl-command))
* [pgAdmin 4](https://www.pgadmin.org/download/)
* NestJS CLI (Installation detailed below)

{% hint style="info" %}
Tools with a \* can be replaced with another of your preference.
{% endhint %}

## Nest installation

The Nest CLI is our interface for using Nest's commands. To install it, run the command below in the terminal.

{% hint style="info" %}
Some notes before installing

* Open the terminal as Admin
* Recommended to install it with the current Node.js LTS version
* Used versions: Node 22.13.0 and Nest 11.0.2
  {% endhint %}

```sh
npm i -g @nestjs/cli
```

And to confirm that it has been installed successfully, check the version.

```sh
nest -v
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://kinesis-school-of-programming.gitbook.io/nestjs-unleashed/introduction/necessary-tools.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
