Work Planner
A web application to plan workload: a queue of tasks is poured, day by day, into the available capacity. Every change is first a proposal whose impact you can see, and the plan changes only after approval.
Why I built it
When a new request arrives, the real question is: what happens to the plan if I accept it? A task manager or time tracker does not answer, because it does not say what the capacity is allocated to. I wanted to give a manager credible delivery dates, with the numbers in front of me.
It is not a task manager and does not measure actual time: the timeline is the planned, agreed allocation. I designed it for personal use, with a single user.

How it works
The ordered queue is the priority: there are no scores deciding in my place. Each task's work is poured into the days, splitting where needed. If I reorder the queue, record leave or add a request, the program shows the plan before and after; I apply or cancel.
Some choices are not obvious and I wrote them in the specification: a task ready early does not free capacity, recovered capacity does not compact the plan, a fixed date does not reorder the queue but raises a conflict.
Technical choices
- The scheduler is made of pure functions, with no database, framework or clock: it is the one place where a bug goes unnoticed and costs a lot, so I test it more than anything else (199 backend tests, including tests on invariants: no minute lost or invented, no day over capacity).
- The calendar is read and published only as iCalendar, including for Outlook and Google.
- An API lets Claude act on the app with the same logic as the interface; the repository contains a skill for Claude Code. I wrote the program together with Claude Code.
- A manager report exportable as PNG or PDF, and a history with undo.
Limits and status
It is a young project: the git history covers three days of September 2026, 34 commits and about 9,500 lines. It works for me, in production for personal use, but it is not meant for several users and I do not consider it mature. The screens above use sample data.
Stack: Python, FastAPI, SQLAlchemy, Alembic, PostgreSQL, Vue 3, Pinia, TypeScript, Vite, Docker Compose.

