Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tchoutri/domain-modelling-workshop
Haskell implementation of the Domain Modelling workshop by Michel Grootjans and Thomas Coopman.
https://github.com/tchoutri/domain-modelling-workshop
Last synced: 5 days ago
JSON representation
Haskell implementation of the Domain Modelling workshop by Michel Grootjans and Thomas Coopman.
- Host: GitHub
- URL: https://github.com/tchoutri/domain-modelling-workshop
- Owner: tchoutri
- License: bsd-3-clause
- Created: 2023-05-26T23:23:31.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-09-04T14:53:37.000Z (over 1 year ago)
- Last Synced: 2024-11-05T18:54:27.621Z (about 2 months ago)
- Language: Haskell
- Size: 24.4 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Domain Modelling Workshop
This is a Haskell implementation of the server one has to implement for the https://domainmodelling.dev workshop by Michel Grootjans and Thomas Coopman.
## Necessary tools
To get the Haskell Compiler, use [ghcup](https://www.haskell.org/ghcup/). Version 9.4.5 is used in this project. You will also need the `cabal` CLI tool that usually comes with it.
## How to use
There is a Makefile that is documented. Just type `make` to see the available commands and what they do.
To run the server (this will fetch dependencies and build, if this is the first run), type:
```bash
$ make start
# Starting server on http://localhost:8081
```To run the tests, type:
```bash
$ make tests
```To run the code linters and formatters, run:
```bash
$ make lint
# and
$ make style
```
You will need to run following command line:```bash
$ cabal install cabal-fmt fourmolu hlint apply-refact
```## How to read
* The web server and request handling happens in `./app/Main.hs`
* Business logic like validation, price computation, and types happen in `./src`
* The tests happen in `./test`Enjoy!