Files
MyHomepage/browser-homepage/orchestration-summary.json
T
g82tt 68be41e7a2 初始提交:浏览器首页 MyHomePage 全栈项目
# 项目概述
个人浏览器首页导航应用,支持书签分类管理、搜索引擎快捷搜索、
必应每日壁纸轮播、前后端分离部署,适配 1Panel 服务器(Docker 模式)。

# 技术栈
- 前端:Vue 3 + TypeScript + Vite + Pinia + Capacitor(Android 打包)
- 后端:.NET 8 + SqlSugar(多数据库) + SQLite/MySQL + Swashbuckle
- 部署:1Panel 应用商店自定义应用(Docker Compose 模式)

# 项目结构
- backend/    .NET 8 API 后端(8 个 Controller + 15 个 Service)
- frontend/   Vue 3 前端(19 个组件 + 9 个 API 模块 + 5 个 Store)
- docker/     Docker 部署文件(后端镜像 + Nginx 反代)
- docs/       部署手册(1Panel 实战版)
- scripts/    E2E 测试脚本

# 已实现功能
- 书签管理:增删改查 + 树形分类 + 拖拽排序 + 主色自适应
- 搜索引擎:8 个内置引擎 + 自定义引擎 + favicon 自动抓取
- 必应壁纸:每日轮播 + 多分辨率自动选择 + 1.6MP 质量优先
- 全局设置:主题/行为/数据/工具 4 分类 + 跨设备同步
- 文件上传:图标/书签/通用(容器持久化 + 跨域 URL 拼接)
- 同步:基于变更日志的设备间数据同步
- 跨域部署:前后端分离 + runtime config.json 无需重新编译

# 进度记录
- 已完成 P0~P52 共 53 个开发节点(详细见 说明文档.md)
- 当前版本:v1.0 部署就绪

# 部署文档
- README.md:项目说明 + 快速开始
- 说明文档.md:完整开发进度(中文)
- docs/DEPLOY.md:1Panel 部署手册(Docker 模式)
2026-07-05 05:09:56 +08:00

209 lines
9.4 KiB
JSON

{
"project": {
"name": "浏览器首页",
"path": "D:\\Code\\MyHomePage\\browser-homepage",
"operation": "create",
"deviceType": "desktop",
"language": "zh-CN",
"dashboardMode": false,
"replicationMode": null,
"sourceUrl": null,
"visualSpecExcerpt": null,
"styleDefinitionBrief": "Dark glassmorphism browser start page, cool neutral dark palette with purple accent, Inter + Noto Sans SC, dense information layout with sidebar navigation and card grid, gaming-inspired aesthetic",
"designRead": "Browser homepage / power users / dark glassmorphism utility / medium-high density / avoid pastel or light themes",
"designDials": {
"layoutVariance": 2,
"motionIntensity": 2,
"visualDensity": 4
},
"styleContinuityAnchors": {
"colorSystem": {
"primaryColorRole": "Purple accent (#6c5ce7) for active states and interactive elements",
"brandHuePolicy": "Dark base palette with single purple brand hue; categories and identities use text/icons/neutral tints",
"stateColors": "success/warning/error/info semantic tokens for status indicators"
},
"shapeSystem": "Rounded corners, radius scale 4-16px, glassmorphism cards with subtle borders",
"typographySystem": "Inter + Noto Sans SC, sans-serif only, clean weight hierarchy 300-700",
"spacingSystem": "Compact 4-8-12-16-20-24 rhythm, dense sidebar + spacious card grid",
"componentLanguage": "Glass cards with translucent backgrounds, subtle borders, no heavy shadows on static elements",
"surfaceAndDepth": "Static surfaces use border + translucent bg; floating layers (dropdown, modal) use deeper shadows alpha 0.25-0.35",
"imageryAndIconography": "SVG icons for navigation, brand favicons for link cards, dark background aesthetic",
"interactionTone": "Subtle hover feedback, smooth transitions, clean focus states"
},
"specsConstraints": null,
"sharedProjectShellContract": {
"navigationShell": "Left sidebar with two-level category navigation, collapsible on mobile",
"primaryColorSystem": "Single purple accent hue #6c5ce7 for active states and primary interactions",
"typographySystem": "Inter + Noto Sans SC, text-xs(11px) to text-3xl(32px), weights 300-700",
"radiusScale": "sm:4px, md:8px, lg:12px, xl:16px, full:9999px",
"surfaceDepthModel": "Static surfaces: border + translucent bg, shadow alpha <=0.05. Floating layers: shadow alpha 0.25-0.35",
"ctaStyle": "Rounded buttons with glass effect, subtle hover transitions",
"alignmentRules": "Left-aligned content areas, centered search bar, grid layout for cards"
},
"generationTree": {
"root": {
"nodeId": "gen-project-shell",
"kind": "project-shell",
"pageIds": ["page-desktop", "page-desktop-settings", "page-mobile"],
"output": "partials/project-shell.html",
"sharedRegions": ["brand css variables", "color palette", "glassmorphism mixin"],
"privateRegions": [],
"mutableSlots": ["pageTitle", "viewportLayout"],
"status": "generated",
"children": [
{
"nodeId": "gen-page-desktop",
"kind": "page-leaf",
"pageIds": ["page-desktop"],
"output": "pages/desktop.html",
"sharedRegions": [],
"privateRegions": ["sidebar with two-level nav", "search bar with engine selector", "link card grid"],
"mutableSlots": ["pageTitle"],
"status": "generated",
"children": []
},
{
"nodeId": "gen-page-desktop-settings",
"kind": "page-leaf",
"pageIds": ["page-desktop-settings"],
"output": "pages/desktop-settings.html",
"sharedRegions": [],
"privateRegions": ["settings popover panel", "theme switch (light/dark/auto)", "accent color picker", "background image picker"],
"mutableSlots": ["pageTitle"],
"status": "generated",
"children": []
},
{
"nodeId": "gen-page-mobile",
"kind": "page-leaf",
"pageIds": ["page-mobile"],
"output": "pages/mobile.html",
"sharedRegions": [],
"privateRegions": ["top row hamburger + search + settings gear", "navigation drawer with avatar/profile", "vertical link list", "FAB"],
"mutableSlots": ["pageTitle"],
"status": "generated",
"children": []
}
]
}
}
},
"designSource": {
"operatingMode": "free-explore",
"libraryIdentity": {
"name": null,
"id": null,
"version": null,
"scope": null,
"path": null,
"versionSource": null
},
"cssFilePath": "D:\\Code\\MyHomePage\\browser-homepage\\colors_and_type.css",
"brandPrefix": "bh",
"themeMode": "dark",
"designDecisionSummary": "Dark glassmorphism theme with purple accent, translucent cards, two-level sidebar navigation, Inter+Noto Sans SC typography",
"styleConstraints": {
"radiusMax": 16,
"spacingBase": 4,
"fontSizeBody": 14,
"fontSizeMin": 11,
"controlHeightDefault": 36,
"controlHeightLarge": 42
},
"productContext": {
"kitType": null,
"productType": "Browser homepage / navigation tool"
},
"actualTokenNameReference": []
},
"pages": [
{
"nodeId": "page-desktop",
"slug": "desktop",
"title": "浏览器首页 - 桌面端",
"htmlSrc": "pages/desktop.html",
"pageIndex": 1,
"stateGroupId": null,
"stateRole": null,
"baseStatePageId": null,
"sharedShellContract": [],
"mutableRegions": [],
"derivedFromHtmlSrc": null,
"derivationType": "original",
"sourcePageId": null,
"sourceHtmlSrc": null,
"pageType": "information-dense",
"businessScenario": "Desktop browser homepage with two-level category sidebar, search bar with engine selector, and link card grid",
"visualNorthStar": "Dark glassmorphism sidebar + translucent card grid, dense information architecture, purple accent highlights",
"compositionPattern": "Two-column asymmetric layout: fixed sidebar (20% width) + scrollable main content (80% width)",
"continuityAnchors": ["dark glassmorphism card style", "purple accent for active states", "Inter + Noto Sans SC typography"],
"libraryRestraintMode": false,
"uiKitPath": null,
"componentPlan": [],
"imagePlan": [],
"chartsRequired": false,
"miniProgramStyle": false,
"qualityRisks": ["dense sidebar navigation may need careful spacing", "two-level nav expand/collapse interaction"]
},
{
"nodeId": "page-desktop-settings",
"slug": "desktop-settings",
"title": "浏览器首页 - 桌面端 - 设置面板",
"htmlSrc": "pages/desktop-settings.html",
"pageIndex": 2,
"stateGroupId": null,
"stateRole": null,
"baseStatePageId": null,
"sharedShellContract": [],
"mutableRegions": [],
"derivedFromHtmlSrc": "pages/desktop.html",
"derivationType": "comparison-from-source",
"sourcePageId": "page-desktop",
"sourceHtmlSrc": "pages/desktop.html",
"pageType": "information-dense",
"businessScenario": "Desktop browser homepage with the settings popover panel opened, showing theme/accent/background controls",
"visualNorthStar": "Same dark glassmorphism base as desktop page, with floating settings popover anchored to the settings button, dimmed background",
"compositionPattern": "Source page layout skeleton + floating settings popover (right-aligned) anchored from the settings button",
"continuityAnchors": ["dark glassmorphism card style", "purple accent for active states", "Inter + Noto Sans SC typography"],
"libraryRestraintMode": false,
"uiKitPath": null,
"componentPlan": [],
"imagePlan": [],
"chartsRequired": false,
"miniProgramStyle": false,
"qualityRisks": ["popover must not overlap sidebar critical content", "background dim layer should not fully hide source context"]
},
{
"nodeId": "page-mobile",
"slug": "mobile",
"title": "浏览器首页 - 移动端",
"htmlSrc": "pages/mobile.html",
"pageIndex": 3,
"stateGroupId": null,
"stateRole": null,
"baseStatePageId": null,
"sharedShellContract": [],
"mutableRegions": [],
"derivedFromHtmlSrc": null,
"derivationType": "original",
"sourcePageId": null,
"sourceHtmlSrc": null,
"pageType": "information-dense",
"businessScenario": "Mobile browser homepage with single-row top bar (hamburger + search + settings gear), avatar/profile relocated into hamburger drawer, vertical link list and FAB",
"visualNorthStar": "Compact mobile-first dark layout, single-row top bar with hamburger + search + gear, drawer for categories + profile",
"compositionPattern": "Single-column mobile layout: single-row top bar + horizontal category tabs + vertical link list + bottom-right FAB",
"continuityAnchors": ["dark glassmorphism card style", "purple accent for active states", "Inter + Noto Sans SC typography"],
"libraryRestraintMode": false,
"uiKitPath": null,
"componentPlan": [],
"imagePlan": [],
"chartsRequired": false,
"miniProgramStyle": false,
"qualityRisks": ["top row three elements must not crowd search input", "touch targets must be >= 44px"]
}
],
"assets": [],
"wiringPlan": [],
"hiddenInteractionPlan": []
}