仪表板展示 | X-lab开放实验室GitHub开源项目洞察大屏
背景介绍
X-lab开放实验室是一个开源软件产业开放式创新的共同体,由来自国内外著名高校、创业公司、部分互联网与IT企业的专家学者与工程师所构成,目前已在包括开源治理标准制定、开源社区行为度量与分析、开源社区流程自动化、开源全域数据治理与洞察等方面做出了较有影响力的工作。
OpenLeaderBoard是X-lab开放实验室旗下的开源项目,它是一个全球开源领导力排行榜,基于一套科学、公正、透明的方法生成全球开源项目、开源企业、开源贡献者的排行榜单。OpenLeaderBoard对GitHub上的企业、项目以及开发者进行了活跃度和影响力的排名。
OpenDigger则是X-lab实验室主导的开源生态数据分析核心项目,负责与开源测量学相关的一切数据、指标、模型、算法等落库与实现。作为一个具有共识性的实施标准工具集,当前OpenDigger项目已经在木兰社区下面进行孵化与培养,并服务于包括木兰社区、开放原子基金会、互联网企业、COSS 企业、投资机构、媒体等不同的组织。
X-lab开放实验室需要对全球开源项目的相关数据指标进行多维度的展示,因此希望制作一个开源项目洞察大屏,在大屏中展示开源项目的不同指标,例如项目关注度、巴士系数、项目参与人数、Star/Fork总数、Star/Fork新增等指标,让关注项目的人可以了解整个开源项目的具体情况。
要在大屏上展示这么多的指标,就需要考虑数据怎么来?数据如何展示?什么样的项目适合OpenLeaderboard?基于这些问题,X-lab开放实验室开始进行项目选型,从数据展示、数据源接入、是否适合OpenLeaderboard、是否适合X-lab开放实验室等各个维度进行考察,希望要找到跟目标和要求相契合的数据可视化产品。
大屏介绍
GitHub开源项目洞察大屏基于DataEase(https://github.com/dataease/dataease)实现OpenLeaderBoard开源项目各指标的分析展示,包含了被观察开源项目的影响力、关注度、活跃度、巴士系数(即累计达到项目50%贡献度的开发者数量)、项目参与人数、Star/Fork总数、Star/Fork新增等指标。
对于OpenLeaderBoard来说,对数据可视化分析工具的需求包括:首先,要能够直观地展示开源项目的质量、进展和问题等项目整体情况,帮助社区及时发现和解决问题;其次,是展现开源项目关注度和活跃度,以激励社区成员参与项目开发和维护,促进社区成员的参与和贡献;最后,呈现开源项目数据和指标监控,这样做可以提高项目的质量和透明度,促进项目的发展和推广。
以DataEase开源项目为例,其开源项目洞察大屏的效果如下图所示。
为什么选择DataEase?
在进行BI产品选型时,X-lab开放实验室团队对比了多款开源工具,最终选择了DataEase开源数据可视化分析工具。X-lab开放实验室选择DataEase的原因包括:
1.DataEase是开源项目,所有人都可以贡献和使用,与X-lab开放实验室的使命、愿景、价值观相契合;
2.简单易用,DataEase不仅可以只需要一条命令就可以一键安装,而且可以通过拖拉拽的方式来设计图表;
3.丰富的图表支持;
4.多种数据源支持;
5.DataEase项目的整体活跃度非常高,而且每月持续迭代更新版本。
落地过程
基于上述的原因,X-lab开放实验室团队选择了DataEase。在使用部署的过程中,X-lab开放实验室团队也发现了一些大屏落地过程中需要解决的问题,但最终都通过和DataEase开源工具的配合得以解决。
问题1:由OpenDigger提供的数据的数据格式是固定的,所以在对接DataEase时,发现基于这些数据格式无法进行有效的数据展示。
解决方法1:经过团队多方讨论,决定写一个数据中转程序(即od-api)来解决这一问题。由数据中转程序来实现数据格式转换,获取开源项目的影响力、关注度、活跃度、巴士系数、项目参与人数等数据,并定时同步对应的数据,将数据存储到MySQL数据库中,再由DataEase进行数据源的接入,以及历史数据的同步。
问题2:团队希望获取开源项目在GitHub代码托管平台的Star、Fork等总数,但OpenDigger中记录的数据为趋势数据,并未记录总数等数据,即使数据累加也不是实际的Star总数、Fork总数。
解决方法2:团队通过调研接口后发现,GitHub开发的API中包含这些数据,通过调用API的接口,成功获取到这部分数据。
问题3:在OpenLeaderBoard项目排行榜中,当存在多个项目时,如何在进入开源项目大屏后使得展示的数据都是对应项目的数据?
解决方法3:在OpenLeaderBoard排行榜页面上增加一列图标,通过点击该列中的图标跳转至对应具体项目的开源洞察大屏。DataEase支持实时传入外部参数,只需要在跳转时,在公共链接部分对应上各自的项目名称,点击后大屏上即可展示对应的项目洞察数据。
效果实现
1.实现方案
相关数据由Opendigger和GitHub API提供,用数据转换程序od-api将数据整理落库到MySQL数据库中,并调整相对应的数据格式,最后将MySQL作为数据源接入到DataEase平台,用来进行数据分析和展示。
底层数据来源:OpenDigger、GitHub API;
数据转换程序:od_api;
DataEase数据源接入:MySQL;
数据展示:DataEase开源数据可视化分析平台。
▲ 附图 GitHub开源项目洞察大屏整体实现方案架构图
2.实现效果
更多合作
除了GitHub开源项目洞察大屏,X-lab开放实验室基于DataEase还实现了GitHub 2022数字洞察报告(BI大屏版),内容包含对GitHub多角度的宏观分析和微观分析,从全域生态、地域生态、供应链生态、技术生态、商业生态、组织生态、社区生态和开发者自身等八大视角,全面展示了开源软件生态体系的发展状况。
《GitHub 2022数字洞察报告》包含了GitHub全球增长大屏、开源软件供应链生态大屏、开源技术领域与编程语言大屏、开源数据库领域洞察大屏、全球商业开源洞察大屏、木兰开源社区洞察大屏、开源项目社区洞察大屏(下图以dataease洞察大屏为例)和开发者个人贡献大屏,后续还计划将这些大屏集成至OpenLeaderBoard项目中并统一入口。
赛事信息
近日,开放原子开源基金会发起了“OpenDigger开源软件生态数据分析挖掘平台挑战赛(OpenSODA)”。本项赛事正在火热进行中,比赛作品征集中W2类作品主题为“开源领域的可视化大屏”,DataEase为W2类作品案例的合作平台。该赛事初赛时间为5月6日,报名已经开始,欢迎大家使用DataEase开源数据可视化分析工具参加本项赛事。
相关文章:

仪表板展示 | X-lab开放实验室GitHub开源项目洞察大屏
背景介绍 X-lab开放实验室是一个开源软件产业开放式创新的共同体,由来自国内外著名高校、创业公司、部分互联网与IT企业的专家学者与工程师所构成,目前已在包括开源治理标准制定、开源社区行为度量与分析、开源社区流程自动化、开源全域数据治理与洞察等…...

【c语言】五大内存区域 | 堆区详解
创作不易,本篇文章如果帮助到了你,还请点赞支持一下♡>𖥦<)!! 主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步! 给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ…...

【JavaScript】动态表格
🎊专栏【 前端易错合集】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【如愿】 大一同学小吉,欢迎并且感谢大家指出我的问题🥰 🍔介绍 就是在输入框中输入数字后,再按…...

Css如何优雅的实现抽奖转盘
如图,抽奖转盘,可以拆分为几部分: 1.底部大圆; 2.中间小圆; 3.扇形区; 4.扇形内部奖品区; 5.抽奖按钮; 6.点击抽奖按钮时旋转动效及逻辑; 这其中,扇形区&am…...

在Java的小问题
问题1:如何在Java中创建一个对象? 解决方法: 在Java中,要创建一个对象,需要以下步骤: 创建一个类,定义对象的属性和行为。在类中定义一个构造函数,用于初始化对象的属性。在程序中…...

HashMap的扩容机制、初始化容量大小的选择、容量为什么是2的次幂
前置知识 先来看看HashMap中的成员属性 解释: size当前的容器中Entry的数量,也就是当前K-V的数量loadFactory装载因子,用来衡量HashMap满的程度,loadFactory的默认值是0.75threshold临界值,当实际KV数量超过threshol…...

[jenkins自动化2]: linux自动化部署方式之流水线(下篇)
目录 1. 引言: 2. 进阶操作 流水线 -> 2.1 简介: -> 2.2 最终效果图展示: -> 2.3 有没有心动, 真的像流水线一样, 实现了一键部署启动 3. 实现方式 3.1 下载几个插件 3.2 创建流水线任务 3.3 点击配置 3.4 根据流水线语法 写一个简单的helloworld 3.5 执行…...

idea使用 ( 二 ) 创建java项目
3.创建java项目 3.1.创建普通java项目 3.1.1.打开创建向导 接 2.3.1.创建新的项目 也可以 从菜单选择建立项目 会打开下面的选择界面 3.1.2.不使用模板 3.1.3.设置项目名 Project name : 项目名 Project location : 项目存放的位置 确认创建 3.1.4.关闭tips 将 Dont s…...

RabbitMq-接收消息+redis消费者重复接收
在接触RammitMQ时,好多文章都说在配置中设置属性 # rabbitmq 配置 rabbitmq:host: xxx.xxx.xxx.xxxport: xxxxusername: xxxpassword: xxxxxx## 生产端配置# 开启发布确认,就是confirm模式. 消费端ack应答后,才将消息从队列中删除#确认消息已发送到队列(Queue)pub…...

Orangepi Zero2 全志H616简介
为什么学 学习目标依然是Linux 系统 ,平台是 ARM 架构 蜂巢快递柜,配送机器人,这些应用场景用C51,STM32单片机无法实现 第三方介入库的局限性,比如刷脸支付和公交车收费设备需要集成支付宝SDK,提供的libalipay.so 是…...

Golang每日一练(leetDay0047)
目录 138. 复制带随机指针的链表 Copy List with Random-pointer 🌟🌟 139. 单词拆分 Word Break 🌟🌟 140. 单词拆分 II Word Break II 🌟🌟🌟 🌟 每日一练刷题专栏 &…...

HCL Nomad Web 1.0.7发布和新功能验证
大家好,才是真的好。 要问在HCL Notes/Domino系列产品中,谁更新得最快,那么答案一定是HCL Nomad Web。 你看上图右边,从1.0.1更新到1.0.7,都没花多少时间。 从HCL Nomad Web 1.0.5版本开始,可以支持直接…...

春招网申简历填写三技巧
网申第一关很重要,不夸张的说网申决定了你的笔试机会,从如信银行考试中心了解到,银行网申筛选过程中,有机器筛选人工筛选两道程序,掌握填写技巧后对提升简历通过率有较大帮助,一定要把握住,关于…...

计算机网络基础知识总结
经过学习我们可以知道: 关于计算机网络: ip地址端口号协议协议分层TCP五层协议协议封装两台计算机之间的通信 目录 ip地址 端口号 协议 协议分层 五层协议体系结构 (1) 应用层 (2) 运输层 (3) 网络层 (4)数据链路层 (5)物理层 封装&分用 两台主机之间的通信 …...

(下)苹果有开源,但又怎样呢?
一开始,因为 MacOS X ,苹果与 FreeBSD 过往从密,不仅挖来 FreeBSD 创始人 Jordan Hubbard,更是在此基础上开源了 Darwin。但是,苹果并没有给予 Darwin 太多关注,作为苹果的首个开源项目,它算不上…...

row_number 和 cte 使用实例:考场监考安排
row_number 和 cte 使用实例:考场监考安排 考场监考安排使用 cte 模拟两个表的原始数据使用 master..spt_values 进行数据填充优先安排时长较长的考试使用 cte 安排第一个需要安排的科目统计老师已有的监考时长尝试使用 cte 递归,进行下一场考试安排&…...

2023天梯赛记录
文章目录 L2-001 紧急救援L2-002 链表去重L2-004 这是二叉搜索树吗?L2-005 集合相似度L2-006 树的遍历L2-007 家庭房产L2-010 排座位L2-011 玩转二叉树L2-012 关于堆的判断L2-013 红色警报L2-014 列车调度L2-016 愿天下有情人都是失散多年的兄妹L2-019 悄悄关注L2-0…...

被吐槽 GitHub仓 库太大,直接 600M 瘦身到 6M,这下舒服了
大家好,我是小富~ 前言 忙里偷闲学习了点技术写了点demo代码,打算提交到我那 2000Star 的Github仓库上,居然发现有5个Issues,最近的一条日期已经是2022/8/1了,以前我还真没留意过这些,我这人懒…...

OpenGL(三)——着色器
目录 一、前言 二、Shader 2 Shader 2.1 顶点着色器 2.2 片段着色器 三、APP 2 Shader 四、顶点颜色属性 五、着色器类C 一、前言 着色器Shader是运行在GPU上的小程序,为图形渲染管线的某个特定部分而运行。各阶段着色器之间无法通信,只有输入和输…...

【MySQL】单表查询
一、表的准备 查询操作的SQL演示将基于下面这四张表进行,我们先创建好这四张数据表,并为其添加数据。 1、第一张表为部门表,名称为包含三个字段:部门编号(deptno),部门名称(dname&…...

第一章 安装Unity
使用Unity开发游戏的话,首先要安装Unity Hub和Unity Editor两个软件。大家可以去官方地址下载:https://unity.cn/releases/full/2020 (这里我们选择的是2020版本) Unity Hub 是安装 Unity Editor、创建项目、管理帐户和许可证的主…...

20230425----重返学习-vue项目-vue自定义指令-vue-cli的配置
day-057-fifty-seven-20230425-vue项目-vue自定义指令-vue-cli的配置 vue项目 vuex版 普通版纯axios:切换页面,就会重新发送一次ajax请求普通版升级:vuex版vuex的常用功能 vuex 数据通信vuex 缓存数据 前进后退,切换页面&#…...

el-input 只能输入整数(包括正数、负数、0)或者只能输入整数(包括正数、负数、0)和小数
使用el-input-number标签 也可以使用typenumbe和v-model.number属性,两者结合使用,能满足大多数需求,如果还不满足,可以再结合正则表达式过滤 <el-input v-model.number"value" type"number" /> el-i…...

Docker Compose的常用命令与docker-compose.yml脚本属性配置
Docker Compose的常用命令与配置 常见命令ps:列出所有运行容器logs:查看服务日志输出port:打印绑定的公共端口build:构建或者重新构建服务start:启动指定服务已存在的容器stop:停止已运行的服务的容器&…...

with语句和上下文管理器(py编程)
1. with语句的使用 基础班向文件中写入数据的示例代码: # 1、以写的方式打开文件f open("1.txt", "w")# 2、写入文件内容f.write("hello world")# 3、关闭文件f.close()代码说明: 文件使用完后必须关闭,因为文件对象会占用操作系统…...

《JavaEE初阶》HTTP协议和HTTPS
《JavaEE初阶》HTTP协议和HTTPS 文章目录 《JavaEE初阶》HTTP协议和HTTPSHTTP协议是应用层协议:使用Fiddler抓取HTTP请求和响应:Fiddler的下载和基本使用:Fiddler的中间代理人身份:其他抓包工具: 先简单认识HTTP请求与HTTP响应:HTTP请求:HTTP响应: HTTP请求详解:首行࿱…...

微信小程序 | 基于高德地图+ChatGPT实现旅游规划小程序
🎈🎈效果预览🎈🎈 ❤ 路劲规划 ❤ 功能总览 ❤ ChatGPT交互 一、需求背景 五一假期即即将到来,在大家都阳过之后,截止到目前这应该是最安全的一个假期。所以出去旅游想必是大多数人的选择。 然后&#x…...

Excel技能之实用技巧,高手私藏
今天来讲一下Excel技巧,工作常用,高手私藏。能帮到你是我最大的荣幸。 与其加班熬夜赶进度,不如下班学习提效率。能力有成长,效率提上去,自然不用加班。 消化吸收,工作中立马使用,感觉真不错。…...

黑马程序员Java零基础视频教程笔记-运算符
文章目录 一、算数运算符详解和综合练习二、隐式转换和强制转换三、字符串和字符的加操作四、自增自减运算符五、赋值运算符和关系运算符六、四种逻辑运算符七、短路逻辑运算符八、三元运算符 一、算数运算符详解和综合练习 1. 运算符和表达式 ① 运算符:对字面量…...

Microsoft Data Loss Prevention(DLP)部署方案
目录 一、前言 二、部署流程 步骤一:确定数据需求 步骤二:规划信息保护策略...