> For the complete documentation index, see [llms.txt](https://uci.sunbird.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://uci.sunbird.org/use/developer/development-environment/setting-up-ide.md).

# Setting up IDE

### 1. Overview

In this doc we'll configure an IDE (Eclipse/IntelliJ) for setting up development enviorment for UCI.

### 2. Setting up IntelliJ

#### 2.1 Importing Projects

* **Import new project**

  ```
      File -> New -> Project from existing source  
  ```

  Then open project as **maven project** in IntelliJ.
* For importing multiple projects in intelliJ click on **maven** (in right toolbar) and click on **+** for opening multiple projects.

![add multiple projects](/files/rB1gU7Ltuj9MbxW3IS8D)

* After importing all the projects in your IntelliJ, now reload all maven project for first time setup.

![reload projects](/files/lcOywOJmWS8d7XFRLf3X)

#### 2.2 Setting configurations

For setting configuration for any project follow below steps

* Goto edit configuration.

![edit config](/files/Mu5brJHjumXD8cKDBkQx)

* Add new configuration of type Application.

![new conf type application](/files/DYiEzUzXAtsyh47mNG31)

* Now give name to config, select module, select JRE, give path of main class of that module, select working directory as shown in picture.

![define properties](/files/2bP56Ivi3nUNOT7NX1bu)

* For handling enviorment variables, click on edit enviorment variables (if this colum not shown by default, enable it from **modify-options**).

![enviorment variables](/files/eZGoDJEu4Wyxjo3uqz5V)

* Make these configuration for following projects\
  inbound\
  orchestrator\
  transformer\
  outbound

#### 2.3 Build and Run

Now we can build and Run the projects using below steps

* Required Plugins to build the project\
  maven\
  docker\
  lombok
* Now simply select configuration and click on Run(Shift+F10), to run the project.

### 3. Setting up Eclipse

#### 3.1 Importing Projects

* **Import Projects into Eclipse**

```
    File 
        -> Import 
            -> Projects From Git 
                -> Existing Local Repository 
                    -> Select You project
                        -> Finish
```

Import all the project like this.

* After Importing, Update all project for first time setup.

```
    Project
        -> Update Maven Project
            -> Select All Projects
                -> Update
```

![update all](/files/6rETWLzILuZjiWK8ww5e)

#### 3.2 Setting Configurations

For setting configuration for any project follow below steps

* Make new Configuration for spring-boot-app

```
Run
    -> Run Configurations
        -> Spring Boot App
```

* Now give name to config, select project, select main class of project and click Apply.

![](/files/8yv6gZBqw0mhOiYyQt5r)

![](/files/8yv6gZBqw0mhOiYyQt5r)

* Now for handling Enviorment Variables click on Enviorment in config window.\
  Here we can put enviorment variable's value.

![](/files/y9sKZBR72lAUco7lR327)

* Make these configuration for following projects :\
  inbound\
  orchestrator\
  transformer\
  outbound

#### 3.3 Build and Run :

To build and Run in Eclipse, Simply Run the project as Spring Boot App.

```
Run
    -> Run As
        -> Spring Boot App
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://uci.sunbird.org/use/developer/development-environment/setting-up-ide.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
