Skip to content

docs: design & test document, user manual, and presentation (Phase 7, Vertical C) - #32

Merged
M1RK02 merged 18 commits into
developfrom
feature/C-design-document
Jul 11, 2026
Merged

docs: design & test document, user manual, and presentation (Phase 7, Vertical C)#32
M1RK02 merged 18 commits into
developfrom
feature/C-design-document

Conversation

@M1RK02

@M1RK02 M1RK02 commented Jul 11, 2026

Copy link
Copy Markdown
Owner

Description

Phase 7 deliverable branch for Vertical C — the Design & Test Document, user manual, and presentation materials. This PR is the full branch, not just the final commit; it spans document scaffolding through final polish.

What the branch delivers:

  • Design & Test Document (LaTeX + compiled PDF). Built docs/design_document/main.tex from the PoliMi thesis template into a complete design document: introduction, requirements, architecture, implementation details, UI/UX screen catalog, testing campaign, and future work. Compiled output committed as docs/design_document.pdf.
  • Diagrams. Seven diagrams authored in draw.io and exported to PNG for the document: architecture (layered), ER/data model, use-case, match-state machine, queue sequence, confirm-transaction, and navigation.
  • Screen catalog. Full mockup set wired into the document across light/dark themes and English/Italian locales, plus component-sheet and tablet screenshots.
  • User manual. docs/user_manual.md — end-user guide covering every task in the app (onboarding, the four tabs, ranked match flow, queues, tournaments, friends, direct challenges, Arena Assistant, achievements, language/appearance).
  • Presentation outline. docs/presentation_outline.md — 14-slide deck outline with speaker notes, live-demo click path, and anticipated Q&A. (To be replaced by the exported presentation.pdf.)
  • README. /docs section now points at the final deliverables (design_document.pdf, presentation.pdf, user_manual.md, design system).
  • App icon (ce9553f).
  • task_board. Marked the Phase 7 Spine (design-doc / demo-script / README) items complete.

Content accuracy was reviewed chapter-by-chapter against the codebase and brain/ docs — corrected screen counts, test counts, facility inventory, BracketEngine naming, and the Basketball squad-size claim in Future Work.

Related Task

Shared Contracts

  • None
  • Match document shape
  • Facility status field (facilities/{id}.status / .currentMatchId)
  • Queue position write (facilities/{id}/queue/{uid}.position)

Shared Files

  • This PR does not touch them, OR it was opened the same day the changes were made and the other two devs were pinged.

app_router.dart, main.dart, and the ARB files are untouched. No Dart source changed. The app-icon commit (ce9553f) does touch the launcher-icon build config — pubspec.yaml, pubspec.lock, android/.../AndroidManifest.xml, and ios/.../project.pbxproj — alongside the icon assets; everything else is docs/, brain/task_board.md, and README.md.

Breaking Changes

  • No
  • Yes (describe what changed and who is affected below)

Checklist

  • Branched off develop and rebased on develop before opening this PR (no merge commits).
  • My code follows the Dart style guide (dart format applied). — N/A, no Dart changed.
  • I have not introduced any hardcoded user-facing strings (used ARB files if applicable). — N/A, no app strings.
  • CI pipeline is green (I have run flutter analyze and flutter test locally, OR the GitHub Actions check on this PR has passed). — No Dart source changed; the app-icon commit touches only launcher-icon build config (pubspec.*, AndroidManifest.xml, project.pbxproj). GitHub Actions Unit Tests & Coverage is green.
  • If this PR adds a new sport, the ScoringStrategy contract remains unmodified. — N/A.
  • If this PR introduces a new Cubit, it emits an initial state synchronously. — N/A.
  • Firestore writes affecting ELO or queue position use atomic transactions. — N/A.
  • If this PR shows facility availability ("free"/"empty") status, the disclaimer footer is present via the availabilityDisclaimerShort ARB key. — N/A (no UI); the document and user manual both restate the booking disclaimer where availability is discussed.

UI Changes (If applicable)

No implemented screens changed. The design document embeds the design-system mockups directly; nothing to diff against docs/design/screenshots/.

M1RK02 and others added 17 commits July 11, 2026 13:34
- Drop the course-rules bullets from the constraints section (no
  social network / not a business app), keeping only genuine technical
  constraints; rename the section to Constraints.
- Remove the Course Requirement Compliance table from Conclusions.
- Remove the Effort Spent section and table.
- Strip development-timeline and verification-run dates so the document
  no longer states the build window.
Drop exam/course-compliance framing in favor of plain product
rationale, trim the Core/Sport-Specific split down to one sentence
(detail already lives in Ch.3), cut the placeholder hero figure and
the Reference Documents section (duplicates Ch.8 References), and
reflow the Scope feature list out of a single run-on sentence.
Notification Dispatch previously claimed tournament bracket advancement
as a third client-local alert class; the app only fires an alert for
queue-front and Direct Challenge, bracket progress is passive live-listener
UI. Also dropped grader-facing phrasing from the Screen Inventory intro,
and swapped the use-case placeholder for the exported diagram.
Dropped grader-facing phrasing from the Trust Boundary section and an
unverifiable historical claim about queue ticket renumbering. Swapped
the architecture and ER placeholders for the exported diagrams.
BracketEngine was referenced as a class alongside real singleton classes
(EloCalculator, AchievementEvaluator), but bracket_engine.dart is a
top-level function/data-class module with no such class. Corrected the
two Ch.3 mentions and wired in the match-state-machine diagram, the
third figure in this chapter that was still a placeholder.
Same audit that flagged Ch.3's BracketEngine issue found it leaking into
Ch.2's traceability table, and found "Profile Setup" still counted in the
Screen Inventory — that screen was cut in Phase 2B (task_board.md) and
never existed as a route or file. Corrected the count to 29 and
renumbered the table.
…grams

Fixed a stale /onboarding/profile-setup route reference (now
/onboarding/tutorial), dropped two grader-facing tone violations, reworded
a TA-familiarity line and an overclaimed disclaimer-reuse sentence.
Authored confirm_txn and queue_sequence as hand-written .drawio sources
and wired both figures in.
… diagram

Fix standings/settings mockup mix-up in the screen catalog (standings_en_dark
is actually Tournament Detail, settings_en_dark is actually Settings), drop
the Profile setup mockup for a screen that no longer exists in the app, and
author the navigation map as a drawio diagram in place of the placeholder.
…, and README deliverables

- Finalize main.tex: page-breakable tech-stack and traceability tables
  (xltabular), wrap long snake_case identifiers, correct title/release
  date, wire diagram figure paths, foosball indoor/outdoor parity.
- Add compiled design_document.pdf and exported diagram PNGs
  (architecture, ER, use-case, match-state, queue-sequence, confirm-txn,
  navigation).
- Add user_manual.md and presentation_outline.md.
- README: point /docs at the final deliverables (design_document.pdf,
  presentation.pdf, user_manual.md, design system).
- task_board: mark Spine design-doc/demo/README items complete.
@github-actions

Copy link
Copy Markdown

LCOV of commit 8b9dd01 during Flutter CI #109

Summary coverage rate:
  lines......: 90.4% (9427 of 10432 lines)
  functions..: no data found
  branches...: no data found

Files changed coverage rate: n/a

@ChristianPrendin ChristianPrendin left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the two new commits (ce9553f app icon, 8b9dd01 finalize) plus the two wholly-new files (user_manual.md, presentation_outline.md) that weren't covered by the chapter-by-chapter main.tex audit earlier in this branch. main.tex itself checks out — cross-verified the 105-file/864-test-case claim against the actual suite (739 test/testWidgets + 125 blocTest<...>( = 864, matches exactly) and the 29-screen inventory. Three concrete accuracy bugs slipped into the new docs, same class of error this branch has been hunting all day:

  1. docs/user_manual.md §1.3 "Profile Setup" (lines 42–48) describes a dedicated post-registration screen with its own screenshot (profilesetup.png) for avatar selection and permissions. That screen doesn't exist — app_router.dart has exactly one onboarding route, /onboarding/tutorial (MiniTutorialScreen), and a router comment explicitly notes "the old avatar/permission scanner... screens are gone." This is the exact screen your own commit bee3457 already cut from the Chapter 2 screen inventory for being non-existent. Fold whatever's still true (avatar picker, permission prompts) into §1.4 (the tutorial), and drop §1.3 as a separate step.

  2. docs/presentation_outline.md Slide 11 (line 155): "Significant number of screens: 30" — main.tex's audited inventory says 29 (tab:screen_inventory caption, fixed in bee3457 for the same Profile Setup reason). Update to 29.

  3. docs/presentation_outline.md Slide 10 and Slide 11 (lines 142, 161): "105 test files, roughly 739 test-case declarations" — this is the pre-fix number fe0c6e9 already corrected in main.tex to 864. The presentation is quoting the stale figure. Update both mentions to 864.

Minor, non-blocking: the PR checklist says "Docs-only; no source touched" / CI "N/A," but ce9553f does touch pubspec.yaml, pubspec.lock, AndroidManifest.xml, and project.pbxproj for the launcher-icon integration. Not a problem — CI is actually green (Unit Tests & Coverage passed) — just tighten the checklist wording so it doesn't undersell what changed.

Everything else — diagrams, README pointer, task_board updates, ELO/tournament/dispute mechanics described in both new docs, achievement table — checks out against the code. Please fix the three numbered items above and I'll re-review.

…t/screen counts

Address Christian's PR #32 review:
- user_manual §1.3: drop the non-existent Profile Setup screen (no avatar
  picker exists; permissions are requested at point-of-use), fold the tutorial
  into a single onboarding step
- presentation_outline: correct test-case count 739 -> 864 (slides 10, 11)
  and screen count 30 -> 29 (slide 11) to match the audited main.tex figures
@github-actions

Copy link
Copy Markdown

LCOV of commit d437eb3 during Flutter CI #110

Summary coverage rate:
  lines......: 90.4% (9427 of 10432 lines)
  functions..: no data found
  branches...: no data found

Files changed coverage rate: n/a

@ChristianPrendin ChristianPrendin left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gud

@M1RK02
M1RK02 merged commit 9a2ce05 into develop Jul 11, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants