{"repo":"shuangbofu/voyage-bi","free":true,"listed":false,"github":"https://github.com/shuangbofu/voyage-bi","clone":"git clone https://github.com/shuangbofu/voyage-bi.git","description":"Voyage BI 是一个开源的可以定制化开发的开源BI平台/工具，通过配置数据源连接，开发数据集，图表开发中拖拉拽方式快速制作看板/报表并分享到外部。提供主题定制、组件定制、自由筛选联动等功能","language":"TypeScript","stars":35,"topics":["bi","java","react","tailwindcss","data-visualization","bigdata-intelligence","typescript"],"license":null,"category":"databases-storage","readme_excerpt":"可以定制化开发的开源BI平台 Voyage BI是什么？ Voyage BI 是一个开源的可定制化开发的BI工具，通过配置数据源连接，开发数据集，图表开发中拖拉拽方式快速制作看板/报表并分享到外部。提供主题定制、组件定制、自由筛选联动等功能。 项目背景与开发初衷 在数据可视化平台/看板报表的开发过程中，我逐渐意识到传统BI方案对于开发者实际开发中存在多个层面的限制。 1. 定制化需求与通用方案之间的矛盾 企业对看板的需求往往具有高度的个性化和业务相关性，但现有BI产品(腾讯BI、有数、海致BDP、DataEase、davinci）大多依赖固定图表类型与有限的参数体系。尽管提供了可配置能力，仍难以支持不同业务场景下对数据逻辑、交互行为和视觉样式的多样化诉求。这种“千人千面”的真实需求，最终只能被迫适配“千人一面”的通用方案，灵活性严重不足。 2. 技术架构的迭代困境 开源层面，传统BI组件在架构层面也存在明显短板。视图层与业务逻辑的深度耦合、样式系统缺乏扩展性，使得定制开发常常需要对原有组件进行大范围改动，甚至接近重构，导致二次开发的成本随复杂度呈指数级增长。这种架构模式不利于敏捷迭代，也难以在快速响应业务变化的前提下保持代码质量和可维护性。 3. 数据准备层的体验断层 现有的数据集模块大多设计为可视化建模界面，试图兼顾技术用户与业务用户的使用场景。但实际效果并不理想：对熟悉SQL的开发者来说，可视化操作效率不如直接编写查询；而对非技术用户而言，底层的数据抽象和逻辑设置仍然存在门槛，无法真正实现“所见即所得”。这种模糊定位的“中间态”设计，往往陷入两头不讨好的局面。 4. 我的开发思路与动机 基于以上问题，我在项目中尝试从两个方向进行改进： - 前端层面：在通用图表组件的基础上，构建出一套「可定制的通用组件体系」，既保持组件的结构统一与可复用性，也支持对样式、交互逻辑的灵活扩展，以适配不同场景的看板需求。 - 后端与数据逻辑层面：设计支持「自由变量、外部筛选器与图表间联动」的机制，允许开发者在通用数据接口的基础上动态控制图表行为和数据逻辑。这种方式可以在保持接口通用性的前提下，实现复杂的业务定制与看板联动策略。 虽然目前在自定义组件与交互设计上仍有优化空间，还有许多可以改进的地方。但这正是我计划开源该项目的初衷之一：希望通过实践沉淀一套灵活、可扩展、适合真实业务需求的数据可视化解决方案， 欢迎有类似思考的开发者共同交流 。 对比常用BI 功能维度 Voyage BI DataEase社区版 全局支持浅色&深色模式 支持（图表支持浅色&深色） 支持（仅图表浅色&深色） 组件定制化开发 支持图表组件的配置化定制开发 组件类型固定，配置项有限，无法深度定制 主题支持 支持自由主题开发 提供模板市场 数据集开发 支持动态代码块和变量参数自由开发 复杂嵌套SQL会报错 联动机制 支持事件与数据集变量联动 仅支持数据联动，无法自由控制 筛选能力 支持灵活筛选 只有全局筛选，且只能关联数据集字段，不够自由 数据源环境支持 多环境切换 仅支持单环境 --- 功能架构 --- 👓 界面预览 gif mobile page design page --- 🛠️ 技术栈 前端 - React + TypeScript + Umi.js - Tailwind CSS + Ant Design - ECharts（图表库） 后端 - Spring Boot + Java - MyBatis-Plus（ORM） - JSQLParser（SQL 解析） - Sa-Toke","default_branch":null,"files":null,"tree":[],"storefront":"/r/shuangbofu","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/shuangbofu/voyage-bi/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}