Absolutely useless toy implementation of twitter. I needed some little project idea to learn Yesod and persistent, and I couldn't come with any my own problem that would be solved with an web application.
Go to file
Dmitry Bogatov b074e81b2b feat: Scaffold an Yesod application
Right now I have no idea how it works, but it builds with "stack
build" and serves something on localhost:3000. I am not exactly happy
that building and interactive development depends on "stack(1)"
instead of more familiar "cabal repl", but I can live with it.

It requires Postgres database running on the localhost, which is
configured in my NixOS configuration, and not inside of this
repository. Probably can be done better.
2024-02-11 03:23:49 -05:00
app feat: Scaffold an Yesod application 2024-02-11 03:23:49 -05:00
config feat: Scaffold an Yesod application 2024-02-11 03:23:49 -05:00
nix feat: Scaffold an Yesod application 2024-02-11 03:23:49 -05:00
src feat: Scaffold an Yesod application 2024-02-11 03:23:49 -05:00
static feat: Scaffold an Yesod application 2024-02-11 03:23:49 -05:00
templates feat: Scaffold an Yesod application 2024-02-11 03:23:49 -05:00
test feat: Scaffold an Yesod application 2024-02-11 03:23:49 -05:00
.dir-locals.el feat: Scaffold an Yesod application 2024-02-11 03:23:49 -05:00
.envrc feat: Scaffold an Yesod application 2024-02-11 03:23:49 -05:00
.gitignore feat: Scaffold an Yesod application 2024-02-11 03:23:49 -05:00
README.md feat: Scaffold an Yesod application 2024-02-11 03:23:49 -05:00
package.yaml feat: Scaffold an Yesod application 2024-02-11 03:23:49 -05:00
shell.nix feat: Scaffold an Yesod application 2024-02-11 03:23:49 -05:00
stack.yaml feat: Scaffold an Yesod application 2024-02-11 03:23:49 -05:00
stack.yaml.lock feat: Scaffold an Yesod application 2024-02-11 03:23:49 -05:00

README.md

Database Setup

After installing Postgres, run:

createuser chirp --pwprompt --superuser
# Enter password chirp when prompted
createdb chirp
createdb chirp_test

Haskell Setup

  1. If you haven't already, install Stack
    • 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 for additional detail.

Development

Start a development server with:

stack exec -- yesod devel

As your code changes, your site will be automatically recompiled and redeployed to localhost.

Tests

stack test --flag chirp:library-only --flag chirp: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 online for free
  • Check Stackage for documentation on the packages in your LTS Haskell version, or search it using Hoogle. 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 <function, module or type signature> to generate a Hoogle database and search for your query
  • The Yesod cookbook has sample code for various needs

Getting Help