← homeroom

Homeroom — iOS MVP

Status: scope document for v1. The landing page + browser demo exist today (see site/); everything below is planned, not built.

1. Audience & job to be done

Primary user: a parent — often a mom or a solo parent — of K–5 children who acts as the family's "default logistics person." They already cope; the job is to stop the coping from depending on memory and a fridge door.

Job: when a school notice arrives (email, flyer, app post, paper), convert it into a small set of discrete, dated, priced, approved actions — and make sure whoever is doing pickup that day can see them.

Explicitly out of scope for v1: reading the whole inbox automatically, replacing school comms apps, messaging/chat inside Homeroom, payments processing, and school- or district-facing tooling. We are a parent-side tool.

2. The golden path (first-run experience)

  1. First launch → add children (name, grade, school — all optional except a display name).
  2. User taps "Add a notice" → share sheet from Mail/Photos, or in-app: forward-address card, paste text, or photograph a flyer.
  3. Extraction runs → review screen shows proposed action cards (BRING / PAY / SIGN / ATTEND), each with its source sentence highlighted.
  4. Ambiguous items are rendered as questions ("How much for the eWallet — the notice says $10–15?"), never silently resolved.
  5. User taps Approve per item (or Approve all).
  6. Approved items land on the This week list, grouped by child and date; optional reminders + calendar entries.
  7. One tap generates the caregiver brief — plain text, shareable via the system share sheet to SMS/WhatsApp/etc. Recipients need no app.

Success looks like: a user forwards one Monday-morning school email and finishes the week with everything handled, including the parts Grandpa did.

3. Screens (v1 = 6 screens + sheet flows)

Screen Purpose
This week (home) Approved actions grouped by day, filter chips per child; completion states (done/paid/signed)
Add notice Paste text, pick photo/screenshot (Vision OCR), copy the personal @in.homeroom forward address
Review Proposed cards w/ inline source preview, approve/edit/delete, ambiguity questions
Item detail Full source text, extracted fields, edit date/amount/child, reminder + calendar toggles
Caregiver brief Preview of the generated brief per caregiver; share via system sheet
Settings / family Children, caregivers & their permission scopes, notification prefs, data export/delete

No feed, no inbox, no social features. The app is a queue, not a destination.

4. Feature acceptance criteria (MVP cut)

Ingest

Extraction

Approve & act

Caregiver handoff

Multi-child & households

5. Architecture & Apple frameworks

6. Permission UX

Ask late, ask in context, degrade gracefully:

7. Data & API dependencies

Dependency v1 plan Fallback
Extraction model Hosted LLM endpoint, JSON-schema output with required source_span per item Ship- blocking; without it the app is a manual list (do not fake it)
Forward address Single inbound-mail service (e.g. SES/Postmark) → extraction queue v1 can ship paste/photo only; forwarding is additive
OCR Vision on-device n/a
Auth Device token only in v1 —
Payments None — Homeroom tracks "you owe $12", it never moves money —

Privacy posture for v1: notices are processed and stored server-side only when the user forwards/pastes them; photos are OCR'd on-device (pixels stay local), and only the user-confirmed recognized text is sent for extraction; sample/demo data is never a real family's data.

8. Build sequence

  1. Sprint 0 — skeleton: SwiftUI shell, SwiftData models (Child, Notice, ActionItem, Caregiver), This-week list with manual entry. Goal: the list is useful even before extraction.
  2. Extraction spike: hosted endpoint, prompt+schema with source citations; paste-import → review screen end-to-end on device.
  3. Ambiguity UX: question cards, edit flows, approve semantics.
  4. Reminders + calendar: EventKit/UserNotifications.
  5. Photo import: Vision OCR → same review screen.
  6. Forward address + caregiver brief: inbound mail webhook, brief composer, share sheet. Ship pilot.
  7. Post-pilot: family accounts, two-household sharing, school-portal/Gmail opt-in integrations, localization.

9. Key unresolved decisions

10. What already exists vs. planned