Skip to content

teoderizzoai/GetMyLifeInOrder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Get My Life In Order

A daily quest log that helps you build routines. Complete your chores, unlock your day — and optionally block games until you’re done.


What is it?

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.


What does it do?

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       │
└─────────────────────────────────────────────────────────────────┘

How do I use it?

As a user (daily use)

  1. Open the app
    Visit the deployed URL (e.g. https://getmylifeinorder.onrender.com) or your local URL if you run it yourself.

  2. 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.

  3. 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.
  4. Unlock the day
    When every task for the day is done, the status shows UNLOCKED. That’s it.

  5. 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.


Running it yourself

Web app (local)

# 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.py

Then open http://127.0.0.1:5000.

Web app (deploy to Render)

  • 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 included Procfile).
  • In Render Environment, add GEMINI_API_KEY so 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.

PC monitor (Windows, optional)

  • Install dependencies (same venv as above): pip install -r requirements.txt.
  • Edit pc_monitor.py: set APP_URL to your web app URL and adjust BLOCKED_PROCESSES (e.g. game .exe names).
  • Run once: python pc_monitor.py (or use pythonw pc_monitor.py for 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 runs gmlio\Scripts\pythonw.exe with pc_monitor.py so it starts silently in the tray.

Project layout

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.

Configuration and secrets

  • Web app
    • Local: Put GEMINI_API_KEY=... in .env in the project root.
    • Render: Add GEMINI_API_KEY in the service’s Environment.
    • Codespaces: Use Codespaces secrets for GEMINI_API_KEY.
  • PC monitor
    Edit APP_URL and BLOCKED_PROCESSES in pc_monitor.py to match your app URL and the processes you want blocked when the day is locked.

Extra details

  • 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 the CHORES, SATURDAY_CHORES, and SUNDAY_CHORES lists in app.py. New tasks are picked up automatically; state is merged so existing progress is kept.


License

Use and modify as you like. No warranty.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors