Skip to content
Engine Backend
Haskell Other
  1. Haskell 99.6%
  2. Other 0.4%
Branch: develop
Clone or download
Latest commit 7713a58 Jan 14, 2020
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
engine-registry
engine-shared
engine-wizard-metamodel-migrator
engine-wizard
scripts
vendor [DSW-581] Move to monorepo Dec 20, 2019
.gitignore
.hindent.yaml
.hlint.yaml
.travis.yml
LICENSE.md
README.md [DSW-581] Move to monorepo Dec 20, 2019
stack.yaml
stack.yaml.lock

README.md

Engine Backend

It's a backend part of the engine.

Build Status License

applications

  • Wizard (: engine-wizard)
  • Registry (: engine-registry)

Contribute

Requirements

  • Stack (recommended 2.1.3 or higher)
  • MongoDB (recommended 4.0.12 or higher)
  • RabbitMQ (recommended 3.7.8 or higher, optional)
  • Hindent (recommended 5.3.1 or higher, optional)
  • HLint (recommended 2.1.11 or higher, optional)
  • wkhtmltopdf (recommended 0.12.5 or higher) - for exports in PDF format only
  • Pandoc (recommended 2.2.1 or higher) - for exports in non HTML/PDF formats only
  • Docker (recommended 17.09.0-ce or higher) - for build of production image

Build & Run

For running application it's need to run MongoDB database and set up connection in configuration file.

Run these comands from the root of the project

$ stack build <application>
$ stack exec <application>

Run tests

Run these comands from the root of the project

$ stack test <application>

Format code

Create a bash script which will do the work for you. Run the script from the root of the project

$ find <application>/src -name '*.hs' | while read line ; do hindent $line ; done
$ find <application>/test -name '*.hs' | while read line ; do hindent $line ; done

Code coverage

Run these comands from the root of the project

$ stack build <application>
$ stack test <application> --jobs=1 --fast --coverage --ghc-options "-fforce-recomp"

Build an app version and built date

Run these comands from the scripts folder

$ ./<application>/build-info.sh

Naming conventions

  • Handler - a module containing handler functions
  • DTO - a module containing structures which represents request/response in API
  • Middleware - a module containing middleware functions
  • Service - a module containing service functions
  • Mapper - a module containing mapper functions
  • DAO - a module containing functions for a manipulation with data in database
  • Migration - a module containing functions for running initial database migrations

License

This project is licensed under the Apache License v2.0 - see the LICENSE file for more details.

You can’t perform that action at this time.