https://github.com/tzemanovic/haskell-yesod-realworld-example-app
Exemplary real world application built with Haskell + Yesod
https://github.com/tzemanovic/haskell-yesod-realworld-example-app
crud haskell haskell-application jwt realworld-backend rest-api yesod
Last synced: about 2 months ago
JSON representation
Exemplary real world application built with Haskell + Yesod
- Host: GitHub
- URL: https://github.com/tzemanovic/haskell-yesod-realworld-example-app
- Owner: tzemanovic
- License: bsd-3-clause
- Created: 2018-07-11T22:51:16.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2021-12-09T12:00:22.000Z (over 3 years ago)
- Last Synced: 2025-02-27T15:18:38.727Z (2 months ago)
- Topics: crud, haskell, haskell-application, jwt, realworld-backend, rest-api, yesod
- Language: Haskell
- Homepage: https://realworld.io
- Size: 369 KB
- Stars: 169
- Watchers: 11
- Forks: 26
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: LICENSE.md
Awesome Lists containing this project
README
# 
[](http://spacemacs.org) [](https://travis-ci.org/tzemanovic/haskell-yesod-realworld-example-app)
> ### Haskell/Yesod codebase containing real world examples (CRUD, auth, advanced patterns, etc) that adheres to the [RealWorld](https://github.com/gothinkster/realworld) spec and API.
# How it works
Check out this [post for an overview of project's dependencies and its structure](https://tzemanovic.gitlab.io/posts/realworld-example-with-haskell-yesod/).
# Getting started
## Haskell Setup
1. If you haven't already, [install Stack](https://haskell-lang.org/get-started)
* On POSIX systems, this is usually `curl -sSL https://get.haskellstack.org/ | sh`
2. Install the `yesod` command line tool: `stack install yesod-bin --install-ghc`
3. Build libraries: `stack build`If you have trouble, refer to the [Yesod Quickstart guide](https://www.yesodweb.com/page/quickstart) for additional detail.
## Development
Start a development server with:
```
export JWT_SECRET="some secret value"
stack exec -- yesod devel
```As your code changes, your site will be automatically be recompiled and redeployed to localhost.
## Tests
```
stack test --flag app:library-only --flag app:dev
```(Because `yesod devel` passes the `library-only` and `dev` flags, matching those flags means you don't need to recompile between tests and development, and it disables optimization to speed up your test compile times).
## Documentation
* Read the [Yesod Book](https://www.yesodweb.com/book) online for free
* Check [Stackage](http://stackage.org/) for documentation on the packages in your LTS Haskell version, or [search it using Hoogle](https://www.stackage.org/lts/hoogle?q=). Tip: Your LTS version is in your `stack.yaml` file.
* For local documentation, use:
* `stack haddock --open` to generate Haddock documentation for your dependencies, and open that documentation in a browser
* `stack hoogle ` to generate a Hoogle database and search for your query
* The [Yesod cookbook](https://github.com/yesodweb/yesod-cookbook) has sample code for various needs## Getting Help
* Ask questions on [Stack Overflow, using the Yesod or Haskell tags](https://stackoverflow.com/questions/tagged/yesod+haskell)
* Ask the [Yesod Google Group](https://groups.google.com/forum/#!forum/yesodweb)
* There are several chatrooms you can ask for help:
* For IRC, try Freenode#yesod and Freenode#haskell
* [Functional Programming Slack](https://fpchat-invite.herokuapp.com/), in the #haskell, #haskell-beginners, or #yesod channels.