An open API service indexing awesome lists of open source software.

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.

Awesome Lists containing this project

README

          

# LifeXP

[![Python Version](https://img.shields.io/badge/python-3.8%2B-blue?logo=python&logoColor=white)](https://python.org)
[![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
[![Platform](https://img.shields.io/badge/platform-macOS%20%7C%20Windows%20%7C%20Linux-lightgrey)](https://github.com)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](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 |
|:---:|:---:|:---:|:---:|
| 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:


  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](LICENSE) for details.
- **Version**: `1.0.4`