Task Keeper
List editor for power users, backed by a self-hosted server.
List editor for power users, backed by a self-hosted server.
Task Keeper
===========
[](https://github.com/nymanjens/piga/actions)
This project aims to be a list editor for power users.
Example use cases:
* A TODO list
* A list of meals and ingredients
* Notes from a meeting
* A list of things to remember
## Features
* Document editing:
* Productivity **shortcuts** for actions such as 'remove task', 'swap task down',
'open link', 'convert selection to lower case', ...
* Ability to **collapse** all indented tasks beneath selected task
* Tasks can have **tags**
* Many documents:
* Easy **switching** between documents
## Screenshot

## Installation from release
- Install Java 11 (JDK 11) on your server
- Download "Binaries (compiled files) with demo configuration" from the [latest
release](https://github.com/nymanjens/piga/releases)
- Unpack the archive
- Open `conf/application.conf` in the unpacked folder:
- Configure a database. The easiest way is to set up a MariaDB server locally,
create an empty database called `piga` and configure it as follows:
```
db.default.driver=com.mysql.jdbc.Driver
db.default.url="jdbc:mysql://localhost/piga?user=mysqluser&password=mysqlpassword"
db.default.slick.profile = "slick.jdbc.MySQLProfile$"
```
- Choose secret values for `play.http.secret.key` and `app.setup.defaultPassword`
- Open a terminal in the unpacked folder
- Run following commands to get the app running:
```
# Create database tables
bin/server -DdropAndCreateNewDb
# Create admin user
bin/server -DcreateAdminUser
# Run application
bin/server
```
- Browse to http://<ip_address>:9000/app/useradministration (username: "admin", password: "changeme")
## Installation with Docker
The following commands will launch a new server alongside a database in Docker containers:
```
# Get the docker-compose.yml file
wget https://raw.githubusercontent.com/nymanjens/piga/master/docker-compose.yml
# Choose a unique random string here of sufficient length
export APPLICATION_SECRET="$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)"
# Create an empty database with a single admin user
docker-compose run web bin/server -DdropAndCreateNewDb
docker-compose run web bin/server -DcreateAdminUser
# Bring up the server
docker-compose up
```
When done, browse to http://<ip_address>:9000/app/useradministration (username: "admin", password: "changeme")
## Configuration
- `conf/application.conf`:<br>
Setup and configure a database here.
- Add users:<br>
A default user is created with the `-DcreateAdminUser` flag (username: admin, password:
changeme). This account can create new users.
## Shortcuts
- **Basics**
- **Indentation**
- `tab`: Increase current indentation
- `shift + tab`: Decrease current indentation
- **Formatting**
- `ctrl + I`: Toggle 'italic'
- `ctrl + B`: Toggle 'bold'
- ``ctrl + `` `: Toggle 'code font'
- `alt + shift + 5`: Toggle 'strikethrough'
- `ctrl + \`: Reset formatting
- **Undo/redo**
- `ctrl + Z`: undo
- `ctrl + Y`: redo
- `ctrl + shift + Z`: redo
- **Special actions**
- `ctrl + K`: Create or edit a link
- `alt + shift + T`: Create or edit a tag
- `ctrl + P`: Open "Go to file" dialog
- `ctrl + plus`: Expand current task
- `ctrl + minus`: Collapse current task
- `alt + shift + 4`: Mark as 'done'
- **Power user shortcuts**
- **Copying**
- `ctrl + shift + C`: Copy selected task and its children
- `ctrl + shift + X`: Cut selected task and its children
- `alt + shift + M`: Copy selected task and its children as Markdown
- **Tasks**
- `alt + up`: Swap current task with the previous task
- `alt + down`: Swap current task with the next task
- `ctrl + shift + P`: Go to the parent task
- `ctrl + D`: Delete current task
- `ctrl + shift + B`: Duplicate current task
- **Change casing**
- `ctrl + alt + U`: Convert selection to uppercase
- `ctrl + shift + U`: Convert selection to uppercase
- `ctrl + alt + L`: Convert selection to lowercase
- `ctrl + shift + L`: Convert selection to lowercase
- `alt + shift + L`: Convert selection to CamelCase
- `alt + shift + K`: Convert selection to snake_case
- `alt + shift + H`: Convert selection to dash-case
- **Selection**
- `ctrl + enter`: Open selected link
- `ctrl + M`: Select current word
- `ctrl + shift + M`: Select current quoted sentence
- `ctrl + J`: Select current task
- `ctrl + G`: Find next occurrence of selected text
- **Other**
- `ctrl + Q`: Go to the last edit
- `ctrl + shift + delete`: Delete the remainder of the line after the cursor
Define, organize, track and manage work across individuals and teams (alternative to Trello, Notion, and Asana).
Straightforward realtime kanban boards management for intuitive task tracking. Featuring an elegant dark mode, collapsible todo lists, and multitasking tools to supercharge your team's productivity.
Web-based finance management tool for partners with partially shared expenses.
Git platform powered with easy installation, high extensibility & GitHub API compatibility (alternative to GitHub).