Skip to content

nimbold/LifeXP

Repository files navigation

LifeXP

Python Version License Platform PRs Welcome

LifeXP is a lightweight desktop productivity application that adds RPG-style character progression to your everyday tasks. Complete custom quests, earn experience points (XP) to level up core attributes, unlock trophy milestones, and track your long-term consistency through structured chronicles.


🖼️ Screens

Quest Log Character Info Chronicles Settings
Quest Log Character Info Chronicles Settings

✨ Key Features

  • Progression System: Link quests to 5 core attributes: Strength, Agility, Intelligence, Charisma, and Vitality.
  • Quest Log: Batch add, edit, complete, or abandon active tasks.
  • Trophies: Unlock milestone badges at levels 5, 10, 25, 50, and 100.
  • Chronicles: Review productivity reports across daily, weekly, or monthly charts.
  • Customizable: Choose UI themes (like Tokyo Night), toggle font sizes, and adjust canvas animations.
  • Local Storage: Automatically manages secure state saving in a local lifexp_data.json file.

🚀 Quick Start

Run the App

Make sure Python 3 is installed. LifeXP uses Tkinter (built into Python):

# Clone and run
git clone https://github.com/nimbold/LifeXP.git
cd LifeXP
python3 main.py

Syntax & Compile Check

To check the integrity of the codebase without launching the window:

python3 -m py_compile main.py lifexp/*.py

🛠️ Architecture Overview

The codebase is designed as a modular, package-based project utilizing a multiple-inheritance Mixin pattern:

  • main.py: The application entry point and class initializer.
  • lifexp/ package:
    • ui_mixin.py – Layout structures, styling loops, and Tkinter UI widgets.
    • data_mixin.py – JSON persistent state reading, writing, and backup handling.
    • engine_mixin.py – Leveling curves, XP calculations, and growth reports.
    • animation_mixin.py – Canvas transitions, visual popups, and active particle effects.
    • constants.py & runtime.py – Shared configurations, scaling models, and paths.

Detailed code explanations and system diagrams are located in BEGINNER_GUIDE.md.


📦 Packaging & CI/CD

An automated GitHub Actions workflow (.github/workflows/build-macos.yml) builds standalone, unsigned macOS ARM64 binaries (LifeXP-macos-arm64-unsigned.zip) using the PyInstaller configuration (LifeXP.spec).


❓ Frequently Asked Questions

🔒 Unsigned App Warning: "macOS cannot verify the developer"

Because the automated build artifact is unsigned, macOS may alert you. To bypass this:

  1. Go to System Settings > Privacy & Security.
  2. Scroll to the Security section.
  3. Click Open Anyway next to the LifeXP notice.

💾 Where is my progress saved?

Progress is saved automatically in JSON format:

  • Standard Run: Saved directly in lifexp_data.json in the workspace folder.
  • Packaged App: Saved in ~/Library/Application Support/LifeXP/lifexp_data.json.


📄 License & Metadata

  • License: MIT License. See LICENSE for details.
  • Version: 1.0.4

About

A Python Tkinter RPG task tracker where quests become XP, attribute levels, trophies, and activity chronicles.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages