64 lines
3.1 KiB
Markdown
64 lines
3.1 KiB
Markdown
# 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)
|
|
## Version 0.0.3
|
|
Simple todo list webapp.
|
|
Features :
|
|
- add and delete (and soon share) 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
|
|
- possibility to deploy easily via nix module with a flake
|
|
- that's it, the goal is to keep it minimal !!!
|
|
|
|
## Haskell Setup (I sadly don't use nix develop at the moment)
|
|
|
|
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:
|
|
|
|
```
|
|
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](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 <function, module or type signature>` 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.
|