Details the design decisions of the application as well as envisioned future plans.
MVP
Overview
Should allow users:
- Login to Harvest
- Prompts the user for credentials
- Show a view when installed where they can navigate to generate the needed access token for the integration
- Start and stop existing time entries
- Create a new time entry under a task and project
- Set or update the notes for an entry
- See in the status bar:
- how much time has been tracked under an entry in the format
0:00
- for which project (task name may be omitted, or perhaps configurable), e.g.
project or PR
- If it’s currently tracking or is paused
- If automatic switching is enabled
- to enable or disable automatic switching. If enabled:
- Allows users to setup so that certain tasks are associated with certain directories or files in order of specificity (which is determined by
string.includes(path) where path = the file or dir associated with a task and project)
- Automatically switches entry to one with the associated task if one can be inferred from the document a user is editing. Creates a new one if none is currently existing for the current day (determined by the user’s time)
- If a user manually changes the task switching will be disabled until a user manually enables it again
- Should allow a user to view, add and remove their associated tasks in a sidebar view
Interactions
Interactions with the extension includes:
- Commands → for starting/stopping/editing entries, updating Harvest credentials etc
- Status bar click → clicking will toggle automatic switching on or off
- Sidebar view → Allows users to add/remove associated task paths
- Settings → Used for configuring the status bar view
- Notifications → To alert users when some error has occurred and action is required or if an action is ambiguous
Switching rules
- If timer is not running and user saves a file that has a default task associated → show notification to start timer