> For the complete documentation index, see [llms.txt](https://odi.gitbook.io/core/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://odi.gitbook.io/core/basics/getting-started.md).

# Getting Started

## Installation

1. Install npm package\
   &#x20;`npm install odi --save`<br>
2. Install reflect-metadata \
   &#x20;`npm install reflect-metadata --save`<br>
3. Import reflect-metadata (for example in `index.ts`):\
   &#x20;`import "reflect-metadata";`<br>
4. Enabled the following settings in `tsconfig.json`<br>

   ```javascript
   "emitDecoratorMetadata":  true, 
   "experimentalDecorators":  true
   ```

## Hello World application

First of all, let's create simple controller `hello.controller.ts`

```typescript
import { Controller, IController, Get } from 'odi';

@Controller()
export class HelloController extends IController {

    @Get index() {
        return "Hello world !";
    }

}
```

And our startup file `index.ts`

```typescript
import "reflect-metadata";
import { Core } from "odi";

const port = 8080;
const sources = __dirname;

new Core({ server: { port }, sources }).listen();
```

Build your application and run it `tsc && node index.js` Check it in your browser

<div align="left"><img src="/files/-LPLPBRrHtOg1CwzfO6b" alt=""></div>

It was just a basic example. There are many other interesting things. Check docs for further information.
