Skip to content

simoncarrollbsc/engine-backend

 
 

Repository files navigation

Engine Backend

It's a backend part of the engine.

Engine Backend CI License

Applications

  • Wizard (<application> = engine-wizard)
  • Registry (<application> = engine-registry)

Contribute

Requirements

  • Stack (recommended 2.3.1 or higher)
  • MongoDB (recommended 4.2.3 or higher)
  • RabbitMQ (recommended 3.8.2 or higher, optional)
  • Hindent (recommended 5.3.1 or higher, optional)
  • HLint (recommended 2.1.11 or higher, optional)
  • Docker (recommended 17.09.0-ce or higher) - for build of production image
  • document-worker (corresponding version) - for document generation, RabbitMQ required

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.

About

Engine Backend

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Haskell 95.4%
  • HTML 3.8%
  • Other 0.8%