https://github.com/nimbold/lifexp
A Python Tkinter RPG task tracker where quests become XP, attribute levels, trophies, and activity chronicles.
https://github.com/nimbold/lifexp
ai-coding python rpg task-management task-manager trophy xp
Last synced: 26 days ago
JSON representation
A Python Tkinter RPG task tracker where quests become XP, attribute levels, trophies, and activity chronicles.
- Host: GitHub
- URL: https://github.com/nimbold/lifexp
- Owner: nimbold
- License: mit
- Created: 2026-05-19T16:04:53.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-05-27T01:14:37.000Z (about 1 month ago)
- Last Synced: 2026-05-27T02:13:57.884Z (about 1 month ago)
- Topics: ai-coding, python, rpg, task-management, task-manager, trophy, xp
- Language: Python
- Homepage:
- Size: 1.95 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# LifeXP
[](https://python.org)
[](LICENSE)
[](https://github.com)
[](https://github.com/nimbold/LifeXP/pulls)
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 |
|:---:|:---:|:---:|:---:|
|
|
|
|
|
---
## ✨ 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):
```bash
# 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:
```bash
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](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:
- Go to System Settings > Privacy & Security.
- Scroll to the Security section.
- Click Open Anyway next to the LifeXP notice.
💾 Where is my progress saved?
Progress is saved automatically in JSON format:
-
Standard Run: Saved directly inlifexp_data.jsonin the workspace folder. -
Packaged App: Saved in~/Library/Application Support/LifeXP/lifexp_data.json.
---
## 📄 License & Metadata
- **License**: MIT License. See [LICENSE](LICENSE) for details.
- **Version**: `1.0.4`