/pomaid

A Pomodoro Task Manager Terminal UI

Primary LanguageElixirMIT LicenseMIT

Pomaid

The intention of this project is to be a terminal based task manager with first class pomodoro tracking support

Inspiration

This project was inspired by two existing pieces of software. Both of these projects are fantastic and do more than Pomaid will ever do, I highly recommend checking them out.

Taskell

  • Taskell: Command-line Kanban board/task manager with support for Trello boards and GitHub projects https://taskell.app
    • Awesome Terminal UI task manager that was almost everything I wanted(only missing the Pomodoro functionality)
    • I tried to pick up Haskell and add it myself, but Haskell just isn't as enjoyable to write as elixir and since this is a project I intent to use and modify a lot I wanted it to be in a language I really enjoy writing

Kanban Flow

  • Kanban Flow: Great Web based task manager with pomodoro support
    • This has been my main task managing tool and is how I will track the beginning of building Pomaid.
    • Kanban Flow does everything that I want except:
      • Run in the terminal
      • First-class keyboard support(really hard to select a task with just the keyboard)
      • Run a script at the beginning and end of each pomodoro
        • Think turning off/on notifications and playing "lofi hip hop beats to study and relax to"
      • todo.txt support

Up and running

  • mix deps.get
  • iex -S mix

To Do

  • Create basic ratatouille TUI
  • Get OTP app working and tests running
  • Create Todo, Doing, and Done
  • Read in todo.txt files
  • Display tasks from todo.txt files
  • Make 'r' reload todo file
  • Read in Done tasks
  • Use arrow keys to select tasks
  • Move tasks around and automatically reassign priority
  • Group by project
  • Allow easily switching between projects as different "boards"
  • Filtering by context
  • Allow marking tasks as done, updating the file
  • Allow creation of new tasks
  • Allow modification of existing tasks
  • Pomodoro timer start and stop
  • Pomodoro count tracking per task
  • Pomodoro start and end script
  • Additional Vim keybindings for movement
  • '?' opens keybindings list
  • Fuzzy search tasks
  • Make a command that moves a task to doing(or swaps the current on) and starts a pomodoro for it
  • Keep track of number of Pomodori done that day/week/month(pomodoro metrics)

Misc.