啡跃 Endoleap

本地 Next.js App Router + TypeScript + Tailwind CSS + shadcn/ui 项目。首页和账户页参考 qyof 的 PROMPT 文件,工作台结合双侧栏画布、Notion 的留白与 Miro 的空间组织方式。Other Designs 用于首页叙事与版式参考。

项目目录:/Users/zzyang/endoleap。

启动

npm ci
npm run dev

默认仅监听本机 localhost:17321。生产模式:npm run build && npm start。

  • 首页:/
  • 登录、注册:/login
  • 登录回调:/auth/callback
  • 真实工作台:/dashboard
  • 本地演示:/dashboard?demo=1

路由结构

  • src/app/layout.tsx:根布局、中文语言标记、全局样式与页面元信息。
  • src/app/page.tsx:首页。
  • src/app/login/page.tsx、src/app/auth/callback/page.tsx:账户页与登录回调。
  • src/app/dashboard/page.tsx:工作台入口,以 Suspense 包裹读取查询参数的客户端工作台。
  • src/app/api/**/route.ts:Foundry 代理与 OAuth 跳转,使用 App Router Route Handlers。

配置

复制 .env.example 为 .env.local,按实际部署填写:

  • FOUNDRY_API_ORIGIN:仅供 Next 服务端请求后端,默认 https://api.foundry.entroia.com。
  • NEXT_PUBLIC_FOUNDRY_PROJECT:项目标识,默认 endoleap。

Slack Client Secret、Signing Secret、Verification Token、用户令牌与 app token 均不需要放入此前端。浏览器调用同源 Next API,由服务端转发到 Foundry。Foundry 会话保存在 HttpOnly / SameSite=Lax Cookie,生产 HTTPS 反向代理需传 X-Forwarded-Proto=https。不要将原始会话写入客户端存储。

Google / Slack 的提供方回调仍是 Foundry 后端地址;后端的项目回调映射必须指向本前端 /auth/callback。协议、主机名、端口必须与启动第三方登录时一致,否则 sessionStorage 中的 verifier 无法恢复。正式账号授权、邮件验证与 OAuth 全流程尚未完成真人验收;HTTP 302 跳转成功不能代表登录成功。

当前功能与范围

  • 响应式首页、锚点导航与 FAQ。
  • 邮箱注册 / 登录 / 邮件验证兑换,Google 和 Slack 的 PKCE 登录入口及回调处理。
  • 真实用户资料、空间列表与创建、画布列表与创建。资料和空间并行读取;首次创建画布时自动建立个人空间。
  • 本地演示有示例画布、搜索、新建、画布界面、笔记浏览器保存、缩放、待办勾选和临时文字节点。
  • 图形编辑、连接线、分享、Agent、收藏及完整布局持久化尚未接入。画布界面是交互预览,不是完整编辑器;演示数据不写入线上。
  • 本地演示仅用于查看界面,不提供后端认证与权限。

Figma 原始 Logo、人物插画与图标已下载到 public/assets,不依赖临时 Figma URL。品牌保持啡跃 Endoleap;shadcn Button / Dialog 使用官方 registry 源码。依赖版本固定,package-lock.json 可用于 npm ci。

验证

npm run build
node tests/api-smoke.mjs

API 测试使用本机临时后端和独立前端进程,检查会话 Cookie、令牌不泄漏、同源校验和路径白名单,不访问线上账号。构建需先完成。冒烟测试还覆盖所有页面地址、元信息、OAuth 跳转、请求体限制及退出会话。此前的浏览器验收覆盖登录/注册切换、演示画布创建、搜索空状态、笔记保存、桌面与 390px 手机布局;本次迁移的验证结果见 VALIDATION.md。

若执行环境限制 Turbopack 的 CSS 工作进程绑定本地端口,可使用官方 Webpack 模式:npm run build -- --webpack。

项目已同步至 ssh://git@gitea.entroia.com:22222/Zayden-Jung/endoleap.git;尚未部署。

性能分析、实测耗时和修复说明见 PERFORMANCE.md。 流程回归可在支持 TypeScript 类型擦除的 Node 版本执行:node --experimental-strip-types --test tests/workspace.test.mjs。

S
Description
No description provided
Readme 14 MiB
Languages
TypeScript 50.7%
JavaScript 46.5%
CSS 2.8%