Giter VIP home page Giter VIP logo

alfred-focus-on-work's Introduction

Hi there ๐Ÿ‘‹

alfred-focus-on-work's People

Contributors

dependabot[bot] avatar igrybkov avatar

Stargazers

 avatar

Watchers

 avatar

alfred-focus-on-work's Issues

Add "Pomodoro mode"

Settings

  • Add ability to set time interval used for Pomodoro session
  • Add ability to set time interval used for a short break
  • Add ability to set time interval used for a long break

Time intervals

  • Does not show time interval selection since we have time interval already predefined
    • This would require to add a filter between "Choose a task" and "Choose a time" and skip time setting in case a time is set already

Tasks flow

  • When time is gone, a pomodoro is logged

Logging

  • Each Pomodoro must be logged somewhere to build a report later
    • Think about where and how you're going to log these pomodoros
  • Build a report
    • How are you going to build report around Pomodoros?
      • Build a PDF with report?
      • Excel?
      • Small web-server and a page?
      • A page in the PDF?
    • What should report contain?
      • Number of pomodoros accomplished
      • What else?

Related issues

Depends on ability to manipulate with workflow settings (#47)
Pomodoro reminder depends on #1 where reminder functionality should be added
Potentially crosses with task pausing implementation (#48) - at least they should be checked together

Pause a task

Add ability to pause a task execution and restore time settings from the same point where they've been before a task was paused

Add user documentation

  • What exactly this workflow doing, which problem tries to solve
  • How the flow looks like (gif)
  • Which applications supported

Add Settings menu item

Add ability to change workflow settings through Alfred interface

Events

This action would require several events:

Used to show menu

  • ShowSettingsItems
  • ShowSettingOptions

Used to manipulate with settings

  • AddConfigurationValueToSet
  • RemoveConfigurationValueFromSet
  • RemoveConfigurationValue
  • SetConfigurationValue

CLI Commands

  • menu:settings - prints all settings
  • menu:setting-options <settings-menu-item> - prints options for chosen configuration
  • settings:set <path> <value> - sets value to the configuration
  • settings:add <path> <value> - adds value to the set of values in the configuration
  • settings:remove <path> - removes value from the configuration
  • settings:remove-from-set <path> <key> - removes value from the configuration

Menu items

For each item:

  • Icon of a module which added an item or a default config item icon (TBD)

ShowSettingsItems

Environment variables

  • settingPath - a path of the setting

ShowSettingOptions

  • settingPath - path of the setting
  • settingValue - chosen value
  • settingAction - either set, add or remove action. If ommited, add used by default

Improvements

  • If possible, route a flow to some point of the next event by adding nextAction environment variable

Redesign module API to make modules responsible for filling menu items

The goal is to move control logic from the app.js to modules instead. This should give modules some flexibility in making decisions whether to show something or not and in which way.

There are two options to design such behavior:

  • add events and make modules subscribe to events
  • add soft interface where app.js check for a function and if it present then calls it

Anyway, for each command, all arguments must be passed through event/function arguments and the module decides whether to add anything to output or not.

Links

https://nodejs.org/api/events.html

Script from previous run stops execution when a new work on the same task is started

Steps to reproduce

  1. Start work for 2 minutes
  2. Stop it immediately
  3. Start a new work for 5 minutes for the same task
  4. When 2 minutes after the start of the first work will expire, the task execution would be stopped

Possible solution:

Generate uuid for each process started by Alfred and, when starting a job, persist that process in config.
When execution is finished, if saved uuid is the same as in the session, then stop an execution, otherwise, do nothing.

Preserve settings from being deleted when application unlinked

Unlinking happens when application switched between dev-release versions, upgraded or removed.
During this action, alfred-unlink removes a directory which had workflow settings inside.
This behavior really annoying and should be avoided. A possible fix is to inline that module and fix it in place. Another fix is to patch it during install.

Action items

  • Copy-paste a code used for linking into the project
  • Fix the issue
  • Get rid of the dependency on alfred-unlink

Show all tasks in the main menu

It's nice to have all the tasks listed at the end of the main menu to use search and start work immediately.
Make this option configurable through settings

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.