A daily quest log that helps you build routines. Complete your chores, unlock your day — and optionally block games until you’re done.
Get My Life In Order is a daily chore tracker that works like a quest log:
- You see a list of tasks for the day (wake up, make bed, breakfast, exercise, etc.).
- You check them off as you go. Some tasks can be verified with a photo (e.g. “make bed”, “clean desk”) using AI.
- When all tasks are done, the day is unlocked.
- An optional PC monitor app can run in your system tray and block chosen apps (e.g. game launchers) until the quest is unlocked.
So: finish your list → unlock the day → then game (or do whatever) with a clear conscience.
| Part | What it does |
|---|---|
| Web app | Shows today’s quest list. You tap to check off tasks. Some tasks require a photo; the app uses Google Gemini to verify (e.g. “is the bed made?”). Progress is saved so it survives server restarts. |
| Quest day | A “day” resets at 5:00 AM (configurable). So late-night work still counts as the same day until 5 AM. |
| Weekend extras | Saturday gets extra tasks (e.g. vacuum, change sheets). Sunday gets others (e.g. laundry, plan week). |
| PC monitor (optional) | A small tray app that polls the web app. Red icon = chores not done → it can close selected processes (e.g. Steam, game launchers). Blue icon = all done → it stops checking and leaves you alone. |
High-level flow:
┌─────────────────────────────────────────────────────────────────┐
│ YOU │
│ Open the web app → Check off chores (tap or send photo) │
└────────────────────────────┬────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ WEB APP (Flask on Render) │
│ Stores progress in a JSON file. When all tasks done → "unlocked" │
└────────────────────────────┬────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ PC MONITOR (optional, runs on your Windows PC) │
│ Asks: "Is today unlocked?" → No: red icon, kill game processes │
│ Yes: blue icon, do nothing │
└─────────────────────────────────────────────────────────────────┘
-
Open the app
Visit the deployed URL (e.g.https://getmylifeinorder.onrender.com) or your local URL if you run it yourself. -
See today’s quest
You’ll see the date and a list of tasks. Weekdays have the base list; Saturday and Sunday add extra tasks. -
Check off tasks
- Simple tasks: Tap the task → it toggles done/not done.
- Photo tasks (e.g. Make Bed, Clean Desk, Breakfast, Read 1 Chapter): Tap “Send photo”, take or pick an image. The app uses AI to verify; if it agrees, the task is marked done.
-
Unlock the day
When every task for the day is done, the status shows UNLOCKED. That’s it. -
Optional: PC monitor
If you use the Windows tray app, keep it running. Red = still locked (it may close blocked apps). Blue = unlocked. Right‑click the tray icon → Exit to quit.
# Clone the repo, create and activate a virtual environment (e.g. gmlio)
cd GetMyLifeInOrder
python -m venv gmlio
gmlio\Scripts\activate # Windows
# Install dependencies
pip install -r requirements.txt
# Set your Gemini API key (for photo verification)
# Create a .env file with: GEMINI_API_KEY=your_key_here
# Run the app
python app.pyThen open http://127.0.0.1:5000.
- Connect the repo to Render, create a Web Service.
- Build:
pip install -r requirements.txt(or your preferred build command). - Start:
gunicorn app:app(or use the includedProcfile). - In Render Environment, add
GEMINI_API_KEYso photo verification works. - Optional: Use an uptime checker (e.g. UptimeRobot) to hit your app every ~10–15 minutes so the free tier doesn’t spin down.
- Install dependencies (same venv as above):
pip install -r requirements.txt. - Edit
pc_monitor.py: setAPP_URLto your web app URL and adjustBLOCKED_PROCESSES(e.g. game .exe names). - Run once:
python pc_monitor.py(or usepythonw pc_monitor.pyfor no console window). - To run at startup with no window: use Task Scheduler or a Startup shortcut pointing at
run_pc_monitor.vbs(see repo). That script runsgmlio\Scripts\pythonw.exewithpc_monitor.pyso it starts silently in the tray.
| File / folder | Purpose |
|---|---|
app.py |
Flask app: routes, chore lists, persistence, debug “fill all / empty all”. |
utils.py |
Gemini client and photo-verification logic for tasks (make bed, clean desk, breakfast, read book). |
templates/index.html |
Single-page UI: quest list, photo upload, status banner, debug buttons. |
pc_monitor.py |
Windows tray app: polls app, red/blue icon, kills blocked processes when locked. |
run_pc_monitor.vbs |
Launcher so the monitor runs at startup with no console (uses gmlio’s pythonw.exe). |
data/quest_state.json |
Persisted state (created at runtime; in .gitignore). |
.env |
Local API key (in .gitignore). Not used in production; set env vars on Render. |
Procfile |
Tells Render to run gunicorn app:app. |
- Web app
- Local: Put
GEMINI_API_KEY=...in.envin the project root. - Render: Add
GEMINI_API_KEYin the service’s Environment. - Codespaces: Use Codespaces secrets for
GEMINI_API_KEY.
- Local: Put
- PC monitor
EditAPP_URLandBLOCKED_PROCESSESinpc_monitor.pyto match your app URL and the processes you want blocked when the day is locked.
-
Debug buttons
At the bottom of the web UI: Fill all / Empty all set all of today’s tasks to done or not done. Handy for testing or quickly resetting. -
Keep the app awake on Render
Free tier spins down after inactivity. Point an uptime monitor (e.g. UptimeRobot) at your app URL every 10–15 minutes so it stays (or wakes) up. -
Adding or changing tasks
Edit theCHORES,SATURDAY_CHORES, andSUNDAY_CHORESlists inapp.py. New tasks are picked up automatically; state is merged so existing progress is kept.
Use and modify as you like. No warranty.