# Modules

The module system makes it easy to create easily reusable code, which is also easier to maintain.

## Where are the modules?

They are under the ```/modules``` directory of course.

## What kind of code can be in a module?

Both server-side and client-side code. This can make the system really feature-based, which is easier
to maintain.

## Registering a new module

The basic directory structure of a module looks something like this:

```
+-- modules/
    +-- module/
        +-- client/
            +-- Todos
                +-- Todos.jsx
        +-- server/
            +-- Todos.model.js
        +-- index.js
```

The ```index.js``` is used for registration purposes. This is used to set up the module. It serves
like an entrypoint.


## Core modules

You don't need to use them at all, but if you need something like Authentication or Database in your app,
it's best to start with them.
