Skip to content

Sprint 2 workspace audit

14 September 2026. Based on source inspection across all three repositories, automated checks and read-only database inspection. Existing documentation assertions are not new evidence of live behavior.

Workspace inventory

Repository Existing implementation
Toodle React 19/Vite/Auth0/Axios/Tailwind; organiser allocation board with drag/drop and validation, courses/detail, tutor directory, role dashboards, profile/availability, timesheets, excusals, volunteers, swaps, reports, notification UI; Vitest/Testing Library tests; Vercel and CI configuration
toodle-api Express 5/Prisma 5/PostgreSQL/Auth0/Zod; routes/controllers/services for authentication/users/courses/tutors/allocations/sessions/timesheets/excusals/overflow/swaps; Brevo service; migrations/seed/schema and Vitest/Supertest tests; Render and CI configuration
toodle-docs MkDocs Material site; architecture, database, API, feature tiers, design PDFs, methodology, roadmap, stakeholder meeting evidence, testing plans and hosting configuration

Workspace root is not a Git repository. Frontend and backend contained pre-existing uncommitted changes; these were preserved and extended. PROJECT_CONTEXT.md is a durable handover but its earlier completion claims were not supported by the initial screens/docs. This audit supersedes those claims.

Product coverage and sprint priorities

Feature Source evidence / remaining work Priority
Course creation/removal/recruitment Creation existed; course-detail recruitment toggles and protected removal now connected P0
Regular tutor applications Unfinished backend existed; now connected to applicant and organiser views, motivation, mark submission/review, approval/rejection/withdrawal P0
Marks/availability/hours validation Existing shared validator and board; verified-mark check and override-reason requirement added; student availability enabled P0
Live connection Database reachable; corrected mismatched application column/enum mapping; migration recovered and schema diff empty; deployment and authenticated acceptance still pending P0
Allocation board accuracy Existing board counts pending/removed allocations in some capacity/staffing maps; status-aware board/report consistency needs work P0
Timesheets UI, workflow services and tests exist; verify logging, submission, approval/dispute and payroll output with real roles P0
Excusals/overflow UI/API and test coverage exist; run linked excusal→overflow→claim→review browser scenario P0
Roles/privacy Database-backed access and ownership guards exist; verify every role in browser and audit tutor-detail endpoint visibility P0
Ranking and bulk allocation No completed candidate ranking/whole-school allocator found in services; implement explainable suggestions after basic flows pass P1
Calendar/email Brevo service/code and documentation already exist; Google Calendar implementation not established by inspected routes; owned by teammate Teammate
Reports API-backed frontend totals/CSV exist; budget/spend correctness and large-data behavior need verification P1
Timetable import, recurring exceptions, onboarding/search Basic free-time entry exists; full intermediate workflows remain P1/P2
Advanced allocation/drafts/collaboration/history restore Some supporting database models exist; full features are not established. Session swap implementation exists but is not evidence that all advanced work is complete P2

Rubric mapping

Criterion Weight Evidence now / what to deliver
Core features 25% Connected code plus automated tests. Complete the role-based acceptance script and fix severe bugs before adding advanced scope.
Automated testing 10% Both UI and API suites exist, including workflow/ownership tests. Add real PostgreSQL application concurrency/rollback tests and browser E2E evidence.
Stakeholder reviews 10% A documented 13 August meeting with evidence exists. Obtain a Sprint 2 review; record feedback, evaluation, issue links and implemented changes.
External/documented API 15% Hand-written API and Markdown reference exist; deployment configuration is not proof of external availability. Demonstrate external authenticated consumption, publish up-to-date contract, and obtain teammate's integration evidence.
User feedback 10% Testing plans exist, but formal completed user-testing records were not found in inspected docs. Collect actual results and demonstrate resulting fixes.
Methodology 10% Methodology/meetings/roadmap exist; roadmap status is stale. Maintain real sprint backlog, owners, review and retrospective evidence.
Bug tracker 5% Docs identify Trello; its live history was not inspected. Continuously link reproduction, severity, owner, fix and retest evidence. A new local list alone is not continuous tracker usage.
Database docs 5% Schema/migrations/deployment docs exist. Update fields, relationships, enum states, migration history and reasons for choices; resolve application migration mismatch.
Third-party code docs 5% Tech stack rationale exists but is stale (backend uses Vitest, not Jest). Inventory actual dependencies/copied snippets, versions, licences, origins and motivations.
Testing docs 5% Plans and backend test docs exist. Publish reproducible commands, fixtures, scope, skip conditions, failure policy and completed user-feedback records.

These weights sum to 100%. A large feature list alone cannot demonstrate the 75% outside core features. No grade is predicted here.

Bugs/findings for the existing tracker

ID Finding State/evidence
S2-01 Course application API not connected to frontend Implemented locally; UI and route tests added
S2-02 Unverified marks accepted by eligibility calculation Fixed shared validator; pending/rejected-mark approval tests
S2-03 Student availability rejected by controller Fixed; own-availability controller test updated
S2-04 Failed eligibility/404 requests could look successful/empty Fixed board validation error and useApi error behavior; UI test
S2-05 Application Prisma fields differed from live table Mapping and required motivation aligned; read-only Prisma queries pass
S2-06 Missing applied migration and conflicting local migration RESOLVED locally: exact original checksum restored; migration status up to date and schema diff empty
S2-07 Board counts inactive/pending records as staffing or used hours OPEN; status-aware derived maps needed
S2-08 Allocation update can change status/hours without shared revalidation OPEN; inspect updateAllocation and lock endpoint contract before closing
S2-09 Rejected/withdrawn applicants cannot reapply Known limitation; stakeholder decision required

Evidence policy and feedback form

Record stakeholder name/role, date, scenario, consent to record, observed result, exact feedback, severity, team decision with reason, tracker issue, implementing commit and retest outcome. Avoid publishing student marks/emails/transcripts in screenshots; use test identities.

Suggested user tasks: organiser creates/recruits/approves; applicant submits mark/availability/applies; tutor submits timesheet/excusal; student volunteers. Collect task completion, time, assistance needed, confusion points and a 1–5 ease rating. Review findings, create issues, implement the highest-impact fixes and ask participants to retest. Blank templates are a collection process, not evidence that feedback happened.

Next information needed

Sprint 2 deadline is confirmed as 15 September. Deployment URLs verified; see connection recovery. Still needed: deployment repository/branch mapping, organiser/test-account provision, official mark verification source, override policy, team task owners, current tracker and available stakeholder/user feedback evidence. Google Calendar and email remain the teammate's responsibility; agree event payloads, triggers and failure behavior rather than duplicating integration work.