# SuperBI **Repository Path**: ddxygq/SuperBI ## Basic Information - **Project Name**: SuperBI - **Description**: 基于SpringBoot的智能BI系统。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: https://gitee.com/ddxygq/SuperBI - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-10-16 - **Last Updated**: 2026-10-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SuperBI v1.1.0 新安装请按 [数据库说明](docs/sql/README.md) 导入完整脚本;下文归档增量脚本仅供已有数据库升级参考,已导入完整脚本时不要重复执行。 采用多模块单应用的后端结构,前端位于 `superbi-vue`,独立构建和部署。 ## 模块职责 | 模块 | 职责 | | --- | --- | | superbi-admin | 唯一启动入口、应用配置、HTTP 安全配置、健康检查 | | superbi-system | 用户、角色、用户组、授权、系统设置、审计 | | superbi-analysis | 数据源、元数据、查询、保存的分析、仪表盘、集合 | | superbi-common | 无业务依赖的公共工具、通用异常和分页模型 | | superbi-vue | 前端应用,不加入 Maven modules | 依赖方向:`admin → system / analysis → common`。业务模块不能依赖 admin,common 不能依赖业务模块。system 和 analysis 暂时互不依赖;以后通过明确的授权接口协作,避免循环依赖。 ## Java 包结构 统一根包为 `com.ddxygq.superbi`,当前启动类位于 admin 包,通过 `scanBasePackages = "com.ddxygq.superbi"` 显式扫描各业务模块的组件。当前没有 JPA 实体;以后引入时需另行配置实体与 Repository 扫描范围。 ```text superbi-admin/src/main/java/com/ddxygq/superbi/ admin/SuperbiApplication.java admin/config/SecurityConfig.java admin/web/HealthController.java superbi-system/src/main/java/com/ddxygq/superbi/system/ user/ role/ permission/ audit/ superbi-analysis/src/main/java/com/ddxygq/superbi/analysis/ datasource/ metadata/ query/ question/ dashboard/ collection/ superbi-common/src/main/java/com/ddxygq/superbi/common/ ``` 业务服务按功能放在 system 和 analysis,admin 中的 API 门面协调两者,避免业务模块互相依赖。首版持久化使用参数化 JdbcTemplate;原有 JPA 依赖保留,但不自动创建或更新表。 ## 数据与依赖 - system 管理系统数据和组授权;analysis 管理数据源、查询和分析配置;均使用应用数据库的事务进行持久化。 - admin 直接声明 Web、Security 和当前应用数据库的 MySQL 运行驱动。业务模块不负责选择应用数据库驱动。 - 后端不使用 Thymeleaf;Vue 前端提供登录、管理、查询、分析可视化和仪表盘页面。 - 应用数据库保存用户、权限和分析配置;用户连接的分析数据源独立管理,不替换应用默认 DataSource。 - common 保持轻量,暂不引入 Spring、JPA 或数据库驱动。 - 内部依赖版本在父 POM 集中管理;只有 admin 使用 Spring Boot 打包插件。 ## 构建与启动 #### 后端启动 需要 JDK 17 或更高版本。在项目根目录执行: ```powershell mvn clean package -DskipTests # 打包完成后,执行jar包 java -jar superbi-admin/target/superbi-admin.jar ``` 使用自定义 Maven settings 和本地仓库时,附加已有的 `-s` 和 `-Dmaven.repo.local` 参数。 IDEA 重新加载根 POM 后,运行 `com.ddxygq.superbi.admin.SuperbiApplication`。 当前 `/health` 允许匿名访问,返回纯文本 `index`。业务接口位于 `/api`,使用数据库用户、BCrypt 密码哈希、Session 登录与 CSRF 保护。初始化和使用步骤见 [首版使用指南](docs/mvp-guide.md)。 当前启用 dev profile,启动前应检查本地数据库配置。真实数据库密码应通过环境变量或本地未提交配置提供。 #### 前端启动 在 `superbi-vue` 目录中执行: `npm run dev`;开发服务器已代理 `/api` 到 `localhost:8080`。 打开浏览器:http://localhost:5173/ ## 首版已实现 登录与用户权限 → 数据源连接 → 元数据读取 → SQL 查询 → 保存分析及可视化配置 → 仪表盘。 已建001表结构后,额外执行 [002-analysis-dashboard.sql](docs/sql/archive/002-analysis-dashboard.sql),创建分析、仪表盘和卡片三张表。应用不会自动执行建表脚本。 支持 MySQL、SQLite、Oracle、SQL Server 分析数据源、只读 SELECT、表格/柱状图/折线图/数值展示和有序仪表盘卡片。连接格式、适用版本与测试方法见 [数据源说明](docs/datasources.md)。首页采用顶部工具栏和集合侧栏,分析与仪表盘可保存至公共/个人集合,头像进入紧凑个人中心。 本次集合升级需执行 [003-collection-scope.sql](docs/sql/archive/003-collection-scope.sql),已有内容保持私有。集合可见性与数据源授权独立校验;目前提供两个固定集合,尚无自定义目录、细粒度集合授权、可视化查询构建器或拖拽布局。详见 [首页与集合说明](docs/collections-and-home.md)。 用户管理支持创建时选择用户组、编辑资料与所属组,复用已有表结构。详见 [用户管理说明](docs/user-management.md)。 左侧“数据 → 数据库”可浏览所有启用且已授权的数据库,选择后查看表/视图、搜索筛选、查看字段并开始分析。详见 [数据库浏览说明](docs/database-browser.md)。 前端页面路径及部署回退配置见 [前端路由说明](docs/frontend-routing.md)。 管理设置新增基础设置开关,首次保存前执行 [004-system-settings.sql](docs/sql/archive/004-system-settings.sql),使用说明见 [基础设置](docs/basic-settings.md)。 ## 应用示例图 ![](docs/img/主页.png) ![](docs/img/设置.png) ![](docs/img/数据源.png) ![](docs/img/数据库.png) ![](docs/img/集合.png) ![](docs/img/仪表盘.png) ![](docs/img/分析报表.png) ![](docs/img/sql分析.png) ![](docs/img/柱状图.png) ![](docs/img/饼图.png)