3.3 KiB
sTodo
Stuce's simple todo is a web app that let's you self host a simple todolist. The goal is to provide a minimalistic and fast todo list that is self hostable.
Usage
- can be used as is for a single user behind a vpn (for ex, wireguard)
- can be setup for multi user with a reverse proxy and an authentification provider that supports trusted sso (for ex, nginx + authelia)
Next goals
- Make multi user support
- write a minimal step by step guide to install with nix,
- add some css to make it look nicer
- add htmx to make more agreable without making js manadatory
- make api to allow usage with native app (a way to get every list that has been modified since date $date belonging from the user in a json or similar format)
- use getRep and provideRep to make text/javascript response as alternatives to html
- document api to help create clients
Version 0.0.3
Simple todo list webapp. Features : - add and delete groups that contain a list of todolists - add and delete todolists inside groups - add todolist items or edit complete list via text for easy manipulation
- api to allow creating native clients with offline capability
- possibility to deploy easily via nix module with a flake
- that's it, the goal is to keep it minimal !!!
Development
Haskell Setup (I sadly don't use nix develop at the moment)
- If you haven't already, install Stack
- On POSIX systems, this is usually
curl -sSL https://get.haskellstack.org/ | sh
- On POSIX systems, this is usually
- Install the
yesodcommand line tool:stack install yesod-bin --install-ghc - 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 sTodo:library-only --flag sTodo: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.yamlfile. - For local documentation, use:
stack haddock --opento generate Haddock documentation for your dependencies, and open that documentation in a browserstack 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
- Ask questions on Stack Overflow, using the Yesod or Haskell tags
- Ask the Yesod Google Group
- There are several chatrooms you can ask for help:
- For IRC, try Freenode#yesod and Freenode#haskell
- Functional Programming Slack, in the #haskell, #haskell-beginners, or #yesod channels.