Timesheet — MVP Wireframes

Low-fidelity, structural only. For screen flow & layout validation — not visual design. Bekind Labs · D&F.

Navigation flow
Login → Role-routed home → Consultant · Weekly Timesheet / Manager · Approvals / Lead · Project Dashboard / Ops · Setup + Reports
Role (consultant / manager / lead / ops) determines the landing screen. A person may hold more than one role (e.g. Carlos logs his own hours AND approves) — shown via a top-nav role switch.
1 · Loginauth (27)
Email
you@bekindlabs.com
Password
••••••••
Sign in
Supabase Auth. Redirect to role-routed home.
2 · Consultant — Weekly TimesheetMaya · features 1–5, 7, 8
◀ Week of Jul 13–17 Prefill from last week Fill remaining with assigned project Autosaved · draft Submit for approval
ProjectTypeMonTueWedThuFriTotal
Acme CorpBillable8788839×
Internal — MeetingsNon-billable—1———1×
Time off (PTO)Non-billable—————0×
Week total40
+ Add billable row + Add non-billable row Status: Waiting on approval — billable → Lead, non-billable → Manager
"Fill remaining" (2) tops up the assigned project so the week hits 40 after exceptions. Per-day hours in one row (3). Time-off/non-billable rows auto-adjust billable total (4). Multi-project = add rows (8).
3 · Manager — Approvals (non-billable)Carlos · features 10–13
◀ Week of Jul 13–17 4 of 6 submitted Select all normal Bulk approve
ConsultantSubmittedMeetingsTime offTrainingPersonal devFlag
☑Maya R.✓ Fri 10:121———Approve Reject…
☑Dev P.✓ Fri 09:402———Approve Reject…
☐Sam K.✓ Fri 11:552—4—⚠ training highApprove Reject…
—Lee W.— not submitted————
Roster + per-person status, broken down by non-billable category — meetings / time off / training / personal dev (10). Weekly total isn't the point here; the breakdown is what lets Carlos spot the unusual entry. Bulk approve, or person-by-person (11). Who-hasn't-submitted is visible (12). Reject opens an optional-note field (13). Talking to the person off-system is a valid alternative to rejecting — not enforced by the tool.
4 · Project Lead — Project Dashboard (billable)Andrew · features 14, 16, 18
18 / 20
Submitted
15 / 20
Approved
—
100% signal (locked until all approved)
◀ Week of Jul 13–17 Select all submitted Bulk approve billable
ConsultantSubmittedProject hoursStatus
☑Maya R.✓39WaitingApprove Reject…
☑Jordan T.✓40WaitingApprove Reject…
—Priya S.— not submitted——
—Omar D.— not submitted——
Roster status across 20 consultants (14). Bulk billable approve (16). "100% submitted & approved" signal for Ops unlocks only when the whole project is in (18). Burn-vs-SOW (17) is a Later feature — not shown.
5 · Ops — Org SetupNadia · features 19, 20
PeopleProjects + Add person
NameRoleManagerProjectLeadEffective
Maya R.ConsultantCarlos M.Project XAndrew L.Jan 1 – Jan 31Edit…
Maya R.ConsultantCarlos M.Project YBeth S.Feb 1 – presentEdit…
Andrew L.LeadDana F.Project X—ongoingEdit…
One place to manage people, managers, leads, projects (19). Assignments are date-ranged, not just "current" — e.g. Maya is on Project X in Jan, Project Y in Feb, and the week being approved resolves to whichever assignment was effective that week (20). This backbone feeds role routing (24/25) and every roster/visibility view.
6 · Ops — Company ViewsNadia · features 21, 22
Everyone at 40hPer-project billable (invoicing) ◀ Week of Jul 13–17
ConsultantBillableNon-billTotalAt 40h?
Maya R.39140✓
Dev P.36238⚠ short 2h
Sam K.34640✓
Company-wide everyone-at-40h view, billable + non-billable per person (21). Second tab: per-project approved totals for monthly invoicing (22). Fixed layout for now — richer breakdowns (by project / manager / category) are a nice-to-have to add later. Utilisation report (23) is Later.