{"id":50493707,"url":"https://github.com/nimbold/lifexp","last_synced_at":"2026-06-02T05:03:05.758Z","repository":{"id":358965750,"uuid":"1243737404","full_name":"nimbold/LifeXP","owner":"nimbold","description":"A Python Tkinter RPG task tracker where quests become XP, attribute levels, trophies, and activity chronicles.","archived":false,"fork":false,"pushed_at":"2026-05-27T01:14:37.000Z","size":2040,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-27T02:13:57.884Z","etag":null,"topics":["ai-coding","python","rpg","task-management","task-manager","trophy","xp"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nimbold.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-19T16:04:53.000Z","updated_at":"2026-05-27T01:14:41.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/nimbold/LifeXP","commit_stats":null,"previous_names":["nimbold/lifexp"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nimbold/LifeXP","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nimbold%2FLifeXP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nimbold%2FLifeXP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nimbold%2FLifeXP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nimbold%2FLifeXP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nimbold","download_url":"https://codeload.github.com/nimbold/LifeXP/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nimbold%2FLifeXP/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33806989,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-02T02:00:07.132Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-coding","python","rpg","task-management","task-manager","trophy","xp"],"created_at":"2026-06-02T05:03:02.899Z","updated_at":"2026-06-02T05:03:05.750Z","avatar_url":"https://github.com/nimbold.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LifeXP\n\n[![Python Version](https://img.shields.io/badge/python-3.8%2B-blue?logo=python\u0026logoColor=white)](https://python.org)\n[![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)\n[![Platform](https://img.shields.io/badge/platform-macOS%20%7C%20Windows%20%7C%20Linux-lightgrey)](https://github.com)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/nimbold/LifeXP/pulls)\n\nLifeXP 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.\n\n---\n\n## 🖼️ Screens\n\n| Quest Log | Character Info | Chronicles | Settings |\n|:---:|:---:|:---:|:---:|\n| \u003cimg src=\"screenshots/quest-log.png\" alt=\"Quest Log\" width=\"180\"\u003e | \u003cimg src=\"screenshots/character-info.png\" alt=\"Character Info\" width=\"180\"\u003e | \u003cimg src=\"screenshots/chronicles.png\" alt=\"Chronicles\" width=\"180\"\u003e | \u003cimg src=\"screenshots/settings.png\" alt=\"Settings\" width=\"180\"\u003e |\n\n---\n\n## ✨ Key Features\n\n- **Progression System**: Link quests to 5 core attributes: *Strength*, *Agility*, *Intelligence*, *Charisma*, and *Vitality*.\n- **Quest Log**: Batch add, edit, complete, or abandon active tasks.\n- **Trophies**: Unlock milestone badges at levels 5, 10, 25, 50, and 100.\n- **Chronicles**: Review productivity reports across daily, weekly, or monthly charts.\n- **Customizable**: Choose UI themes (like *Tokyo Night*), toggle font sizes, and adjust canvas animations.\n- **Local Storage**: Automatically manages secure state saving in a local `lifexp_data.json` file.\n\n---\n\n## 🚀 Quick Start\n\n### Run the App\nMake sure **Python 3** is installed. LifeXP uses `Tkinter` (built into Python):\n\n```bash\n# Clone and run\ngit clone https://github.com/nimbold/LifeXP.git\ncd LifeXP\npython3 main.py\n```\n\n### Syntax \u0026 Compile Check\nTo check the integrity of the codebase without launching the window:\n```bash\npython3 -m py_compile main.py lifexp/*.py\n```\n\n---\n\n## 🛠️ Architecture Overview\n\nThe codebase is designed as a modular, package-based project utilizing a **multiple-inheritance Mixin pattern**:\n\n- **`main.py`**: The application entry point and class initializer.\n- **`lifexp/` package**:\n  - `ui_mixin.py` – Layout structures, styling loops, and Tkinter UI widgets.\n  - `data_mixin.py` – JSON persistent state reading, writing, and backup handling.\n  - `engine_mixin.py` – Leveling curves, XP calculations, and growth reports.\n  - `animation_mixin.py` – Canvas transitions, visual popups, and active particle effects.\n  - `constants.py` \u0026 `runtime.py` – Shared configurations, scaling models, and paths.\n\nDetailed code explanations and system diagrams are located in [BEGINNER_GUIDE.md](BEGINNER_GUIDE.md).\n\n---\n\n## 📦 Packaging \u0026 CI/CD\n\nAn 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`).\n\n---\n\n## ❓ Frequently Asked Questions\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e🔒 Unsigned App Warning: \"macOS cannot verify the developer\"\u003c/b\u003e\u003c/summary\u003e\n\u003cp\u003e\nBecause the automated build artifact is unsigned, macOS may alert you. To bypass this:\n\u003col\u003e\n  \u003cli\u003eGo to \u003cb\u003eSystem Settings\u003c/b\u003e \u003e \u003cb\u003ePrivacy \u0026 Security\u003c/b\u003e.\u003c/li\u003e\n  \u003cli\u003eScroll to the \u003cb\u003eSecurity\u003c/b\u003e section.\u003c/li\u003e\n  \u003cli\u003eClick \u003cb\u003eOpen Anyway\u003c/b\u003e next to the LifeXP notice.\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/p\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e💾 Where is my progress saved?\u003c/b\u003e\u003c/summary\u003e\n\u003cp\u003e\nProgress is saved automatically in JSON format:\n\u003cul\u003e\n  \u003cli\u003e\u003cb\u003eStandard Run:\u003c/b\u003e Saved directly in \u003ccode\u003elifexp_data.json\u003c/code\u003e in the workspace folder.\u003c/li\u003e\n  \u003cli\u003e\u003cb\u003ePackaged App:\u003c/b\u003e Saved in \u003ccode\u003e~/Library/Application Support/LifeXP/lifexp_data.json\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/p\u003e\n\u003c/details\u003e\n\n---\n\n## 📄 License \u0026 Metadata\n\n- **License**: MIT License. See [LICENSE](LICENSE) for details.\n- **Version**: `1.0.4`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnimbold%2Flifexp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnimbold%2Flifexp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnimbold%2Flifexp/lists"}