7.7 KiB
Implementation Plan
-
1. Create core service classes for data management
- Create ScheduleService class for managing scheduled operations with JSON persistence
- Create LogService class for reading and parsing Progress.md files
- Create TagAnalysisService class for fetching and analyzing Shopify product tags
- Requirements: 5.1, 5.2, 5.3
-
2. Implement ScheduleService with JSON persistence
- Write loadSchedules() method to read from schedules.json file
- Write saveSchedules() method to persist schedules to JSON file
- Write addSchedule(), updateSchedule(), deleteSchedule() CRUD methods
- Write validateSchedule() method for schedule data validation
- Create unit tests for all ScheduleService methods
- Requirements: 1.6, 5.1
-
3. Implement LogService for Progress.md parsing
- Write getLogFiles() method to discover available log files
- Write readLogFile() method to read Progress.md content
- Write parseLogContent() method to extract structured log entries
- Write filterLogs() method for date range, operation type, and status filtering
- Write paginateLogs() method for handling large log files
- Create unit tests for all LogService methods
- Requirements: 2.1, 2.3, 2.4, 2.5
-
4. Implement TagAnalysisService with Shopify API integration
- Write fetchAllTags() method using existing ShopifyService
- Write getTagDetails() method to analyze products for a specific tag
- Write calculateTagStatistics() method for product counts, values, and price ranges
- Write searchTags() method for filtering tags by search query
- Create unit tests for all TagAnalysisService methods
- Requirements: 3.1, 3.2, 3.3, 3.4, 3.6
-
5. Create reusable TUI components
- Create ErrorDisplay component for consistent error messaging
- Create LoadingIndicator component for progress indication
- Create Pagination component for navigating large datasets
- Create FormInput component for text input fields
- Write unit tests for all reusable components
- Requirements: 4.1, 4.3, 4.5
-
6. Implement basic Scheduling screen structure
- Create SchedulingScreen component with main schedule list view
- Implement keyboard navigation (↑/↓ arrows, Enter, Esc)
- Add state management for schedules list and selected index
- Integrate with ScheduleService to load and display existing schedules
- Add basic schedule status indicators (pending, completed, failed)
- Requirements: 1.1, 1.7, 4.1, 4.2
-
7. Add schedule creation functionality to Scheduling screen
- Create "Add New Schedule" form interface
- Implement form fields for operation type, date/time, and recurrence
- Add form validation for required fields and valid date/time values
- Integrate with ScheduleService to save new schedules
- Add success/error feedback for schedule creation
- Requirements: 1.2, 1.3, 1.4, 1.5, 1.6
-
8. Add schedule management features to Scheduling screen
- Implement edit functionality for existing schedules
- Add delete confirmation and schedule removal
- Add schedule enable/disable toggle functionality
- Display schedule execution instructions and status
- Add error handling for schedule operations
- Requirements: 1.8, 1.9, 4.5
-
9. Implement basic View Logs screen structure
- Create ViewLogsScreen component with log file list view
- Implement keyboard navigation for log file selection
- Add state management for log files, selected file, and content
- Integrate with LogService to discover and list available log files
- Display log file metadata (size, creation date, operation count)
- Requirements: 2.1, 2.8, 4.1, 4.2
-
10. Add log content viewing functionality
- Implement log content display with syntax highlighting
- Add pagination for large log files using Pagination component
- Implement scrolling through log content with keyboard controls
- Add log entry type highlighting (errors, warnings, success messages)
- Handle empty log files with helpful messaging
- Requirements: 2.2, 2.4, 2.6, 2.7
-
11. Add log filtering and search capabilities
- Implement filter interface for date range, operation type, and status
- Add search functionality within log content
- Integrate filtering with LogService filterLogs() method
- Update pagination to work with filtered results
- Add filter status indicators and clear filter options
- Requirements: 2.3, 2.5
-
12. Implement basic Tag Analysis screen structure
- Create TagAnalysisScreen component with tag list view
- Implement keyboard navigation for tag selection
- Add state management for tags, selected tag, and analysis status
- Integrate with TagAnalysisService to fetch store tags
- Display loading indicators during tag fetching
- Requirements: 3.1, 3.9, 4.1, 4.2
-
13. Add tag statistics and analysis features
- Display tag statistics (product count, variant count, total value)
- Implement tag details view showing products and prices
- Add price range calculations and average price display
- Show detailed product information for selected tags
- Add error handling for API connection failures
- Requirements: 3.2, 3.3, 3.4, 3.6, 3.9
-
14. Add tag search and configuration integration
- Implement search/filter functionality for tag list
- Add tag selection for immediate use in configuration
- Integrate with existing configuration system to update target tag
- Add confirmation dialogs for configuration updates
- Handle tag selection workflow and navigation
- Requirements: 3.7, 3.8, 5.5
-
15. Update main TUI entry point with new screens
- Modify tui-entry.js to include new screen navigation options
- Update main menu to remove "coming soon" placeholders
- Add screen routing logic for Scheduling, View Logs, and Tag Analysis
- Ensure consistent navigation patterns across all screens
- Update help text and keyboard shortcuts documentation
- Requirements: 4.1, 4.2, 4.6
-
16. Implement comprehensive error handling
- Add error boundaries for each new screen
- Implement retry logic for API failures in Tag Analysis
- Add graceful handling of missing files (schedules.json, Progress.md)
- Create consistent error messaging across all screens
- Add troubleshooting guidance for common issues
- Requirements: 4.5, 3.9, 2.7
-
17. Add data persistence and state management
- Ensure schedules persist correctly to schedules.json file
- Implement proper state cleanup when switching screens
- Add data validation for all user inputs
- Handle concurrent access to shared files safely
- Implement proper error recovery for file operations
- Requirements: 5.1, 5.2, 5.4, 5.6
-
18. Create integration tests for new screens
- Write integration tests for Scheduling screen workflow
- Write integration tests for View Logs screen functionality
- Write integration tests for Tag Analysis screen operations
- Test navigation between screens and state preservation
- Test error handling and recovery scenarios
- Requirements: 4.1, 4.2, 4.3, 4.4, 4.5
-
19. Add performance optimizations
- Implement lazy loading for large tag lists in Tag Analysis
- Add efficient pagination for log content viewing
- Optimize memory usage for large datasets
- Add caching for frequently accessed tag data
- Implement proper cleanup of resources and event listeners
- Requirements: 2.4, 3.1, 3.2
-
20. Final testing and polish
- Conduct end-to-end testing of all new screens
- Test keyboard navigation consistency across all screens
- Verify consistent styling and color schemes
- Test integration with existing Configuration and Operations screens
- Add final documentation and help text updates
- Requirements: 4.1, 4.2, 4.3, 4.4, 4.5, 4.6