victoriahodges / python_pomodoro

A Pomodoro Timer Application using Python and Tkinter.
MIT License
0 stars 0 forks source link

WIP: python_pomodoro

A Pomodoro Timer Application using Python and Tkinter.

This project aims to develop my skills in: OOP, event-driven programming, UI/UX design, testing and validation, software deployment.

Usage

To run the application from a terminal

python -m python_pomodoro.app

What is the Pomodoro technique?

Method of time management to help improve productivity:

What will the UI look like?

Development of this app will incorporate the following features.

Image

More details on how the UI will work:

Image

Project set up

My local environment is installed on a Fedora Linux laptop.

Dependencies:

Check Python version:

$ python --version
Python 3.12.5

Install tkinter on Fedora Linux

https://www.geeksforgeeks.org/how-to-install-tkinter-on-linux/

For Fedora users, use the following command:

sudo dnf install python3-tkinter

Verify installation: a pop-up window opened with two buttons appears, showing the current version of Tkinter installed.

python -m tkinter

Install pip on Fedora Linux

https://packaging.python.org/en/latest/guides/installing-using-linux-tools/

$ sudo dnf install python3-pip python3-wheel

$ pip --version
pip 23.2.1

Install pipenv

https://pipenv.pypa.io/en/latest/index.html

Rationale: Poetry is another Python virtual environment and dependency management tool, however this project is not very big or particularly complex and has minimal dependencies, therefore I have opted to use Pipenv, which I am more familiar with.

$ pip install pipenv --user

$ pipenv --version
pipenv, version 2024.0.1

Create and activate the virtual environment and spawn a shell within it

pipenv shell

Install packages

pipenv install [OPTIONS] [PACKAGES]...

Run the tests

Coverage with Pytest

$ coverage run -m pytest

View report in terminal

$ coverage report

Generate reports

This then works with Coverage Gutters VS Code extension to view coverage in module's python files.

$ coverage xml

Resources

Further information:

Other similar applications:

Here are a few Pomodoro apps which I've used for inspiration: