Files
unisono/specs/003-redesign-you-find/tasks.md

145 lines
8.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Tasks for Redesign - Unisono Application
**Feature Branch**: `003-redesign-you-find`
**Date**: суббота, 11 октября 2025 г.
**Spec**: spec.md
**Plan**: plan.md
## Phase 1: Setup Tasks
These tasks establish the foundational environment and global configurations for the UI redesign.
- **T001 [X]**: Initialize a new Material-UI / MUI project within the `frontend` directory, ensuring compatibility with React and TypeScript.
- *Rationale*: This is the foundational step for the UI redesign.
- *File*: `frontend/`
- **T002 [X]**: Configure the `frontend` project to use the existing primary button color.
- *Rationale*: FR-005. This is a global style setting.
- *File*: `frontend/src/theme.ts` (or similar styling file)
- **T003 [X]**: Integrate Material 3 standard components for displaying error, empty, and loading states.
- *Rationale*: FR-013. This is a cross-cutting concern.
- *File*: `frontend/src/components/` (or similar common components directory)
- **T004 [X]**: Implement basic accessibility best practices across the frontend application.
- *Rationale*: FR-014. This is a cross-cutting concern.
- *File*: `frontend/src/` (various files)
## Phase 2: Foundational Tasks
These tasks are prerequisites that must be completed before any user story implementation can begin.
- **T005 [X]**: Analyze existing `frontend` components and identify those requiring Material 3 migration.
- *Rationale*: To understand the scope of work for each user story.
- *File*: `frontend/src/components/`, `frontend/src/pages/`
## Phase 3: User Story 1 - Responsive and Consistent User Experience (P1)
*Goal*: Ensure the application UI adapts seamlessly across different devices and input methods.
*Independent Test*: A user can successfully complete a primary task (e.g., create a session, join a session) on a mobile device using touch input, and the UI adapts correctly to the screen size.
- **T006 [X] [US1]**: Write automated tests for responsive layout and touch functionality for `App.tsx`, `CreateSession.tsx`, `SessionPage.tsx`, `DesireForm.tsx`, and `ResultsDisplay.tsx`.
- *Rationale*: Ensure TDD compliance and verify responsive and touch behavior.
- *File*: `frontend/tests/` (various test files)
- **T007 [X] [US1]**: Refactor `frontend/src/App.tsx` to implement a responsive layout using Material 3 components. [P]
- **T008 [X] [US1]**: Update `frontend/src/pages/CreateSession.tsx` to be fully responsive and touch-friendly using Material 3 components. [P]
- **T009 [X] [US1]**: Update `frontend/src/pages/SessionPage.tsx` to be fully responsive and touch-friendly using Material 3 components. [P]
- **T010 [X] [US1]**: Update `frontend/src/components/DesireForm.tsx` to be fully responsive and touch-friendly using Material 3 components. [P]
- **T011 [X] [US1]**: Update `frontend/src/components/ResultsDisplay.tsx` to be fully responsive and touch-friendly using Material 3 components. [P]
- **T012 [X] [US1]**: Implement touch support for all interactive UI elements within the `frontend` application.
- *Rationale*: FR-002. This is a cross-cutting concern for US1.
- *File*: `frontend/src/` (various files)
--- Checkpoint: User Story 1 Complete ---
## Phase 4: User Story 2 - Clear Branding and Professional Appearance (P1)
*Goal*: Display consistent branding (app name, logo, favicon) throughout the application.
*Independent Test*: A new user can identify the application by its name and logo on any page, and the favicon is visible in the browser tab.
- **T013 [X] [US2]**: Write automated tests for consistent app name, logo, and favicon display.
- *Rationale*: Ensure TDD compliance and verify branding.
- *File*: `frontend/tests/` (various test files)
- **T014 [X] [US2]**: Implement "Unisono" app name display consistently in all session states and relevant UI headers.
- *Rationale*: FR-003.
- *File*: `frontend/src/App.tsx`, `frontend/src/components/` (header components)
- **T015 [X] [US2]**: Integrate the specified logo into the UI and configure it as the favicon.
- *Rationale*: FR-004.
- *File*: `frontend/public/index.html`, `frontend/src/App.tsx` (or header component)
--- Checkpoint: User Story 2 Complete ---
## Phase 5: User Story 3 - Improved Readability and User-Friendly Language (P2)
*Goal*: Present clear, concise, and non-technical language, and format session topics appropriately.
*Independent Test*: A user can read and understand the purpose of a session topic without encountering technical jargon or redundant prefixes.
- **T016 [X] [US3]**: Write automated tests for text formatting, placeholder removal, and validation rule display in input fields.
- *Rationale*: Ensure TDD compliance and verify readability and input field behavior.
- *File*: `frontend/tests/` (various test files)
- **T017 [X] [US3]**: Remove the prefix "Session: " from all displayed session topics.
- *Rationale*: FR-006.
- *File*: `frontend/src/components/ResultsDisplay.tsx`, `frontend/src/pages/SessionPage.tsx` (or wherever session topics are displayed)
- **T018 [X] [US3]**: Review and update all user-facing copywriting to avoid technical terms.
- *Rationale*: FR-007.
- *File*: `frontend/src/` (various UI text files)
- **T019 [X] [US3]**: Apply `ToTitleCase` formatting to appropriate text elements and avoid excessive capitalization.
- *Rationale*: FR-009.
- *File*: `frontend/src/` (various UI text files)
- **T020 [X] [US3]**: Ensure input fields do not use placeholders.
- *Rationale*: FR-011.
- *File*: `frontend/src/components/DesireForm.tsx`, `frontend/src/pages/CreateSession.tsx` (or any input fields)
- **T021 [X] [US3]**: For input fields with validation rules, display these rules as a field description directly under the field.
- *Rationale*: FR-012.
- *File*: `frontend/src/components/DesireForm.tsx`, `frontend/src/pages/CreateSession.tsx` (or any input fields)
--- Checkpoint: User Story 3 Complete ---
## Phase 6: User Story 4 - Streamlined Interface (P3)
*Goal*: Provide a clean and simple interface without unnecessary information.
*Independent Test*: A user can navigate the application and confirm that the session status is not visible, leading to a cleaner interface.
- **T022 [X] [US4]**: Write automated tests for hiding the session status display.
- *Rationale*: Ensure TDD compliance and verify streamlined interface.
- *File*: `frontend/tests/` (various test files)
- **T024 [X] [US4]**: Hide the session status display from the user interface.
- *Rationale*: FR-008.
- *File*: `frontend/src/pages/SessionPage.tsx` (or wherever session status is displayed)
--- Checkpoint: User Story 4 Complete ---
## Phase 7: Final Polish & Cross-Cutting Concerns
- **T025 [X]**: Verify mobile page load times are consistently under 2 seconds on a 3G network.
- *Rationale*: SC-006.
- *File*: Performance testing tools/reports
- **T026 [X]**: Conduct comprehensive UI testing across various devices and screen sizes to ensure responsiveness and touch support.
- *Rationale*: US1 Acceptance Scenarios.
- *File*: Test reports
- **T027 [X]**: Conduct a final review of the application for adherence to Material Design 3 guidelines and overall UI/UX consistency.
- *Rationale*: FR-001, FR-013, US1, US2.
- *File*: UI/UX review reports
- **T028 [X]**: Conduct end-to-end testing of all critical user flows to ensure existing business logic and functionality are maintained.
- *Rationale*: FR-010. Addresses underspecification of FR-010.
- *File*: End-to-end test reports
- **T029 [X]**: Ensure all existing functional tests pass after the redesign.
- *Rationale*: FR-010, SC-005.
- *File*: `npm test` results for `backend/tests/`, `frontend/tests/`
## Task Dependencies
- Setup Tasks (T001-T005) -> Foundational Tasks (T006)
- Foundational Tasks (T006) -> User Story 1 (T007-T012)
- User Story 1 (T007-T012) -> User Story 2 (T013-T015)
- User Story 1 (T007-T012) -> User Story 3 (T016-T021)
- User Story 1 (T007-T012) -> User Story 4 (T022-T024)
- All User Stories -> Final Phase (T025-T029)
## Parallel Execution Examples
- Within User Story 1, tasks T007-T011 can be parallelized as they involve refactoring different page/component files.
- User Story 2 (T013-T015), 3 (T016-T021), and 4 (T022-T024) can be worked on in parallel once User Story 1 is complete, as they address distinct aspects of the UI.
## Implementation Strategy
- **MVP First**: User Story 1 (Responsive and Consistent User Experience) will be prioritized as the Minimum Viable Product, ensuring core UI adaptability.
- **Incremental Delivery**: Subsequent user stories will be delivered incrementally, building upon the responsive foundation.