Simple no frills Pomodoro Timer that I made for my 100 day coding challenge.
NOTE: This app was generated with Cookiecutter along with @clamytoe's toepack project template.
Since the application plays local system sound files, this project only works for those that are using Linux Mint. I'm using Mint 19 with Cinnamon, so not even sure if it would work on any other setup. If anyone one would like to add support for other platforms, PR's are welcome.
I've added a config file that could be modified with your own sound files and player.
cd Projects
git clone https://github.com/clamytoe/pomodoro_timer.git
cd pomodoro_timer
If you are an Anaconda user, this command will get you up to speed with the base installation.
conda env create
conda activate pomodoro_timer
If you are just using normal Python, this will get you ready, but I highly recommend that you do this in a virtual environment. There are many ways to do this, the simplest using venv.
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
pip install -e .
The utility is easy to use. For instance, to work on a project for the next 4 hours. You would use the following command.
pomodoro -d 4
For more options, use the built in help feature:
pomodoro --help
usage: pomodoro [-h] [-d DURATION] [-b BREAKS] [-i INTERVAL]
Pomodoro Productivity Timer
optional arguments:
-h, --help show this help message and exit
-d DURATION, --duration DURATION
How long you going to work for, in hours
-b BREAKS, --breaks BREAKS
How long the breaks should be
-i INTERVAL, --interval INTERVAL
Minutes to work before taking a break
Contributions are very welcome. Tests can be run with with pytest -v
, please ensure that all tests are passing before submitting a pull request. I have also included the following packages that should be used:
- black
- isort
- mypy
- pyflakes
- pylint
I am not adhering to them strictly, but try to clean up what's reasonable.
Distributed under the terms of the MIT license, "pomodoro_timer" is free and open source software.
If you encounter any problems, please file an issue along with a detailed description.
- v0.2.1 Modified it to exit the program after 8 work cycles and added type hinting.
- v0.2.0 FIXED: Bug where config file was not being found when program was not executed from the project's directory.
- v0.1.9 Modified logging config so that log level INFO messages would not show up in the console.
- v0.1.8 Started logging all of the steps taken so that I can aggregate a possible report feature later on.
- v0.1.7 Added default values so that the program can be run without parameters.
- v0.1.6 Added ability for user to be able to initiate the interval and break cycles.
- v0.1.5 Enabled BetterCodeHub and Travis CI integration.
- v0.1.4 Refactored in order to be able to increase test coverage.
- v0.1.3 Moved system configurable settings to a separate configuration file.
- v0.1.2 Added argparse in order to be able and modify key variables on the fly.
- v0.1.1 Modified my initial Jupyter Notebook code to run from the command line.
- v0.1.0 Initial commit.