Files
web-app-launcher/plans/phase-3-advanced-features/phase-1-import-export.md
T
alexei.dolgolyov c6a7de895d feat(phase3): import/export, sparklines, user theme overrides
- JSON import/export with conflict resolution (skip/overwrite) + admin UI
- Ping history sparklines on AppWidget and AppCard (24h, 288 points)
- Hourly cleanup job for old AppStatus records
- User theme preferences (hue, saturation, mode, background, locale)
- Settings page with ThemeCustomizer (sliders, toggles, live preview)
- Prisma migration for user preference fields
- i18n translations for all new strings (EN/RU)
2026-03-25 00:51:01 +03:00

1.4 KiB

Phase 1: Import/Export

Status: Done Parent plan: PLAN.md Domain: fullstack

Tasks

  • Task 1: Create src/lib/server/services/exportService.ts — export all data (apps, boards, sections, widgets, groups, settings) as JSON
  • Task 2: Create src/lib/server/services/importService.ts — import JSON with conflict resolution (skip/overwrite)
  • Task 3: Create src/routes/api/admin/export/+server.ts — GET endpoint, returns JSON file download
  • Task 4: Create src/routes/api/admin/import/+server.ts — POST endpoint, accepts JSON upload
  • Task 5: Update admin settings page — add Import/Export section with download button and file upload
  • Task 6: Create src/lib/components/admin/ImportExportPanel.svelte — UI with export button, file picker, preview, and import button
  • Task 7: Add Zod schema for validating import data structure
  • Task 8: Add i18n translations for import/export strings (EN/RU)

Handoff to Next Phase

All import/export functionality implemented. Export service gathers all apps, boards (with sections/widgets), groups, and system settings into a versioned JSON structure. Import service validates with Zod, supports skip/overwrite conflict resolution, and runs in a Prisma transaction. Admin-only API endpoints with Content-Disposition for file download. UI panel with file upload, JSON preview, mode selector, and status feedback.