My-Weekly-ToDo-List/Version 01/.planning/phases/02-user-experience-advanced-features/02-04-PLAN.md
mARTin d92a8c7210 feat: add task actions (notes/delete) and refine animation logic
- Added 'onDelete' and 'onNotes' support to TaskItem.
- Implemented hover actions (Delete and Notes icons) for tasks.
- Added Notes Modal for editing task markdown content.
- Simplified navigation animation to remove blank flash (single-phase slide-in).
- Fixed syntax error in updateTask function.
- Updated styles for modal and task actions.
2026-02-01 12:25:53 +01:00

214 lines
9.3 KiB
Markdown

---
phase: 02-user-experience-advanced-features
plan: 04
type: execute
wave: 1
depends_on: []
files_modified: [src/components/TaskCard.tsx, src/components/TaskForm.tsx, src/types/task.ts]
autonomous: true
gap_closure: true
must_haves:
truths:
- "User can view tasks and events in a weekly calendar view"
- "User can add tasks to specific days within the weekly view"
- "User can edit existing tasks (change title, date, description)"
- "User can delete tasks from the weekly view"
- "User can mark tasks as complete/incomplete"
- "User can navigate between weeks using previous/next buttons"
- "User can switch between day and week views"
- "User can drag and drop tasks between days to reorganize them"
- "User can persist tasks locally in the browser"
- "Application has a clean, minimalist interface that is easy to use"
- "Application is responsive and works well on desktop and tablet devices"
- "Tasks are clearly distinguishable from calendar events in the UI"
- "Adding and editing tasks follows an intuitive workflow with minimal steps"
- "Completed tasks are visually marked in a clear way"
- "User can create recurring tasks that repeat daily, weekly, or monthly"
- "User can assign categories or tags to organize tasks"
- "User can set reminders for specific tasks to be notified before due time"
- "User can prioritize tasks using high, medium, or low priority levels"
- "User can add detailed descriptions and notes to tasks"
- "User can define how many days are displayed from one till fourteen"
artifacts:
- path: "src/components/TaskCard.tsx"
provides: "Task rendering with all visual indicators"
min_lines: 40
- path: "src/components/TaskForm.tsx"
provides: "Task form with all fields and validation"
min_lines: 50
- path: "src/types/task.ts"
provides: "Enhanced Task type with all properties"
contains: "recurring?: 'daily' | 'weekly' | 'monthly'"
- path: "src/components/CalendarGrid.tsx"
provides: "Calendar view with all features"
min_lines: 60
key_links:
- from: "src/components/TaskCard.tsx"
to: "src/lib/taskPersistence.ts"
via: "save/load operations"
pattern: "taskPersistence"
- from: "src/components/CalendarGrid.tsx"
to: "src/components/TaskCard.tsx"
via: "component composition"
pattern: "<TaskCard"
---
# Complete Advanced Features Implementation - Gap Closure Plan
## Objective
Complete the remaining advanced features implementation and refine the user experience to fully meet the phase goals.
## Purpose
This plan addresses the remaining gaps in advanced features and workflows to ensure all requirements are met. It focuses on implementing the missing calendar event integration, completing the reminder system, and enhancing the categorization features.
## Output
- Complete implementation of recurring tasks functionality
- Enhanced categorization and tagging system
- Reminder notification system implementation
- Improved note-taking capabilities
- Enhanced task management workflow
## Tasks
<task type="auto">
<name>Complete recurring task functionality</name>
<files>src/components/TaskForm.tsx, src/types/task.ts</files>
<action>Ensure full recurring task functionality:
- Verify recurrence dropdown allows all required options (None, daily, weekly, monthly)
- Ensure recurrence settings are properly saved and loaded
- Add validation for recurrence settings
- Test that recurrence works correctly with task creation/editing
- Add proper UI labels and explanations for recurrence options
Reference existing implementation in 02-01-SUMMARY.md and 02-02-PLAN.md</action>
<verify>Test that all recurrence options work correctly when creating/editing tasks</verify>
<done>Recurring tasks are fully functional with all supported frequencies</done>
</task>
<task type="auto">
<name>Enhance categorization and tagging system</name>
<files>src/components/TaskForm.tsx, src/types/task.ts</files>
<action>Improve tag/category handling:
- Implement a more sophisticated tagging system (multi-select or tag input)
- Add validation for tags (length limits, forbidden characters)
- Ensure tags are properly stored and displayed
- Add UI affordances for managing tags (delete, edit, etc.)
- Provide suggestions or autocomplete for existing tags
Reference existing tag implementation in TaskForm.tsx</action>
<verify>Test that tags work with multi-tag input and proper validation</verify>
<done>Tag system supports multi-tag input with validation and management</done>
</task>
<task type="auto">
<name>Implement reminder notification system</name>
<files>src/components/TaskCard.tsx, src/lib/taskPersistence.ts</files>
<action>Create basic reminder system:
- Add reminder badge display in TaskCard
- Implement simple reminder checking logic (current time vs reminder time)
- Create basic notification mechanism (console.log or toast)
- Ensure reminders display appropriately in UI
- Add reminder time validation
Even though a full notification system requires external libraries, implement the foundation</action>
<verify>Test that reminder badges show properly and reminder checking logic works</verify>
<done>Reminder system foundation is implemented with visual indicators</done>
</task>
<task type="auto">
<name>Improve priority system</name>
<files>src/components/TaskCard.tsx, src/components/TaskForm.tsx</files>
<action>Enhance priority visualization:
- Add more meaningful priority indicators (color coding, icons, etc.)
- Implement priority-based sorting in UI
- Ensure priority levels are visually distinct
- Add proper validation for priority values
- Provide clear meaning for each priority level
Reference existing priority implementation</action>
<verify>Test that priorities are visually distinguishable and properly validated</verify>
<done>Priority system provides clear visual distinction and meaningful categorization</done>
</task>
<task type="auto">
<name>Enhance note-taking capabilities</name>
<files>src/components/TaskForm.tsx</files>
<action>Improve description handling:
- Add rich text editor or improved markdown support
- Implement character limit warnings
- Add preview functionality for descriptions
- Ensure long descriptions don't break UI
- Add formatting help or tips for users
Reference existing description field implementation</action>
<verify>Test that descriptions work with enhanced features</verify>
<done>Description field supports improved note-taking capabilities</done>
</task>
<task type="auto">
<name>Add customizable day range display</name>
<files>src/components/CalendarGrid.tsx</files>
<action>Implement configurable day ranges:
- Add configuration for how many days to display (1-14 days)
- Create UI control to adjust day range
- Add state management for day range preference
- Ensure display adjusts properly based on setting
- Validate day range values (1-14)
Reference requirements - "User can define how many days are displayed from one till fourteen"</action>
<verify>Test that day range can be adjusted and visualized correctly</verify>
<done>User can define day range between 1-14 days for calendar display</done>
</task>
<task type="auto">
<name>Add calendar event integration framework</name>
<files>src/components/CalendarGrid.tsx, src/types/task.ts</files>
<action>Prepare for calendar event integration:
- Extend Task type to accommodate calendar events (if not already done)
- Create framework for distinguishing calendar events from tasks
- Add placeholder for calendar event rendering in UI
- Ensure UI can differentiate between tasks and events
- Implement basic structure for future event integration
Reference current task type and calendar grid structure</action>
<verify>Test that Task type can handle calendar events and UI can distinguish them</verify>
<done>Framework is in place for calendar event integration</done>
</task>
<task type="auto">
<name>Streamline form workflow</name>
<files>src/components/TaskForm.tsx</files>
<action>Optimize task creation/editing workflow:
- Implement form validation feedback
- Add keyboard shortcuts (Enter to save)
- Improve form layout for better usability
- Add tooltips or hints for complex fields
- Ensure all form elements are accessible
Reference existing form implementation</action>
<verify>Test that form workflow is more intuitive and efficient</verify>
<done>Task form workflow is streamlined with better user guidance</done>
</task>
<verification>
- All recurring task features are fully functional
- Tagging system supports advanced usage
- Reminder system foundation is implemented
- Priority system provides clear visual distinction
- Notes can be entered with enhanced capabilities
- Day range customization works
- Calendar event framework is prepared
- Form workflow is more intuitive
</verification>
<success_criteria>
- All advanced features are fully functional and implemented
- Recurring tasks work with all supported frequencies
- Tagging system supports multi-tags with validation
- Reminder system foundation provides visual indicators
- Priority levels are clearly distinguished
- Description field supports enhanced note-taking
- User can customize day range display (1-14 days)
- Framework is ready for calendar event integration
- Task form workflow is streamlined and intuitive
</success_criteria>