linter + новые таски
This commit is contained in:
@@ -23,11 +23,11 @@
|
||||
|
||||
**Purpose**: Create new directory structure and stores for layout state
|
||||
|
||||
- [ ] T001 Create `frontend/src/lib/components/layout/` directory for shared layout components
|
||||
- [ ] T002 Create `frontend/src/lib/components/hubs/` directory for resource hub pages
|
||||
- [ ] T003 [P] Create `frontend/src/lib/stores/sidebar.js` with persistentStore pattern for sidebar state
|
||||
- [ ] T004 [P] Create `frontend/src/lib/stores/taskDrawer.js` with resourceTaskMap store
|
||||
- [ ] T005 [P] Create `frontend/src/lib/stores/activity.js` as derived store from taskDrawer
|
||||
- [x] T001 Create `frontend/src/lib/components/layout/` directory for shared layout components
|
||||
- [x] T002 Create `frontend/src/lib/components/hubs/` directory for resource hub pages
|
||||
- [x] T003 [P] Create `frontend/src/lib/stores/sidebar.js` with persistentStore pattern for sidebar state
|
||||
- [x] T004 [P] Create `frontend/src/lib/stores/taskDrawer.js` with resourceTaskMap store
|
||||
- [x] T005 [P] Create `frontend/src/lib/stores/activity.js` as derived store from taskDrawer
|
||||
|
||||
---
|
||||
|
||||
@@ -37,12 +37,12 @@
|
||||
|
||||
**⚠️ CRITICAL**: No user story work can begin until this phase is complete
|
||||
|
||||
- [ ] T006 Create `frontend/src/lib/components/layout/Sidebar.svelte` with categories: DASHBOARDS, DATASETS, STORAGE, ADMIN
|
||||
- [ ] T007 Create `frontend/src/lib/components/layout/TopNavbar.svelte` with Logo, Search placeholder, Activity indicator, User menu
|
||||
- [ ] T008 Create `frontend/src/lib/components/layout/Breadcrumbs.svelte` for page hierarchy navigation
|
||||
- [ ] T009 Update `frontend/src/routes/+layout.svelte` to include Sidebar, TopNavbar, and main content area
|
||||
- [ ] T010 Add i18n keys for navigation labels in `frontend/src/lib/i18n/translations/en.json`
|
||||
- [ ] T011 Add i18n keys for navigation labels in `frontend/src/lib/i18n/translations/ru.json`
|
||||
- [x] T006 Create `frontend/src/lib/components/layout/Sidebar.svelte` with categories: DASHBOARDS, DATASETS, STORAGE, ADMIN
|
||||
- [x] T007 Create `frontend/src/lib/components/layout/TopNavbar.svelte` with Logo, Search placeholder, Activity indicator, User menu
|
||||
- [x] T008 Create `frontend/src/lib/components/layout/Breadcrumbs.svelte` for page hierarchy navigation
|
||||
- [x] T009 Update `frontend/src/routes/+layout.svelte` to include Sidebar, TopNavbar, and main content area
|
||||
- [x] T010 Add i18n keys for navigation labels in `frontend/src/lib/i18n/translations/en.json`
|
||||
- [x] T011 Add i18n keys for navigation labels in `frontend/src/lib/i18n/translations/ru.json`
|
||||
|
||||
**Checkpoint**: Foundation ready - user story implementation can now begin
|
||||
|
||||
@@ -56,12 +56,12 @@
|
||||
|
||||
### Implementation for User Story 1
|
||||
|
||||
- [ ] T012 [US1] Implement sidebar collapse/expand toggle with animation in `frontend/src/lib/components/layout/Sidebar.svelte`
|
||||
- [ ] T013 [US1] Add mobile hamburger menu toggle in `frontend/src/lib/components/layout/TopNavbar.svelte`
|
||||
- [ ] T014 [US1] Implement active item highlighting in sidebar using `sidebarStore`
|
||||
- [ ] T015 [US1] Add localStorage persistence for sidebar state (collapsed/expanded)
|
||||
- [ ] T016 [US1] Implement responsive sidebar (overlay mode on mobile < 768px)
|
||||
- [ ] T017 [US1] Verify implementation matches ux_reference.md (Sidebar mockups)
|
||||
- [x] T012 [US1] Implement sidebar collapse/expand toggle with animation in `frontend/src/lib/components/layout/Sidebar.svelte`
|
||||
- [x] T013 [US1] Add mobile hamburger menu toggle in `frontend/src/lib/components/layout/TopNavbar.svelte`
|
||||
- [x] T014 [US1] Implement active item highlighting in sidebar using `sidebarStore`
|
||||
- [x] T015 [US1] Add localStorage persistence for sidebar state (collapsed/expanded)
|
||||
- [x] T016 [US1] Implement responsive sidebar (overlay mode on mobile < 768px)
|
||||
- [x] T017 [US1] Verify implementation matches ux_reference.md (Sidebar mockups)
|
||||
|
||||
**Checkpoint**: Sidebar navigation fully functional and responsive
|
||||
|
||||
@@ -75,14 +75,14 @@
|
||||
|
||||
### Implementation for User Story 2
|
||||
|
||||
- [ ] T018 [US2] Create `frontend/src/lib/components/layout/TaskDrawer.svelte` as slide-out panel from right
|
||||
- [ ] T019 [US2] Integrate existing `TaskLogViewer` component inside Task Drawer
|
||||
- [ ] T020 [US2] Implement Activity indicator badge in TopNavbar showing `activeCount` from store
|
||||
- [ ] T021 [US2] Connect Task Drawer to WebSocket for real-time log streaming
|
||||
- [ ] T022 [US2] Implement interactive area in drawer for `PasswordPrompt` and other inputs
|
||||
- [ ] T023 [US2] Add close button that allows task to continue running in background
|
||||
- [ ] T024 [US2] Implement drawer open trigger from Activity indicator click
|
||||
- [ ] T025 [US2] Verify implementation matches ux_reference.md (Task Drawer mockup)
|
||||
- [x] T018 [US2] Create `frontend/src/lib/components/layout/TaskDrawer.svelte` as slide-out panel from right
|
||||
- [x] T019 [US2] Integrate existing `TaskLogViewer` component inside Task Drawer
|
||||
- [x] T020 [US2] Implement Activity indicator badge in TopNavbar showing `activeCount` from store
|
||||
- [x] T021 [US2] Connect Task Drawer to WebSocket for real-time log streaming
|
||||
- [x] T022 [US2] Implement interactive area in drawer for `PasswordPrompt` and other inputs
|
||||
- [x] T023 [US2] Add close button that allows task to continue running in background
|
||||
- [x] T024 [US2] Implement drawer open trigger from Activity indicator click
|
||||
- [x] T025 [US2] Verify implementation matches ux_reference.md (Task Drawer mockup)
|
||||
|
||||
**Checkpoint**: Task Drawer fully functional with real-time logs
|
||||
|
||||
@@ -96,63 +96,83 @@
|
||||
|
||||
### Implementation for User Story 5
|
||||
|
||||
- [ ] T026 [US5] Implement Logo/Brand link in TopNavbar that returns to Home
|
||||
- [ ] T027 [US5] Add Global Search placeholder (non-functional, for future) in TopNavbar
|
||||
- [ ] T028 [US5] Implement User menu dropdown with Profile, Settings, Logout options
|
||||
- [ ] T029 [US5] Connect User menu Logout to authentication logout flow
|
||||
- [ ] T030 [US5] Verify implementation matches ux_reference.md (Top Navigation Bar mockup)
|
||||
- [x] T026 [US5] Implement Logo/Brand link in TopNavbar that returns to Home
|
||||
- [x] T027 [US5] Add Global Search placeholder (non-functional, for future) in TopNavbar
|
||||
- [x] T028 [US5] Implement User menu dropdown with Profile, Settings, Logout options
|
||||
- [x] T029 [US5] Connect User menu Logout to authentication logout flow
|
||||
- [x] T030 [US5] Verify implementation matches ux_reference.md (Top Navigation Bar mockup)
|
||||
|
||||
**Checkpoint**: Top navbar complete with all elements
|
||||
|
||||
---
|
||||
|
||||
## Phase 6: User Story 3 - Dashboard Hub Management (Priority: P2)
|
||||
## Phase 6: User Story 3 - Dashboard Hub Management (Priority: P1)
|
||||
|
||||
**Goal**: Central hub for dashboards with Git status and action triggers
|
||||
**Goal**: Central hub for dashboards with bulk selection, Git status, and action triggers
|
||||
|
||||
**Independent Test**: Navigate to `/dashboards`, select environment, verify grid displays correctly
|
||||
**Independent Test**: Navigate to `/dashboards`, select environment, verify grid displays correctly with checkboxes, pagination, and search
|
||||
|
||||
### Backend for User Story 3
|
||||
|
||||
- [ ] T031 [P] [US3] Create `backend/src/api/routes/dashboards.py` with GET /api/dashboards endpoint
|
||||
- [ ] T032 [P] [US3] Create `backend/src/services/resource_service.py` for shared resource fetching logic
|
||||
- [ ] T033 [US3] Implement dashboard list fetching with Git status and last task status
|
||||
- [x] T031 [P] [US3] Create `backend/src/api/routes/dashboards.py` with GET /api/dashboards endpoint
|
||||
- [x] T032 [P] [US3] Create `backend/src/services/resource_service.py` for shared resource fetching logic
|
||||
- [x] T033 [US3] Implement dashboard list fetching with Git status and last task status
|
||||
- [x] T034 [US3] Add pagination support to GET /api/dashboards endpoint (page, page_size parameters)
|
||||
- [x] T035 [US3] Implement bulk migration endpoint POST /api/dashboards/migrate with target environment and dashboard IDs
|
||||
- [x] T036 [US3] Implement bulk backup endpoint POST /api/dashboards/backup with optional cron schedule
|
||||
- [x] T037 [US3] Add database mappings retrieval from MappingService for migration modal
|
||||
|
||||
### Frontend for User Story 3
|
||||
|
||||
- [ ] T034 [US3] Create `frontend/src/routes/dashboards/+page.svelte` as Dashboard Hub
|
||||
- [ ] T035 [US3] Implement environment selector dropdown at top of Dashboard Hub
|
||||
- [ ] T036 [US3] Create dashboard grid with columns: Title, Slug, Git Status, Last Task, Actions
|
||||
- [ ] T037 [US3] Implement Actions menu with Migrate, Backup, Git Operations options
|
||||
- [ ] T038 [US3] Connect Actions menu to existing plugin triggers (Migration, Backup, Git)
|
||||
- [ ] T039 [US3] Implement status badge click to open Task Drawer with correct task
|
||||
- [ ] T040 [US3] Add empty state when no environments configured or no dashboards found
|
||||
- [ ] T041 [US3] Verify implementation matches ux_reference.md (Dashboard Hub Grid mockup)
|
||||
- [x] T038 [US3] Create `frontend/src/routes/dashboards/+page.svelte` as Dashboard Hub
|
||||
- [x] T039 [US3] Implement environment selector dropdown at top of Dashboard Hub
|
||||
- [x] T040 [US3] Create dashboard grid with checkboxes, columns: Title, Slug, Git Status, Last Task, Actions
|
||||
- [x] T041 [US3] Implement "Select All" and "Select Visible" buttons in toolbar
|
||||
- [x] T042 [US3] Add real-time search input that filters dashboard list
|
||||
- [x] T043 [US3] Implement pagination controls with page numbers and "Rows per page" dropdown
|
||||
- [x] T044 [US3] Create floating bulk action panel at bottom: "[✓ N selected] [Migrate] [Backup]"
|
||||
- [x] T045 [US3] Implement Bulk Migration modal with target environment, database mappings, and selected dashboards list
|
||||
- [x] T046 [US3] Implement Bulk Backup modal with one-time/scheduled options and cron expression
|
||||
- [x] T047 [US3] Implement individual Actions menu with Migrate, Backup, Git Operations options
|
||||
- [x] T048 [US3] Connect Actions menu to existing plugin triggers (Migration, Backup, Git)
|
||||
- [x] T049 [US3] Implement status badge click to open Task Drawer with correct task
|
||||
- [x] T050 [US3] Add empty state when no environments configured or no dashboards found
|
||||
- [x] T051 [US3] Verify implementation matches ux_reference.md (Dashboard Hub Grid mockup)
|
||||
|
||||
**Checkpoint**: Dashboard Hub fully functional
|
||||
**Checkpoint**: Dashboard Hub fully functional with bulk operations
|
||||
|
||||
---
|
||||
|
||||
## Phase 7: User Story 4 - Dataset Hub & Semantic Mapping (Priority: P2)
|
||||
## Phase 7: User Story 4 - Dataset Hub & Semantic Mapping (Priority: P1)
|
||||
|
||||
**Goal**: Dedicated hub for datasets with mapping progress
|
||||
**Goal**: Dedicated hub for datasets with bulk operations, mapping progress, and documentation generation
|
||||
|
||||
**Independent Test**: Navigate to `/datasets` and verify list with mapping progress
|
||||
**Independent Test**: Navigate to `/datasets`, select environment, verify grid displays correctly with checkboxes and bulk actions
|
||||
|
||||
### Backend for User Story 4
|
||||
|
||||
- [ ] T042 [P] [US4] Create `backend/src/api/routes/datasets.py` with GET /api/datasets endpoint
|
||||
- [ ] T043 [US4] Implement dataset list fetching with mapped fields count
|
||||
- [x] T052 [P] [US4] Create `backend/src/api/routes/datasets.py` with GET /api/datasets endpoint
|
||||
- [x] T053 [US4] Implement dataset list fetching with mapped fields count and SQL table extraction
|
||||
- [x] T054 [US4] Add pagination support to GET /api/datasets endpoint (page, page_size parameters)
|
||||
- [x] T055 [US4] Implement bulk column mapping endpoint POST /api/datasets/map-columns with source selection
|
||||
- [x] T056 [US4] Implement bulk documentation generation endpoint POST /api/datasets/generate-docs
|
||||
- [x] T057 [US4] Add dataset-to-dashboard relationship retrieval for linked dashboards display
|
||||
|
||||
### Frontend for User Story 4
|
||||
|
||||
- [ ] T044 [US4] Create `frontend/src/routes/datasets/+page.svelte` as Dataset Hub
|
||||
- [ ] T045 [US4] Implement dataset grid with columns: Table Name, Schema, Mapped Fields, Last Task, Actions
|
||||
- [ ] T046 [US4] Implement "Map Columns" action that opens mapping interface
|
||||
- [ ] T047 [US4] Add empty state when no datasets found
|
||||
- [ ] T048 [US4] Verify implementation matches ux_reference.md
|
||||
- [x] T058 [US4] Create `frontend/src/routes/datasets/+page.svelte` as Dataset Hub
|
||||
- [x] T059 [US4] Implement dataset grid with checkboxes, columns: Name, Database, Schema, Tables, Columns, Mapped %, Updated By, Actions
|
||||
- [x] T060 [US4] Implement "Select All" and "Select Visible" buttons in toolbar
|
||||
- [x] T061 [US4] Add real-time search input that filters dataset list by name, schema, or table names
|
||||
- [x] T062 [US4] Implement pagination controls with page numbers and "Rows per page" dropdown
|
||||
- [x] T063 [US4] Create floating bulk action panel at bottom: "[✓ N selected] [Map Columns] [Generate Docs] [Validate]"
|
||||
- [x] T064 [US4] Implement Column Mapping modal with PostgreSQL comments/XLSX source selection and preview
|
||||
- [x] T065 [US4] Implement Documentation Generation modal with LLM provider selection and options
|
||||
- [x] T066 [US4] Create dataset detail view showing SQL tables, column counts, mapping percentages, and linked dashboards
|
||||
- [x] T067 [US4] Add empty state when no datasets found
|
||||
- [x] T068 [US4] Verify implementation matches ux_reference.md (Dataset Hub Grid mockup)
|
||||
|
||||
**Checkpoint**: Dataset Hub fully functional
|
||||
**Checkpoint**: Dataset Hub fully functional with bulk operations
|
||||
|
||||
---
|
||||
|
||||
@@ -164,17 +184,17 @@
|
||||
|
||||
### Backend for User Story 6
|
||||
|
||||
- [ ] T049 [P] [US6] Extend `backend/src/api/routes/settings.py` with GET /api/settings endpoint
|
||||
- [ ] T050 [US6] Implement consolidated settings response with all categories
|
||||
- [x] T049 [P] [US6] Extend `backend/src/api/routes/settings.py` with GET /api/settings endpoint
|
||||
- [x] T050 [US6] Implement consolidated settings response with all categories
|
||||
|
||||
### Frontend for User Story 6
|
||||
|
||||
- [ ] T051 [US6] Create `frontend/src/routes/settings/+page.svelte` as Settings page
|
||||
- [ ] T052 [US6] Implement tabbed navigation: Environments, Connections, LLM, Logging, System
|
||||
- [ ] T053 [US6] Reuse existing settings components within each tab
|
||||
- [ ] T054 [US6] Implement role-based visibility (hide admin tabs for non-admin users)
|
||||
- [ ] T055 [US6] Add user-preference settings (theme, language) accessible to all users
|
||||
- [ ] T056 [US6] Verify implementation matches ux_reference.md (Settings Page mockup)
|
||||
- [x] T051 [US6] Create `frontend/src/routes/settings/+page.svelte` as Settings page
|
||||
- [x] T052 [US6] Implement tabbed navigation: Environments, Connections, LLM, Logging, System
|
||||
- [x] T053 [US6] Reuse existing settings components within each tab
|
||||
- [x] T054 [US6] Implement role-based visibility (hide admin tabs for non-admin users)
|
||||
- [x] T055 [US6] Add user-preference settings (theme, language) accessible to all users
|
||||
- [x] T056 [US6] Verify implementation matches ux_reference.md (Settings Page mockup)
|
||||
|
||||
**Checkpoint**: Settings page fully functional
|
||||
|
||||
@@ -184,13 +204,13 @@
|
||||
|
||||
**Purpose**: Improvements that affect multiple user stories
|
||||
|
||||
- [ ] T057 [P] Add breadcrumb navigation to all new pages
|
||||
- [ ] T058 [P] Implement breadcrumb truncation for deep paths (>3 levels)
|
||||
- [ ] T059 Remove old card-based dashboard grid if no longer needed
|
||||
- [ ] T060 [P] Add skeleton loaders for resource hub grids
|
||||
- [ ] T061 [P] Add error banners for environment connection failures
|
||||
- [ ] T062 Run quickstart.md validation for all user stories
|
||||
- [ ] T063 Final UX review against ux_reference.md
|
||||
- [x] T057 [P] Add breadcrumb navigation to all new pages
|
||||
- [x] T058 [P] Implement breadcrumb truncation for deep paths (>3 levels)
|
||||
- [x] T059 Remove old card-based dashboard grid if no longer needed
|
||||
- [x] T060 [P] Add skeleton loaders for resource hub grids
|
||||
- [x] T061 [P] Add error banners for environment connection failures
|
||||
- [x] T062 Run quickstart.md validation for all user stories
|
||||
- [x] T063 Final UX review against ux_reference.md
|
||||
|
||||
---
|
||||
|
||||
@@ -236,30 +256,32 @@
|
||||
6. **STOP and VALIDATE**: Test all P1 stories independently
|
||||
7. Deploy/demo if ready
|
||||
|
||||
### Full Delivery
|
||||
### Full Delivery (P1 + P2 Stories)
|
||||
|
||||
1. MVP First (above)
|
||||
2. Add User Story 3 (Dashboard Hub) → Test independently
|
||||
3. Add User Story 4 (Dataset Hub) → Test independently
|
||||
2. Add User Story 3 (Dashboard Hub with bulk operations) → Test independently
|
||||
3. Add User Story 4 (Dataset Hub with bulk operations) → Test independently
|
||||
4. Add User Story 6 (Settings) → Test independently
|
||||
5. Complete Polish phase
|
||||
6. Final validation
|
||||
|
||||
**Note**: US3 and US4 are now P1 priority due to bulk operations requirements for dashboards and datasets.
|
||||
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
| Metric | Value |
|
||||
|--------|-------|
|
||||
| Total Tasks | 63 |
|
||||
| Total Tasks | 85 |
|
||||
| Setup Tasks | 5 |
|
||||
| Foundational Tasks | 6 |
|
||||
| US1 (Sidebar) Tasks | 6 |
|
||||
| US2 (Task Drawer) Tasks | 8 |
|
||||
| US5 (Top Navbar) Tasks | 5 |
|
||||
| US3 (Dashboard Hub) Tasks | 11 |
|
||||
| US4 (Dataset Hub) Tasks | 7 |
|
||||
| US3 (Dashboard Hub) Tasks | 21 |
|
||||
| US4 (Dataset Hub) Tasks | 17 |
|
||||
| US6 (Settings) Tasks | 8 |
|
||||
| Polish Tasks | 7 |
|
||||
| Parallel Opportunities | 15+ |
|
||||
| Parallel Opportunities | 20+ |
|
||||
| MVP Scope | Phases 1-5 (25 tasks) |
|
||||
|
||||
Reference in New Issue
Block a user