# Initial Dev Environment Setup

{% hint style="success" %}
***Remember to enter your own GOOGLE API KEY in the source code in the place of YOUR\_API\_KEY. Without this api key, many functionalities might not work, especially maps. Check the*** [***docs***](/ionic-taxi-booking-app-starter/extra/app-specific-requirements.md) ***for more info***
{% endhint %}

These setups are needed before you can start working on this App platform. Make sure you have all the updated platform and framework needed :

1. **Installing Ionic**
2. **Install the Ionic CLI**
3. **Node & npm**
4. **Git**
5. **Code Editor**
6. **Install the app dependencies**

### **1.1 Installing Ionic**

Ionic apps are created and developed primarily through the Ionic [command-line](https://ionicframework.com/docs/faq/glossary#cli) utility. The Ionic CLI is the preferred method of installation, as it offers a wide range of dev tools and help options along the way.

### 1.2 Install the Ionic CLI <a href="#install-the-ionic-cli" id="install-the-ionic-cli"></a>

Before proceeding, make sure the latest version of [Node.js](https://ionicframework.com/docs/faq/glossary#node) and [npm](https://ionicframework.com/docs/faq/glossary#npm) are installed. See [Environment Setup](https://ionicframework.com/docs/installation/environment) for details. Install the Ionic CLI globally with npm:

```
$ npm install -g ionic
```

### &#x20;<a href="#node-amp-npm" id="node-amp-npm"></a>

### 1.3 Node & npm <a href="#node-amp-npm" id="node-amp-npm"></a>

Almost all tooling for modern JavaScript projects is based in [Node.js](https://ionicframework.com/docs/faq/glossary#node). The [download page](https://nodejs.org/en/download/) has prebuilt installation packages for all platforms. We recommend selecting the LTS version to ensure best compatibility.

Node is bundled with [npm](https://ionicframework.com/docs/faq/glossary#npm), the package manager for JavaScript.

To verify the installation, open a new terminal window and run:

```
$ node --version
$ npm --version
```

This starter app will run best with **node 12.x +**&#x20;

Node and NPM version are constantly updated so if you face any issue in setup, or warnings in `npm audit` feel free to contact us.

###

### 1.4 Git

[Git](https://ionicframework.com/docs/faq/glossary#git) is a distributed version-control system for tracking changes in source code during software development. Although it's not required, we highly recommend using Git for your app development.&#x20;

First, install the command-line utility from the [download page](https://git-scm.com/downloads). For a GUI client, we recommend [SourceTree](https://www.sourcetreeapp.com/). To verify the installation, open a new terminal window and run:

```
$ git --version
```

You can also use **Git CLI** to perform all Git related tasks. A good description of all Git CLI commands is given [here](https://git-scm.com/docs/gittutorial).&#x20;

## 1.5 Code Editor <a href="#text-editor" id="text-editor"></a>

Personally we use [VS Code](https://code.visualstudio.com/) , however, many people like [Atom](https://atom.io/). You are free to choose any code editor you like.&#x20;

## 1.6  App Specific Requirements&#x20;

There are few requirements of this app to be fulfilled . So you can check all it feature. They are listed in [App Specific Requirements](/ionic-taxi-booking-app-starter/extra/app-specific-requirements.md)

## Run the App <a href="#run-the-app" id="run-the-app"></a>

Now we have everything installed, we can test our Ionic App.

Go to [Running the App](/ionic-taxi-booking-app-starter/setup-and-deployment-1/running-the-app.md) section to see how to do it.


---

# 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://enappd.gitbook.io/ionic-taxi-booking-app-starter/setup-and-deployment-1/initial-setup.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.
