# Template Module

URL: https://zerodev.ca/docs/kora/developer-documentation/template

> A starter module with one of everything, ready to copy.



[Kora-Template](https://github.com/zerodev-ca/Kora-Template) is a working module with a model, handler, route, clock, event, config, languages and a custom dashboard page. Copy it and rename things.

```bash
git clone https://github.com/zerodev-ca/Kora-Template modules/example
```

## Files

```text
modules/example/
├── main.js
├── resources/
│   ├── config/
│   │   └── settings.js
│   ├── dashboard/
│   │   └── pages/
│   │       └── template/
│   │           ├── page.js
│   │           └── view.tsx
│   └── lang/
│       ├── en/
│       │   ├── common.json
│       │   └── messages.js
│       └── es-ES/
│           └── common.json
└── src/
    ├── clocks/
    │   └── cleanup.js
    ├── events/
    │   └── licenseCreated.js
    ├── handlers/
    │   └── Items.js
    ├── models/
    │   └── Item.js
    └── routes/
        └── items/
            └── route.js
```

## After Cloning

1. Change `name` in `main.js` to your folder name.
2. Rename the model, handler and route to what your module stores.
3. Start Kora. The module shows up under **Modules** and its page in the sidebar.
4. Add a `common.json` for each locale you support. See [Languages](/docs/kora/developer-documentation/languages).

## Where Things Go

| You want to                       | Put it in                    | See                                                               |
| --------------------------------- | ---------------------------- | ----------------------------------------------------------------- |
| Store data                        | `src/models/`                | [Models](/docs/kora/developer-documentation/models)               |
| Write the logic                   | `src/handlers/`              | [Handlers](/docs/kora/developer-documentation/handlers)           |
| Add API endpoints                 | `src/routes/`                | [Routes](/docs/kora/developer-documentation/routes)               |
| Run something on a schedule       | `src/clocks/`                | [Clocks](/docs/kora/developer-documentation/clocks)               |
| React to licenses and validations | `src/events/`                | [Events](/docs/kora/developer-documentation/events)               |
| Add Discord commands              | `src/commands/`              | [Commands](/docs/kora/developer-documentation/commands)           |
| Add settings                      | `resources/config/`          | [Configuration](/docs/kora/developer-documentation/configuration) |
| Add dashboard pages               | `resources/dashboard/pages/` | [Pages](/docs/kora/developer-documentation/pages)                 |
| Add text and translations         | `resources/lang/`            | [Languages](/docs/kora/developer-documentation/languages)         |
