# thingsvis **Repository Path**: ThingsPanel/thingsvis ## Basic Information - **Project Name**: thingsvis - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-05-22 - **Last Updated**: 2026-05-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ThingsVis **专为现代 Web 与物联网(IoT)打造的数据可视化引擎与大屏工作台。** [English](./README_EN.md) · [官方文档](./apps/docs/guide/introduction.md) · [Widget 开发规范](./apps/docs/development/quick-start.md)

ThingsVis Screenshot 1 ThingsVis Screenshot 2

ThingsVis Screenshot 3 ThingsVis Screenshot 4

## 什么是 ThingsVis? ThingsVis 是面向现代 Web 与物联网场景的数据可视化引擎与大屏工作台,适合构建工业看板、监控大屏、数字孪生页面、设备控制面板和可嵌入式可视化模块。与偏报表分析、经营洞察的传统 BI 工具不同,ThingsVis 更关注复杂可视化界面、实时交互、工程化扩展和业务系统集成能力。 ThingsVis 的优势: - AI 友好:基于 Zod 收敛统一 Schema 契约,视图描述结构化、可校验,天然适合大模型生成、修改和回放。 - 扩展灵活:提供 Widget 沙箱机制与 CLI/SDK,开发者可以像开发普通 React 包一样独立构建和发布业务组件。 - 集成轻量:核心能力沉淀为前端运行时 Kernel,可通过 SDK、组件或 iframe 方式嵌入现有 Web 系统与 SaaS 平台。 - 交互优先:不仅支持展示实时数据,还支持订阅、联动、动作触发和设备控制,适合需要闭环操作的 IoT 场景。 - 工程友好:采用 Monorepo 架构,清晰拆分 Studio、Kernel、Schema 与工具链,便于二次开发、维护与持续交付。 ThingsVis 适合的场景: - 工业设备监控、产线看板、园区运营中心等实时大屏场景; - 能源、楼宇、物联网设备管理等需要状态联动与控制闭环的业务场景; - SaaS、低代码平台或行业系统中需要嵌入可视化能力的集成场景; - 需要通过 AI 生成、调整和编排可视化页面的智能化场景。 --- ## 快速开始 ### 前置环境要求 - Node.js `>= 20.10.0` - pnpm `>= 9.0.0` ### 启动本地前端开发环境 仅需三步,体验隔离式的纯前端开发者沙箱(包含 Studio 画布与 Kernel 引擎核心): ```bash pnpm install pnpm build:widgets pnpm dev ``` 如需体验涉及真实认证授权、资源管理的完整闭环全栈服务,请启动: ```bash pnpm dev:app ``` ### 首次启动完整服务时,先初始化数据库与管理员账号 `pnpm dev:app` 会同时启动 Studio、Kernel 和 Server,但不会替你创建本地 PostgreSQL 数据库里的首个管理员用户。首次使用前,请先完成以下初始化: 1. 复制 `apps/server/.env.example` 为 `apps/server/.env`,并填好 `DATABASE_URL`、`AUTH_SECRET` 等必要环境变量。 2. 确保本地 PostgreSQL 已启动,并且 `DATABASE_URL` 指向可写库。 3. 在 `apps/server` 目录执行数据库建表与种子脚本: ```bash cd apps/server pnpm db:push pnpm seed ``` 默认会创建以下管理员账号: - 邮箱:`admin@thingsvis.io` - 密码:`admin123` 如需自定义初始化账号,可在 `apps/server/.env` 中覆盖以下环境变量后重新执行 `pnpm seed`: ```bash SEED_ADMIN_EMAIL=admin@thingsvis.io SEED_ADMIN_PASSWORD=admin123 SEED_ADMIN_NAME=Admin ``` 完成后回到仓库根目录,再启动完整开发环境: ```bash pnpm dev:app ``` > 如果登录页出现“服务器出错,请稍后重试”,通常是因为 `apps/server` 未成功启动、数据库未执行 `pnpm db:push`,或尚未运行 `pnpm seed` 创建初始管理员。 > **常用工程命令一览**: > - `pnpm docs:dev`:在本地挂载官方文档站。 > - `pnpm typecheck` & `pnpm lint`:执行项目 TypeScript 全局检查与代码规则校验。 > - `pnpm test`:执行单元测试套件。 --- ## 开发者体验:五分钟构建你的专属 Widget 我们重新定义了在大屏平台中扩展代码的技术体验。创建一个独立 Widget 犹如起草一个基础 React 项目: ```bash pnpm vis-cli create ``` 基于脚手架,我们为你规划了极度清晰的三步研发路径: 1. **Schema 契约**:在 `schema.ts` 中基于 Zod 提供精准的数据属性检验契约。 2. **可视面板**:在 `controls.ts` 中注册挂载交互属性控制面板。 3. **渲染视图**:在 `index.tsx` 提供 React `defineWidget` 完成真正的内容逻辑与样式。 深入探索这套隔离与插拔机制,请参阅:[CLI 架构与指南](./tools/cli/README.md) 或 [Widget SDK 说明](./packages/thingsvis-widget-sdk/README.md)。 --- ## 核心技术栈与代码组织 (Architecture) ThingsVis 是现代化的 Monorepo(基于 Turborepo),清晰分离了核心状态机、共享协议与运行时: - **`apps/studio/`**: 承载了可视化的 Studio 画布编辑器入口与主视图。 - **`packages/thingsvis-kernel/`**: 高度解耦的无头(Headless)运行时环境及其状态管理核心。 - **`packages/thingsvis-schema/`**: 定义了整套平台运行生命周期与组件间通信的全局契约及类型。 - **`tools/cli/`**: 内置的开发者利器 —— 强大的 `vis-cli` 脚手架工具。 > 查看更详尽的设计参考: > - [系统全局变量使用指南](./apps/docs/guide/variables.md) > - [第三方集成与嵌入指南](./docs/thingspanel-integration-guide.md) > - [大屏标杆示例剖析](./apps/docs/guide/showcase-dashboard.md) --- ## 参与开源共建 (Contributing) ThingsVis 渴望更多开源开发者的想法碰撞!在您准备好提交第一份 PR 之前,请务必阅读我们的 [贡献指引(CONTRIBUTING.md)](./CONTRIBUTING.md)。 - 🐞 **上报缺陷**:请通过统一规范的 [Bug 追踪模板](./.github/ISSUE_TEMPLATE/bug-report.yml) 反馈给维护团队。 - ✨ **提出新特性**:如你有令人激动的创意,欢迎通过 [功能规划模板](./.github/ISSUE_TEMPLATE/feature-request.yml) 一同讨论。 - 📝 **代码提交规范**:我们严格遵循 [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/)。若 PR 涉及用户可见界面或交互操作的变更,我们非常期待您能附带操作**截图**或**录屏**。 > 对于任何可能涉及框架安全设计的漏洞上报,请参照执行我们的 [官方安全策略 (SECURITY.md)](./SECURITY.md)。 --- ## 许可证 (License) ThingsVis 在 [Apache-2.0 许可证](./LICENSE) 下开源发布。