# @lfk/backend

Backend Server

## Dev Setup 🛠

### Local w/ sqlite

1. Create a .env file in the project root containing:
   ```
    APP_PORT=4010
    DB_TYPE=sqlite
    DB_HOST=bla
    DB_PORT=bla
    DB_USER=bla
    DB_PASSWORD=bla
    DB_NAME=./test.sqlite
   ```
2. Install Dependencies
   ```bash
   yarn
   ```
3. Start the server
   ```bash
   yarn dev
   ```

### Generate Docs
```
yarn docs
```

### Docker w/ postgres 🐳

```bash
docker-compose up --build
```

## Recommended Editor

[Visual Studio Code](https://code.visualstudio.com/)

### Recommended Extensions

- will be automatically recommended via ./vscode/extensions.json

## Branches
- main: Protected "release" branch
- dev: Current dev branch for merging the different features - only push for merges or minor changes!
- feature/xyz: Feature branches - `feature/issueid-title`
- bugfix/xyz: Branches for bugfixes - `bugfix/issueid-title` (no id for readme changes needed)


## File Structure

- src/models/entities\* - database models (typeorm entities)
- src/models/actions\* - actions models
- src/models/responses\* - response models
- src/controllers/\* - routing-controllers
- src/loaders/\* - loaders for the different init steps of the api server
- src/middlewares/\* - express middlewares (mainly auth r/n)
- src/errors/* - our custom (http) errors
- src/routes/\* - express routes for everything we don't do via routing-controllers (depreciated)