www_site/docs/phase-1-report.md

155 lines
9.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Phase 1 设计系统与官网骨架报告
日期2026-09-08
范围P1-01 至 P1-06
状态官网骨架完成真实认证、TTS、CMS 和管理业务未实现。
## 1. 交付摘要
- 建立 Next.js App Router + TypeScript + Tailwind CSS 4 本地应用。
- 建立 KAOTINGS 深色设计系统:`#0D0F12` 背景、橙 `#FF6A00`、蓝 `#1677FF`、青 `#00D1E6`、近白文字及灰阶变量。
- 使用正式 Logo 的网页公开副本 `public/brand/logo_bt.png`AI/PDF 原档仍不直接公开。
- 完成响应式导航、移动导航、页脚、跳过导航链接、键盘焦点样式和减少动效处理。
- 首页以蓝牙、音频、嵌入式和硬件产品为主体AI Lab/TTS 保持轻量入口。
- 完成产品列表、产品详情模板、关于、联系、TTS、登录、注册、账户和管理页面布局。
- 所有缺少真实资料的产品内容集中在 `lib/content.ts`,并使用“开发占位”标识;没有虚构规格、联系方式、资质或操作成功。
## 2. P1 工作包
| 编号 | 状态 | 实现位置 | 验证 |
| --- | --- | --- | --- |
| P1-01 | 已完成 | `app/globals.css`、`components/ui.tsx` | 设计令牌、按钮、输入、焦点、间距和响应式规则已集中定义 |
| P1-02 | 已完成 | `components/site-header.tsx`、`components/site-footer.tsx`、`app/layout.tsx` | 桌面导航、移动菜单、账户入口、页脚和跳过导航已实现 |
| P1-03 | 已完成 | `app/page.tsx` | Hero、硬件产品、技术能力、AI Lab、联系入口已实现 |
| P1-04 | 已完成 | `app/products/`、`app/about/`、`app/contact/`、`lib/content.ts` | 列表和详情模板由集中式占位数据驱动 |
| P1-05 | 已完成(布局) | `app/tts/`、`app/login/`、`app/register/`、`app/account/`、`app/admin/` | 加载/空/待接入/禁用/错误语义已展示;真实业务未接入 |
| P1-06 | 功能实现与构建检查完成;真实视觉验收待完成 | `app/layout.tsx`、`app/not-found.tsx`、全局样式 | typecheck、build、路由冒烟和响应式源码检查通过真实浏览器桌面/移动验收未完成 |
## 3. 页面清单
| 路由 | 当前能力 |
| --- | --- |
| `/` | 品牌首页产品为主AI Lab 为入口 |
| `/products` | 开发占位产品列表和分类视觉 |
| `/products/product-placeholder-a` | 产品详情模板 |
| `/products/product-placeholder-b` | 产品详情模板 |
| `/about` | 公司定位和原则,未虚构公司履历 |
| `/contact` | 联系信息边界和待确认状态 |
| `/tts` | TTS 工作台布局,控件禁用,不调用服务 |
| `/login`、`/register` | 认证表单布局,提交禁用 |
| `/account` | 账户、权益、额度和历史空状态 |
| `/admin`、`/admin/users`、`/admin/tts` | 管理后台布局和禁用状态 |
| `404` | 友好 Not Found 页面 |
## 4. 占位数据规则
所有开发占位内容集中在 `lib/content.ts`。当前只使用:
- `产品资料待补充 A/B` 作为模板标识,不作为正式产品名称。
- `无线音频`、`蓝牙配件` 作为待确认分类示意,不包含规格和性能承诺。
- CSS 抽象产品视觉只用于检查版式,不冒充真实产品图片。
- 联系页、页脚和关于页明确说明正式联系方式和公司资料待确认。
后续替换时只需先替换内容适配器Phase 4 接入 CMS 时不应重写页面模板。
## 5. 本地验证
已执行:
- `npm install`:安装 46 个依赖包,审计结果为 0 vulnerabilities。
- `npm run typecheck`:通过。
- `npm run build`:通过,全部静态页面生成成功。
- 本地 `next start` 动态端口启动:成功,无启动错误。
- HTTP 冒烟首页、产品列表、两个产品详情、关于、联系、TTS、登录、注册、账户、管理首页、用户管理、TTS 管理和 Logo 静态资源均返回 `200`
- 响应式源码检查:容器、断点、移动导航、移动端排列、键盘焦点和 `prefers-reduced-motion` 已覆盖。此项是源码检查,不等同于实际设备视觉验收。
当前执行环境对固定本地端口 `3000`、`3100`、`3210` 返回 Windows `EACCES`;动态端口可启动,因此没有修改系统端口策略。当前环境没有可用的 Chrome、Edge、Firefox 或既有 Playwright尚未完成真实桌面/移动浏览器视觉验收,也未生成截图。该项明确交由测试站浏览器或用户电脑/手机验收,不将源码检查写成设备验收通过。
## 6. 最小测试部署方案
### 6.1 本阶段部署范围
只部署官网骨架不部署数据库、Redis、TTS、Worker、CMS 或认证服务。页面中的真实业务入口保持禁用或预览说明。
### 6.2 服务器所需软件
- Ubuntu 24.04 已有,建议安装 Node.js `20.9+`,当前项目本地使用 Node.js `24.11.1` 验证。
- npm 随 Node.js 提供。
- 不需要 PostgreSQL、Redis、对象存储、TTS 或 CMS。
- 可先不安装 Nginx/Caddy直接由 `next start` 提供局域网 HTTP 验证。
### 6.3 部署目录和命令建议
在权限未落实前不执行。为避免第一阶段申请 root 部署目录,可优先评估用户目录:
```text
/home/flym/kaotings-www
```
建议流程:
```bash
npm ci
npm run build
npm run start -- -H 0.0.0.0 -p 3000
```
访问地址:`http://192.168.199.22:3000/`
### 6.4 权限和端口
- 文件复制到 `/home/flym/kaotings-www` 可由 `flym` 用户完成,前提是目录由该用户拥有。
- 安装 Node.js、配置系统级进程、开放防火墙端口或绑定受控服务可能需要 sudo/管理员权限。
- 当前 `flym` 属于 sudo 组,但非交互 sudo 仍需要额外认证;本次未安装或修改服务器服务。
- 最小访问端口SSH `22` 用于运维,应用 TCP `3000` 仅允许局域网测试来源。
- 本阶段不开放 80/443不配置正式域名或 HTTPS认证和生产发布前仍必须完成可信 HTTPS。
### 6.5 测试部署退出条件
- 局域网浏览器能打开首页、产品模板、关于、联系和所有预览入口。
- 仅显示开发占位内容,不显示虚构联系方式、产品规格或成功状态。
- 服务器重启或进程重启后的启动方式已记录;正式部署前再替换为受控进程管理和反向代理。
## 7. 部署前核实状态
本方案已复核:本轮只部署 Next.js 官网骨架,所需新增软件为 Node.js 20.9+ 与 npm不安装 PostgreSQL、Redis、TTS、Worker、CMS 或对象存储。服务器变更前需要确认 Node.js 安装权限、`/home/flym/kaotings-www` 写权限、TCP/3000 局域网访问权限,以及后续进程保持方式。当前尚未执行服务器安装或部署。
## 8. 测试站部署前实测
本次通过已确认的 SSH 主机执行只读核实:
- `/home/flym` 可写,适合作为用户级部署目录;`/home/flym/kaotings-www` 尚未创建。
- 未安装 Node.js 和 npm无法执行 `npm ci`、`npm run build` 或 `next start`
- `flym``sudo` 组,但 `sudo -n -l` 返回需要密码,当前没有可供自动部署使用的非交互 sudo 权限。
- 从开发机访问 TCP/3000 失败,当前没有应用监听或放行该端口。
- 本次未安装软件、创建服务、开放端口或启动测试站。
因此当前部署阻断项是:管理员需要安装 Node.js 20.9+ 和 npm或提供用户目录可用的 Node.js同时需要允许 `192.168.199.0/24`(或实际测试网段)访问 TCP/3000。若要求系统级服务或防火墙变更还需要 sudo/管理员权限。权限落实后再执行最小部署,并提供 `http://192.168.199.22:3000/` 实际访问结果和真实浏览器视觉验收记录。
## 9. 最小测试部署结果
服务器变更权限已落实,本次已完成官网骨架部署:
- 安装 Node.js `v24.11.1` 和 npm `11.6.2`未安装数据库、Redis、TTS、Worker、CMS 或对象存储。
- Node.js 官方压缩包已在服务器端完成 SHA-256 校验后安装到 `/opt`,命令链接位于 `/usr/local/bin`
- 应用目录:`/home/flym/kaotings-www`。
- 执行 `npm ci``npm run build`,构建通过,全部静态路由生成成功。
-`flym` 用户启动 `next start`,监听 `0.0.0.0:3000`;本次未创建 systemd 服务,重启后不会自动拉起。
- 开发机访问 TCP/3000 成功。
- 首页、产品列表、两个产品详情、关于、联系、TTS、登录、注册、账户、管理首页、用户管理、TTS 管理和 Logo 静态资源均从测试机返回 HTTP `200`
- 当前访问地址:[`http://192.168.199.22:3000/`](http://192.168.199.22:3000/)。
## 10. 真实浏览器视觉验收
本执行环境没有可用的 Chrome、Edge、Firefox、Playwright 或截图工具,因此本轮没有生成桌面/移动截图,也不将 HTTP `200` 或源码响应式检查写成视觉验收通过。
请在桌面浏览器和手机浏览器访问上方地址,重点检查:
- 深色背景、橙蓝青配色、正式 KAOTINGS Logo 和导航布局。
- 桌面导航与移动端折叠菜单、首页产品主体和 AI Lab 轻量入口。
- 产品列表、两个产品详情模板和开发占位标识。
- `/tts`、`/login`、`/register`、`/account`、`/admin` 的空状态、禁用状态和预览提示。
- 移动端是否有横向溢出、文字截断、焦点不可见或触控区域过小。
上述人工检查完成前Phase 1 的真实视觉验收保持“待完成”。