Skip to content

πŸ› [Bug]: Progress-Tracker saves data to CWD instead of script directory β€” progress lost across runsΒ #1313

Description

@vipul674

Summary

The Progress-Tracker utility (utilities/Progress-Tracker/Progress-Tracker.py line 11) uses a relative path for its data file, causing user progress to be saved in the current working directory (CWD) instead of the script directory. This means progress is lost when the script is run from different directories.

Evidence

In utilities/Progress-Tracker/Progress-Tracker.py:11:

DATA_FILE = "completed_projects.json"

This is a relative path. The file is created in whatever directory the user runs the script from, not in the scripts own directory.

Compare with the same bug that was already fixed for other utilities:

The Progress-Tracker was missed in those fixes.

Affected Files

  • utilities/Progress-Tracker/Progress-Tracker.py (line 11)

Reproduction Steps

  1. Run python utilities/Progress-Tracker/Progress-Tracker.py from the repo root
  2. Mark a project as completed
  3. Run python utilities/Progress-Tracker/Progress-Tracker.py from a different directory (e.g., cd /tmp && python /path/to/Progress-Tracker.py)
  4. Observe that the previously marked project is no longer shown as completed

Expected Behavior

Progress data should be stored relative to the script directory, consistent with Budget-Tracker and Productivity-Pet.

Actual Behavior

Progress data is stored in the CWD, so each directory has its own separate (or empty) progress file.

Impact

Users lose their progress tracking data when running the script from different directories. This is inconsistent with the behavior of other utilities in the project that were already fixed.

Suggested Fix

Change line 11 from:

DATA_FILE = "completed_projects.json"

To:

DATA_FILE = os.path.join(os.path.dirname(os.path.abspath(__file__)), "completed_projects.json")

Candidate Validation

GSSoC 2026

This is a valid bug fix suitable for GSSoC 2026 contributors. The fix pattern is well-established in the codebase from previous fixes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions