Skip to main content

📈 Learning Progress Tracker

PyPI version License: MIT Python Version

A premium, interactive desktop GUI application built in Python (using standard Tkinter) to map, visualize, track, and analyze your learning progress.

Create custom question-concept networks, track when you master items, see incremental snapshots of your growth, and automatically export gorgeous, interactive analytics dashboards.


✨ Key Features

  • 🧠 Interactive Mind Mapping: Drag and drop nodes, double-click to view details, and draw directed learning dependencies dynamically.
  • 🎨 State-of-the-Art Visuals:
    • Difficulty-based node shapes (Circular for Easy, Rectangular for Medium, Triangular for Hard, Diamond for Challenging, and Star-shaped for Extreme).
    • Snapshot-based heatmaps (automatically ranges node colors from light red to light blue depending on when you created them relative to your learning journey).
    • Visual cues like bold checkmark badges on mastered nodes.
  • ⏱️ Professional History Engine: Full multi-level Undo (Ctrl+Z) and Redo (Ctrl+Y) operations for all layout, connection, and data updates.
  • 📊 Premium Interactive Dashboard: Generates Plotly-powered charts:
    • Pie chart of answered vs unanswered questions (overall and snapshot-specific).
    • Bar chart timeline of concept creation trends.
    • Scatter-line chart mapping node connectivity (in-degree and out-degree analysis).
    • Fully responsive HTML sidebar-driven multi-dashboard uniting all analytics.
  • 📂 Clean File Persistence: Custom JSON save/load system allowing multiple distinct learning graphs.

📂 Project Directory Structure

The application has been restructured using the modern Python src/ layout recommended for robust, conflict-free packaging and publishing:

LearningTrackerApp/
├── src/
│   └── learning_tracker/
│       ├── __init__.py           # Package exports & metadata
│       ├── main.py               # Application launcher and logger init
│       ├── models.py             # Dataclasses (QuestionNode, LearningGraph)
│       ├── storage.py            # JSON I/O and export directories
│       ├── utils.py              # Subgraph traversals & timestamp binning
│       ├── statistics_engine.py  # Plotly dashboards HTML generator
│       ├── gui_main.py           # Main window & toolbars orchestration
│       ├── gui_canvas.py         # Custom canvas with drag, shift-drag cues
│       └── gui_popups.py         # Popups for node details creation/edits
├── pyproject.toml                # Modern PEP 621 packaging metadata
├── LICENSE                       # MIT License
└── README.md                     # Comprehensive product guide

🚀 Installation

You can install the package directly using standard pip tools once published.

Core GUI Only

To keep dependencies extremely light (GUI runs entirely on built-in standard library tools), run:

pip install learning-tracker-app

Full Analytical Dashboard Support (Recommended)

To enable generating interactive Plotly dashboards and data reports, install with the stats extras:

pip install learning-tracker-app[stats]

🎮 Running the Application

After installing, run the app directly from your terminal using the custom CLI entry point:

learning-tracker

Alternatively, you can run the package module:

python -m learning_tracker

🖱️ Quick Controls Cheat Sheet

Interaction Action
Right-Click on empty canvas Create a new standalone node
Shift + Left-Click + Drag from a node to empty canvas Create a new node and draw a connection to it instantly
Shift + Left-Click + Drag from a node to another node Draw a directed edge (learning dependency)
Left-Click on a node Open detail editor (view dates, edit question/answers, set difficulty, mark completed)
Left-Click + Drag on a node Reposition node on the canvas smoothly
Ctrl + Z / Ctrl + Y Undo / Redo any action

📦 Publishing to PyPI

Here is the quick guide to build and upload your package. Make sure you have build and twine installed:

pip install --upgrade build twine

1. Build the Distribution

Run the build script from the project root folder (where pyproject.toml resides):

python -m build

This generates .tar.gz (source distribution) and .whl (built distribution) packages in the dist/ directory.

2. Verify Your Build

Ensure package descriptions are formatted correctly and metadata matches PyPI rules:

twine check dist/*

3. Upload to TestPyPI (Recommended first step)

Verify everything looks correct on the test repository:

twine upload --repository testpypi dist/*

4. Upload to Production PyPI

Publish your app to the world!

twine upload dist/*

📄 License

Distributed under the MIT License. See LICENSE for more details.

Release files for learning-tracker-app 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for learning-tracker-app 1.0.0
File Size Uploaded
learning_tracker_app-1.0.0.tar.gz 24.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for learning-tracker-app 1.0.0
File Interpreter ABI Platform
learning_tracker_app-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 50.4 kB

Release files / learning_tracker_app-1.0.0.tar.gz

Download URL learning_tracker_app-1.0.0.tar.gz
Size 24.7 kB
Tags Source
SHA-256 checksum
How to use checksums
e19fcb885bac4c66500fe115259faad2e207d05a4fbb37a1f9ee1c432be0fe0d
BLAKE2b-256 checksum
How to use checksums
2709cc48d769de11a6b1030c79b62c6ded3641f8bc049df66ed54babceb98b79
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / learning_tracker_app-1.0.0-py3-none-any.whl

Download URL learning_tracker_app-1.0.0-py3-none-any.whl
Size 25.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
acd51c72d0df8ff46212f20b63bf812fe4291470983bb09ec58cfd8e46c2f5f4
BLAKE2b-256 checksum
How to use checksums
041824637e13b3ea6f93aa5abc2cefc1f512b62ed2f06acb9b36393e30e1f210
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page