Skip to content

Latest commit

 

History

History
162 lines (116 loc) · 9.53 KB

复赛-T2-ahpu_new_peasants.md

File metadata and controls

162 lines (116 loc) · 9.53 KB

OpenDigger命令行指标查询工具设计文档

功能设计思路

  • 数据查询: 利用OpenDigger提供的API,用户可以查询特定仓库在特定指标上的数据,也可以查询特定仓库在特定自然月上的数据。我们可以设计一个查询接口,用户输入仓库名和指标名,就可以获取相关数据。同时,我们也需要提供一个日期筛选功能,用户可以输入特定的自然月份,获取在这个月份内的数据。
  • 数据报告: 用户可以查询特定仓库在特定自然月份的整体报告,这个报告可以包含所有的指标数据。我们可以设计一个报告生成功能,用户输入仓库名和月份,就可以生成一个包含所有指标的报告。报告生成后,用户可以选择在线查看或下载报告。
  • 数据可视化: 对于查询出的数据, 我们可以提供一个数据可视化功能,用户可以通过图表形式更直观地理解数据。可以使用开源的数据可视化库,如pyecharts等,进行图表的设计和制作。
  • 数据反馈: 对于查询不到的数据,我们可以提供一个反馈功能,用户可以通过WEB界面向我们反馈缺失的数据,我们在后台收到反馈后,可以及时地对数据库进行完善。
  • 定制报告: 用户可以选择需要包含哪些指标在开源健康报告中,通过定制报告功能,用户可以更有针对性地了解和分析开源项目的健康状况。
  • 数据监控: 用户可以指定要监视的仓库和指标,当这些指标发生变化时,我们可以通过邮件或其他方式,自动发送通知给用户。
  • 数据预测: 基于历史数据,我们可以设计一个数据预测功能,通过机器学习算法,预测未来的指标变化。
  • 多仓库对比: 提供一个多仓库对比的功能,用户可以选择多个仓库,对比他们在同一指标上的表现,以此来进行更全面的开源项目健康度分析。

组件划分

组件划分

图1:组件划分(箭头表示调用)
  • 命令行解析模块:用于解析用户输入的命令行参数,提取出用户需要的信息,如仓库名、指标名、日期等,然后根据用户指定任务调用对应的模块。
  • 命令行配置模块:用于设置用户信息,比如姓名、昵称和邮箱等。
  • 数据获取模块:用户输入仓库名和指标名,调用OpenDigger提供的API,获取对应的数据,如果数据不存在则返回仓库名或指标名到数据监控模块,进行数据监控。如果存在则交给数据查询模块根据用户数据进行数据处理。
  • 数据查询模块:用户输入仓库名和指标名,调用数据获取模块获取对应的数据,然后根据用户输入的日期等信息,对数据进行筛选,返回给用户。
  • 数据导出模块:将数据查询模块生成的数据,根据用户输入要求导出。
  • 数据监控模块:监控历史查询过得仓库指标是否发生变化,如果发生变化进行通知;对于一些未收录仓库,反馈给OpenDigger。
  • 数据报告生成模块:用于分析用户指定仓库,生成一个包含所有指标的报告,用户可以选择在线查看或下载报告。
  • 数据可视化模块:用于对一些数据的可视化。
  • 数据预测模块:用于对一些指标未来趋势进行预测。

实现难点

  • 数据查询和报告生成:需要与OpenDigger的API进行良好的对接,正确解析返回的数据,并将数据以合适的方式展示给用户。
  • 数据可视化:需要选择合适的可视化库,设计直观易懂的图表,同时要考虑图表的交互性和美观性。
  • 数据反馈:需要建立一个反馈系统,方便用户反馈数据问题,并能快速响应用户的反馈,及时更新数据库。
  • 定制报告:需要提供一个友好的报告定制界面,让用户可以轻松选择需要的指标。同时,需要能根据用户的选择,生成包含这些指标的报告。
  • 数据监控:需要设计一个监控系统,能够实时检测指标变化,并及时向用户发送通知。需要考虑如何设置监控的阈值,以及通知的频率等问题。
  • 数据预测:需要选择合适的预测模型,并进行训练。需要考虑如何处理数据的季节性,以及如何处理预测结果的不确定性。
  • 多仓库对比:需要设计一个对比功能,让用户可以一次选择多个仓库进行对比。需要考虑如何以直观的方式展示对比结果。

迭代计划

  • 第一阶段:完成数据查询功能,用户可以查询特定仓库的特定指标数据。同时,完成基础的数据报告功能,用户可以生成包含所有指标的报告。2023.07.11-2023.07.16
  • 第二阶段:完成数据可视化功能,用户可以通过图表形式查看数据。同时,完成数据反馈功能,用户可以反馈查询不到的数据。2023.07.17-2023.07.24
  • 第三阶段:完成定制报告功能,用户可以选择需要的指标,生成定制的报告。同时,完成数据监控功能,用户可以设置要监视的仓库和指标,当这些指标发生变化时,自动发送通知给用户。 2023.07.25-2023.08.05
  • 第四阶段:完成数据预测功能,用户可以查看预测的指标变化。同时,完成多仓库对比功能,用户可以选择多个仓库,对比他们在同一指标上的表现。2023.08.06-2023.08.12

系统测试设计

  • 单元测试:为每个函数或方法编写单元测试,确保它们的功能正确。
  • 集成测试:测试命令行工具的整体功能,确保所有组件可以正常协同工作。
  • 性能测试:测试命令行工具在处理大量数据时的性能,确保它可以在接受的时间内完成任务。

团队协作

开发工具

编程语言与库

编程语言:python 3.8

库或框架:

IDE

  • vscode

  • vscode plugin:

    • github copilot
    • vetur
    • gitlens
    • git commit plugin
    • ...

代码检查

附录

开源健康报告设计(暂定)

1.报告摘要

在报告的开头,提供一份简短的总结,概述报告的主要内容和项目在报告期间的总体表现。包括一些关键指标的快速统计,如贡献者数量、提交次数、新问题数量等。

2.活跃度

这一部分详细描述项目的活跃度,包括:

  • 提交频率:项目的代码提交频率可以反映项目的活跃程度和维护水平。
  • 问题活动:新问题的数量、解决问题的速度、未解决问题的数量等。
  • 拉取请求活动:新的拉取请求的数量、接受拉取请求的速度、未解决的拉取请求的数量等。

3.社区参与度

这一部分详细描述社区的参与度,包括:

  • 贡献者数量:项目的贡献者数量反映了社区的规模和活力。
  • 贡献者多样性:参与者的角色和背景多样性反映了社区的包容性。
  • 贡献者留存率:反映了社区对贡献者的吸引力和保持力。

4.代码质量和稳定性

这一部分详细描述代码的质量和稳定性,包括:

  • 测试覆盖率:项目的测试覆盖率可以反映项目的质量和稳定性。
  • 代码审查过程:项目的代码审查过程可以反映项目的质量控制水平。
  • 缺陷率:项目的缺陷率可以反映项目的稳定性和可靠性。

5.项目管理

这一部分详细描述项目的管理情况,包括:

  • 问题和拉取请求的响应时间:这反映了项目维护者处理社区反馈的效率。
  • 问题和拉取请求的解决时间:这反映了项目维护者解决问题和合并代码的效率。

6.附录

附录包括其他重要但不常用的指标,如项目的许可证合规性、项目的文档完整性等。


PS:

  • 为了使报告易于理解,每个指标都应该有对应的解释和上下文,解释为什么这个指标重要,以及它的变化可能意味着什么。同时,使用图表和其他视觉工具帮助读者更好地理解数据。

  • 报告支持根据特定的项目和社区的需求进行定制。不同的项目可能会关注不同的指标,因此报告应该灵活,能够适应不同的需求。