Skip to content

Tomato Clock is a simple browser extension for managing your productivity.

License

Notifications You must be signed in to change notification settings

samueljun/tomato-clock

Repository files navigation

Tomato Clock - Browser Extension

Mozilla Add-on Users Chrome Web Store Users

Tomato Clock is a simple browser extension for managing your productivity. Use the extension to break down your work into 25 minute 'Tomato' intervals separated by short breaks. Use the long break after completing four Tomato intervals.

Features:

  • Customizable timer lengths
  • Browser notifications
  • Customizable notification sounds
  • Stat tracking

You can customize the length of the Tomatoes and breaks in the extension page. The extension uses the default browser notification system, accompanied by a notification sound, to let you know when the timer is over. The extension also features stats for tracking how many Tomatoes you complete. Your stats are synced across devices using the browser's cloud storage support.

Please file any issues or feature requests at https://github.com/samueljun/tomato-clock/issues.

Buy Me A Coffee

Installation

Development

Setup

  1. Install node.js and npm.

  2. Install the required node modules:

npm install
  1. Run one of the following commands so that webpack can watch and recompile the /src files live to the /dist folder (NOTE: Default target is Firefox):
npm run watch
npm run watch:firefox

npm run watch:chrome
  1. In a separate terminal, run the following command to start a clean clean browser instance with live reloading (https://github.com/mozilla/web-ext):
npm run start
npm run start:firefox

npm run start:chrome

Updating the version number

Run the following command with the appropriate npm version {patch/minor/major} to bump the package.json version based on semver:

npm version patch && git push && git push --tags

Building submission file

Run one of the following commands so that webpack can build the submission zip file into /dist-zip:

npm run build
npm run build:firefox

npm run build:chrome

Stats export json format

The expected formatting of Tomato Clock's .json files is as follows

[
  { "timeout": 1500000, "type": "tomato", "date": "2020-08-29T18:07:55.895Z" },
  {
    "timeout": 300000,
    "type": "shortBreak",
    "date": "2022-04-13T04:13:37.406Z"
  },
  {
    "timeout": 900000,
    "type": "longBreak",
    "date": "2022-04-13T04:13:40.030Z"
  },
  { "timeout": 1500000, "type": "tomato", "date": "2022-04-13T04:13:45.182Z" }
]
  • At the base, there is an array [] of objects {}
  • Each object {} is an instance of the clock timer.
  • Within each object:
    • "timeout": is the time in milliseconds of the timer
    • "type": is one of "tomato", "shortBreak", or "longBreak"
    • "date": is the exact date and time string in the ISOString format

About

Tomato Clock is a simple browser extension for managing your productivity.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published

Contributors 8

Languages