Nathan Zhou
← all projects

Time Manager

Photograph the homework list, get a plan for the week.

A web app that reads a photo of the class journal, lets you check what it read, and schedules the homework across the next six days. The plan is rebuilt whenever anything changes, and marking a sitting unfinished makes future estimates for that subject longer. The hosted edition here gives each invited person their own planner.

The Today panel with two sittings in clock order
Today: what to sit down and do, in clock order.
Homework read from a photo, with uncertain fields flagged
The review gate: what was read from the photo, flagged where unsure.
Study sittings spread across six days
The week: sittings spread before each due date, capped by the time you have.
Settings for daily time and sitting lengths, above the imported class chart
How much time each day has, and the imported class chart (blurred here).

How it works

  1. 01

    The scheduler is a pure, deterministic function: earliest deadline first, work spread evenly before each due date, and a daily limit you set. Work that does not fit is listed openly rather than squeezed in.

  2. 02

    Nothing is scheduled until you have reviewed it. Low-confidence fields, a missing or inferred subject, and signs of a misread column are flagged.

  3. 03

    The model's output is checked against a schema, and four kinds of failure — empty, unparsable, cut off, wrong shape — are told apart, each with its own retry.

  4. 04

    An imported class timetable turns “due next class” into a real date, and flags due dates on days the subject does not meet.

  5. 05

    The per-subject correction factor is always recomputed from the full history of unfinished sittings, so it can be rebuilt exactly.

Built with

  • Next.js 16
  • TypeScript
  • Tailwind CSS v4
  • Zod
  • DeepSeek vision
  • SQLite + Drizzle
  • Vitest

Status

Working. Private and invite-only; photo scanning is enabled per person.

Worth knowing