# Phase 1: Import/Export **Status:** ✅ Done **Parent plan:** [PLAN.md](./PLAN.md) **Domain:** fullstack ## Tasks - [x] Task 1: Create `src/lib/server/services/exportService.ts` — export all data (apps, boards, sections, widgets, groups, settings) as JSON - [x] Task 2: Create `src/lib/server/services/importService.ts` — import JSON with conflict resolution (skip/overwrite) - [x] Task 3: Create `src/routes/api/admin/export/+server.ts` — GET endpoint, returns JSON file download - [x] Task 4: Create `src/routes/api/admin/import/+server.ts` — POST endpoint, accepts JSON upload - [x] Task 5: Update admin settings page — add Import/Export section with download button and file upload - [x] Task 6: Create `src/lib/components/admin/ImportExportPanel.svelte` — UI with export button, file picker, preview, and import button - [x] Task 7: Add Zod schema for validating import data structure - [x] 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.