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.