Home

Awesome

RealWorld Example App

Haskell/Scotty codebase containing real world examples (CRUD, auth, advanced patterns, etc) that adheres to the RealWorld spec and API.

Demo    RealWorld

Build Status

This codebase was created to demonstrate a fully fledged fullstack application built with Haskell/Scotty including CRUD operations, authentication, routing, pagination, and more.

We've gone to great lengths to adhere to the Haskell/Scotty community styleguides & best practices.

For more information on how to this works with other frontends/backends, head over to the RealWorld repo.

How it works

Environment Variables

NameDescDefault Value
DATABASE_URLPostgreSQL Database URLpostgresql://localhost/realworld
ENABLE_HTTPSServer will run on HTTPS if TrueTrue
PORTPort3000
JWK_PATHPath to JWK signature filesecrets/jwk.sig
JWT_EXPIRATION_SECSHow long until JWT expire (in secs)7200

Notable Dependencies

Quick Repo Walkthrough

Getting started

Installation

Install Stack.

Install PostgreSQL.

Clone the repository and cd to repo

git clone https://github.com/eckyputrady/haskell-scotty-realworld-example-app.git

cd haskell-scotty-realworld-example-app

Install GHC

stack setup

Install dependencies and build project

stack build

Run project

stack exec realworld-exe

Alternatively, to watch file changes and start the server automatically

./scripts/dev.sh

Alternatively, to watch file changes and run the tests automatically

stack test --file-watch --coverage

To setup deployment to Heroku, please configure this custom buildpack

heroku buildpacks:set https://github.com/mfine/heroku-buildpack-stack

Misc

Logo image - credits to @EricSimmon