plan(web_v2): Update task list
Generated by: Planning Agent Timestamp: 2025-11-21T07:20:50.161357+00:00 Component: web_v2
This commit is contained in:
parent
8a42e77563
commit
1a0d1e3f71
1 changed files with 69 additions and 56 deletions
|
|
@ -2,32 +2,16 @@
|
|||
"project": "mnemo_cards_web_v2",
|
||||
"component": "web_v2",
|
||||
"version": "1.0",
|
||||
"generated_at": "2025-01-20T22:23:46.165295+00:00",
|
||||
"generated_at": "2025-01-21T07:20:03.537898+00:00",
|
||||
"generated_by": "planning_agent",
|
||||
"tasks": [
|
||||
{
|
||||
"id": "WEB-00",
|
||||
"title": "Fix linter errors",
|
||||
"priority": "high",
|
||||
"status": "in_progress",
|
||||
"estimated_hours": 3.0,
|
||||
"description": "Fix linter errors in the project",
|
||||
"acceptance_criteria": [
|
||||
"No linter errors in mnemo_cards_web_v2"
|
||||
],
|
||||
"dependencies": [],
|
||||
"files_to_modify": [
|
||||
"mnemo_cards_web_v2/lib"
|
||||
],
|
||||
"component": "web_v2"
|
||||
},
|
||||
{
|
||||
"id": "WEB-001",
|
||||
"title": "Complete Ads Reward Flow - Integrate Adsgram SDK",
|
||||
"priority": "high",
|
||||
"status": "in_progress",
|
||||
"estimated_hours": 4.0,
|
||||
"description": "Integrate the real Adsgram JavaScript SDK for web rewarded ads. The AdsRewardService, AdsRewardStateManager, and AdsRewardButton widget are already implemented, but the Adsgram stub needs to be replaced with real SDK integration. This includes loading the Adsgram SDK script, implementing proper ad lifecycle management, and handling ad completion/reward callbacks.",
|
||||
"estimated_hours": 3.0,
|
||||
"description": "Replace the Adsgram stub with real SDK integration. Load Adsgram SDK script in web/index.html, implement proper ad lifecycle management (load, show, complete), handle ad completion/reward callbacks, and ensure error handling works correctly. The AdsRewardService, AdsRewardStateManager, and AdsRewardButton widget are already implemented.",
|
||||
"acceptance_criteria": [
|
||||
"Adsgram SDK script loads correctly in web/index.html",
|
||||
"AdsRewardButton successfully shows rewarded ads using real SDK",
|
||||
|
|
@ -51,8 +35,8 @@
|
|||
"title": "Integrate Ads Reward Button into Pack Purchase Flow",
|
||||
"priority": "high",
|
||||
"status": "pending",
|
||||
"estimated_hours": 3.0,
|
||||
"description": "Add the AdsRewardButton to PackDetailsPage and PurchasePage to show 'Unlock by watching ad' option when a pack has an adsKey available. This completes the ads reward flow by making it accessible to users when viewing packs.",
|
||||
"estimated_hours": 2.5,
|
||||
"description": "Add AdsRewardButton to PackDetailsPage and PurchasePage to show 'Unlock by watching ad' option when a pack has an adsKey available. Ensure the button appears conditionally, shows correct states, refreshes pack access after successful reward, and handles errors gracefully.",
|
||||
"acceptance_criteria": [
|
||||
"AdsRewardButton appears on PackDetailsPage when pack has adsKey",
|
||||
"AdsRewardButton appears on PurchasePage when pack has adsKey",
|
||||
|
|
@ -74,17 +58,18 @@
|
|||
},
|
||||
{
|
||||
"id": "WEB-003",
|
||||
"title": "Add Buy Pack Button to PackDetailsPage",
|
||||
"title": "Verify and Complete Buy Pack Button Implementation",
|
||||
"priority": "high",
|
||||
"status": "in_progress",
|
||||
"estimated_hours": 2.0,
|
||||
"description": "Add a 'Buy Pack' button to PackDetailsPage that navigates to PurchasePage when a pack requires purchase. This completes the pack purchase flow integration.",
|
||||
"status": "pending",
|
||||
"estimated_hours": 1.5,
|
||||
"description": "Verify that the Buy Pack button in PackDetailsPage works correctly, navigates to PurchasePage properly, handles edge cases (pack already purchased, network errors), and has proper test coverage. Complete any missing functionality.",
|
||||
"acceptance_criteria": [
|
||||
"Buy Pack button appears when pack requires purchase",
|
||||
"Button navigates to PurchasePage with correct packId",
|
||||
"Button is properly styled and positioned",
|
||||
"Button handles edge cases (already purchased, network errors)",
|
||||
"Button shows loading state during navigation",
|
||||
"3+ widget tests pass covering button functionality"
|
||||
"Button is properly styled and positioned",
|
||||
"5+ widget tests pass covering all button functionality and edge cases"
|
||||
],
|
||||
"dependencies": [],
|
||||
"files_to_modify": [
|
||||
|
|
@ -95,23 +80,48 @@
|
|||
},
|
||||
{
|
||||
"id": "WEB-004",
|
||||
"title": "Create Subscription Plans Display Widget",
|
||||
"priority": "medium",
|
||||
"status": "pending",
|
||||
"estimated_hours": 3.0,
|
||||
"description": "Create a reusable SubscriptionPlansWidget that displays available subscription plans with features, pricing, and comparison. This widget will be used in SubscriptionPage. The SubscriptionService already exists and uses HttpRepositoryV2.",
|
||||
"acceptance_criteria": [
|
||||
"SubscriptionPlansWidget displays all available plans",
|
||||
"Each plan shows features, pricing, and duration",
|
||||
"Plan comparison highlights differences between plans",
|
||||
"Current user subscription is highlighted",
|
||||
"Widget is responsive (mobile/tablet/desktop)",
|
||||
"Loading and error states are handled",
|
||||
"6+ widget tests pass covering plan display and selection"
|
||||
],
|
||||
"dependencies": [
|
||||
"backend:API-007"
|
||||
],
|
||||
"files_to_modify": [
|
||||
"mnemo_cards_web_v2/lib/presentation/widgets/subscription_plans_widget.dart",
|
||||
"mnemo_cards_web_v2/test/presentation/widgets/subscription_plans_widget_test.dart"
|
||||
],
|
||||
"component": "web_v2"
|
||||
},
|
||||
{
|
||||
"id": "WEB-005",
|
||||
"title": "Create Subscription Management Page",
|
||||
"priority": "medium",
|
||||
"status": "pending",
|
||||
"estimated_hours": 6.0,
|
||||
"description": "Create a complete SubscriptionPage UI with subscription plans display, purchase flow, current subscription status, and management options (cancel/renew). The SubscriptionService already exists and uses HttpRepositoryV2, so this task focuses on building the UI layer.",
|
||||
"estimated_hours": 3.5,
|
||||
"description": "Create SubscriptionPage UI that integrates SubscriptionPlansWidget, handles subscription purchase flow, displays current subscription status, and provides management options (cancel/renew). Use SubscriptionService for API calls.",
|
||||
"acceptance_criteria": [
|
||||
"SubscriptionPage displays available subscription plans with features and pricing",
|
||||
"Plan comparison UI shows differences between plans",
|
||||
"SubscriptionPage displays subscription plans using SubscriptionPlansWidget",
|
||||
"Purchase flow works for subscriptions",
|
||||
"Current subscription status is displayed clearly",
|
||||
"Subscription cancellation flow works",
|
||||
"Subscription renewal flow works",
|
||||
"Page is responsive (mobile/tablet/desktop)",
|
||||
"Loading states and error handling are implemented",
|
||||
"10+ widget tests pass covering all UI interactions"
|
||||
"8+ widget tests pass covering all UI interactions"
|
||||
],
|
||||
"dependencies": [
|
||||
"WEB-004",
|
||||
"backend:API-007"
|
||||
],
|
||||
"files_to_modify": [
|
||||
|
|
@ -122,21 +132,22 @@
|
|||
"component": "web_v2"
|
||||
},
|
||||
{
|
||||
"id": "WEB-005",
|
||||
"id": "WEB-006",
|
||||
"title": "Add Subscription Status to Profile Page",
|
||||
"priority": "medium",
|
||||
"status": "pending",
|
||||
"estimated_hours": 2.0,
|
||||
"description": "Display current subscription status on ProfilePage with a link to SubscriptionPage for management. This provides quick access to subscription information.",
|
||||
"description": "Display current subscription status on ProfilePage with plan name, expiry date, active status, and a link to SubscriptionPage for management. Ensure status updates when subscription changes.",
|
||||
"acceptance_criteria": [
|
||||
"Subscription status is displayed on ProfilePage",
|
||||
"Status shows plan name, expiry date, and active status",
|
||||
"Link to SubscriptionPage is provided",
|
||||
"Status updates when subscription changes",
|
||||
"3+ widget tests pass covering status display"
|
||||
"Loading and error states are handled",
|
||||
"4+ widget tests pass covering status display and navigation"
|
||||
],
|
||||
"dependencies": [
|
||||
"WEB-004"
|
||||
"WEB-005"
|
||||
],
|
||||
"files_to_modify": [
|
||||
"mnemo_cards_web_v2/lib/presentation/pages/profile/profile_page.dart",
|
||||
|
|
@ -145,12 +156,12 @@
|
|||
"component": "web_v2"
|
||||
},
|
||||
{
|
||||
"id": "WEB-006",
|
||||
"id": "WEB-007",
|
||||
"title": "Create Promocode Input Widget",
|
||||
"priority": "medium",
|
||||
"status": "pending",
|
||||
"estimated_hours": 4.0,
|
||||
"description": "Create a reusable PromocodeInput widget that can be integrated into PurchasePage and SubscriptionPage. The widget should handle promocode validation, application, discount display, and success/failure feedback. PromocodeService already exists and uses HttpRepositoryV2.",
|
||||
"estimated_hours": 3.0,
|
||||
"description": "Create a reusable PromocodeInput widget with text field, apply button, validation feedback, discount display, and success/error states. The widget should integrate with PromocodeService (which already uses HttpRepositoryV2) and be usable in PurchasePage and SubscriptionPage.",
|
||||
"acceptance_criteria": [
|
||||
"PromocodeInput widget is created with text field and apply button",
|
||||
"Widget validates promocode before applying",
|
||||
|
|
@ -171,18 +182,19 @@
|
|||
"component": "web_v2"
|
||||
},
|
||||
{
|
||||
"id": "WEB-007",
|
||||
"id": "WEB-008",
|
||||
"title": "Fix Failing Tests",
|
||||
"priority": "medium",
|
||||
"status": "pending",
|
||||
"estimated_hours": 3.0,
|
||||
"description": "Resolve 24 failing tests (mostly empty test files) to ensure all tests pass. This improves code quality and prevents regressions.",
|
||||
"description": "Resolve 24 failing tests (mostly empty test files) to ensure all tests pass. Investigate each failing test, implement proper test cases or mark as skipped with clear reasons, and ensure no empty test files remain.",
|
||||
"acceptance_criteria": [
|
||||
"All 24 failing tests are fixed or properly skipped",
|
||||
"All 24 failing tests are fixed or properly skipped with clear reasons",
|
||||
"All tests compile without errors",
|
||||
"All tests pass successfully",
|
||||
"Test coverage is maintained or improved",
|
||||
"No empty test files remain"
|
||||
"No empty test files remain",
|
||||
"Test failures are documented with root cause analysis"
|
||||
],
|
||||
"dependencies": [],
|
||||
"files_to_modify": [
|
||||
|
|
@ -192,12 +204,12 @@
|
|||
"component": "web_v2"
|
||||
},
|
||||
{
|
||||
"id": "WEB-008",
|
||||
"id": "WEB-009",
|
||||
"title": "Create Settings Page",
|
||||
"priority": "low",
|
||||
"status": "pending",
|
||||
"estimated_hours": 3.0,
|
||||
"description": "Create a dedicated SettingsPage to separate settings from ProfilePage. Include theme toggle, language selection, sound effects toggle, notifications settings, and account settings.",
|
||||
"description": "Create a dedicated SettingsPage to separate settings from ProfilePage. Include theme toggle (light/dark), language selection, sound effects toggle, notifications settings, and account settings. Settings should persist using SharedPreferences.",
|
||||
"acceptance_criteria": [
|
||||
"SettingsPage UI is complete with all settings options",
|
||||
"Theme toggle (light/dark) works and persists",
|
||||
|
|
@ -219,16 +231,16 @@
|
|||
"component": "web_v2"
|
||||
},
|
||||
{
|
||||
"id": "WEB-009",
|
||||
"id": "WEB-010",
|
||||
"title": "Increase Test Coverage for Purchase Flow",
|
||||
"priority": "medium",
|
||||
"status": "pending",
|
||||
"estimated_hours": 4.0,
|
||||
"description": "Add comprehensive unit and widget tests for the purchase flow including PurchasesService, PurchaseStateManager, PurchasePage, and payment verification logic.",
|
||||
"estimated_hours": 3.5,
|
||||
"description": "Add comprehensive unit and widget tests for the purchase flow including PurchasesService, PurchaseStateManager, PurchasePage, payment verification logic, and error handling for all edge cases.",
|
||||
"acceptance_criteria": [
|
||||
"PurchasesService has 15+ unit tests with >80% coverage",
|
||||
"PurchaseStateManager has 10+ unit tests covering all state transitions",
|
||||
"PurchasePage has 12+ widget tests covering all UI interactions",
|
||||
"PurchasesService has 12+ unit tests with >80% coverage",
|
||||
"PurchaseStateManager has 8+ unit tests covering all state transitions",
|
||||
"PurchasePage has 10+ widget tests covering all UI interactions",
|
||||
"Payment verification flow has comprehensive test coverage",
|
||||
"Error handling is tested for all edge cases",
|
||||
"All tests pass with zero flaky tests"
|
||||
|
|
@ -244,24 +256,25 @@
|
|||
"component": "web_v2"
|
||||
},
|
||||
{
|
||||
"id": "WEB-010",
|
||||
"id": "WEB-011",
|
||||
"title": "Verify API v2 Migration Completeness",
|
||||
"priority": "medium",
|
||||
"status": "pending",
|
||||
"estimated_hours": 2.0,
|
||||
"description": "Audit all services and verify that no v1 API dependencies remain. Ensure all services use HttpRepositoryV2 and all API calls use v2 endpoints. Remove any deprecated v1 code.",
|
||||
"description": "Audit all services and verify that no v1 API dependencies remain. Ensure all services use HttpRepositoryV2, all API calls use v2 endpoints, and remove any deprecated v1 code. Create a migration audit document.",
|
||||
"acceptance_criteria": [
|
||||
"All services use HttpRepositoryV2 (no HttpRepository v1 usage)",
|
||||
"All API calls use v2 endpoints",
|
||||
"No deprecated v1 dependencies remain",
|
||||
"All v1 code is removed or marked as deprecated",
|
||||
"Migration audit document is created",
|
||||
"Migration audit document is created with findings",
|
||||
"All functionality verified working with v2 API"
|
||||
],
|
||||
"dependencies": [],
|
||||
"files_to_modify": [
|
||||
"mnemo_cards_web_v2/lib/domain/services/**/*.dart",
|
||||
"mnemo_cards_web_v2/lib/domain/config/api_config.dart"
|
||||
"mnemo_cards_web_v2/lib/domain/config/api_config.dart",
|
||||
"mnemo_cards_web_v2/API_V2_MIGRATION_AUDIT.md"
|
||||
],
|
||||
"component": "web_v2"
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue