Day Quality Tracker (DQT) is a simple Python CLI that helps you record and track
daily “day quality” ratings and visualize them over time using the
matplotlib.pyplot module.
By Morpheus
- Python 3.12 or later
- An internet connection (only for dependency installation)
If you want the shortest path to running DQT:
- Download and unzip the project from the latest release
- Open a terminal in the project folder
- Install dependencies with
python -m pip install -r requirements.txt - Start the program with
python -m dqt
On the GitHub page:
- Scroll down on the right column
- Under "Releases", select the option labeled "Latest"
- Scroll down to "Assets"
- Click on "Source code (zip)" (recommended for basic installation)
- Unzip the ZIP file on your machine to produce a new folder.
Before running any commands from this guide in your terminal, ensure your terminal is running from the correct directory. You can open a terminal window from the new dqt folder:
- macOS:
- Open the folder in finder
- Right-click the folder and select "New Terminal at folder"
- Windows (10/11):
- Click on the address bar in File Explorer (or press Alt + D), type
cmdorpowershell, and press Enter. To use the Windows Terminal app, typewtinstead. - Hold the Shift key and right-click on an empty space inside the folder or on the folder icon itself. Select "Open PowerShell window here" or "Open Command Prompt here".
- Windows 11 Context Menu:
- Right-click an empty space in the folder and select "Open in Terminal" directly from the context menu.
- Click on the address bar in File Explorer (or press Alt + D), type
Alternatively:
- Open a new Terminal window
- Run
cd path/to/day_quality_tracker- Replace
path/to/day_quality_trackerwith the actual path to the DQT folder
- Replace
If the command python does not work on your system, try python3 (common on
macOS/Linux) or py (common on Windows).
Then, from the project directory, install the required dependencies:
python -m pip install -r requirements.txtAlternatively, run scripts/package_installer.py to install everything listed
in requirements.txt for you:
python scripts/package_installer.pyAfter the dependencies are installed, you can start DQT.
To start the program from the project directory, run:
python -m dqtYou can also initialize and run the tracker manually by opening and running
dqt/__main__.py with an editor.
from dqt.tracker import Tracker
dqt = Tracker()
dqt.run()On the first run, DQT will create its logs file automatically if it does not already exist.
- If the
data/directory does not exist yet, DQT will create it. - Your logs are stored in
data/dq_logs.json
You usually do not need to create this file manually.
dqt/settings.py: user-editable configuration filedata/dq_logs.json: where your ratings and memory entries are storedrequirements.txt: Python dependencies needed by the app
Each day, if you have not yet entered a rating, the program will prompt you to do so. By default, the earliest time you can enter a rating is 8:00 PM (configurable).
You may also enter a null rating, indicating that you are unable or unwilling to rate your day at the moment. Ratings can be edited at any time.
You may optionally add a memory entry alongside your rating. Memory entries function like short diary notes and can span a few lines.
You may enter anything you wish to remember for the future, or leave the entry empty if you do not wish to write one.
After entering your log for the day, you have a number of options:
Visually display your ratings on a line graph. The graph also shows your average, highest, and lowest ratings. When the graph window opens, close it to return to the program.
Choose to edit the rating or memory (or both) you entered today.
To choose the log to edit, the program will prompt you to enter either:
- The date of the log you wish to edit
- By default, the format you must use is
YYYY-MM-DD(e.g.,2026-01-20)
- By default, the format you must use is
- The number of days ago the log is for
- e.g.: yesterday →
1, last week →7
- e.g.: yesterday →
Choose to edit the rating or memory (or both) you entered for that day.
View detailed statistics about your ratings, including averages, highs, lows, and more.
Choose either to:
- Print logs as standard output
- Open the file with your system's default application
Open dqt/settings.py to customize your experience. See more
below.
Occasionally, errors or interruptions may corrupt or erase the JSON file where logs are stored. To prevent data loss, it is recommended to back up your logs periodically.
This option creates a copy of your log JSON file in a directory of your choosing.
You can easily migrate your logs between versions of DQT or between different devices.
The program reads and copies the data from a chosen JSON file over to the current JSON file used by the program.
After running the program, it first checks if you've missed any prior logs.
You may choose to enter the missed logs immediately or skip them for later.
If you skip missed logs, they must be entered manually at a later time (unless the program is exited before entering today’s log). This is because the program determines missed logs by comparing dates against the most recent recorded entry.
To configure and customize DQT, open dqt/settings.py (the main menu provides
an option to do this).
Each configuration comes with a description, and to change a setting, simply change the value after the colon.
For example, to set the earliest hour of day a log entry is accepted to 10:00 PM:
# (Simplified)
CONFIGS: dict[str, dict[str, ...]] = {
'tracker': {
'min_time': 22, # Earliest hour of day a log entry is accepted...Remember to save any changes made and rerun the program for changes to take effect.
Feel free to experiment with each setting to tune DQT to your preferences.
This project is licensed under the MIT License.
Like my project? Drop me a star!