escolalms/reports

Escola 无头 LMS 报告

安装: 8,439

依赖项: 1

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

开放问题: 0

类型:

0.1.49 2024-03-22 11:42 UTC

README

用于统计和报告的包

swagger codecov phpunit downloads downloads downloads

目的

此包包含用于检索关于其他 LMS 组件(或任何已注册指标和/或报告的任意非 LMS 模型)的统计数据的 Web API。

安装

  • composer require escolalms/reports
  • php artisan migrate
  • php artisan db:seed --class="EscolaLms\Reports\Database\Seeders\ReportsPermissionSeeder"
  • 可选:使用 php artisan vendor:publish --tag=reports 发布配置文件

依赖关系

  • EscolaLms\Courses 用于所有相关课程统计和指标
  • EscolaLms\Cart 用于计算花费金额的所有指标

使用方法

配置

通过编辑发布的配置 reports.php,您可以

  1. 更改 API 中可用的指标(通过编辑 metrics
  2. 更改每个指标的设置(通过编辑 metric_configuration
    1. limit 定义默认情况下将计算多少数据点(如果您未作为查询参数传递 limit);例如:将 limit 设置为 10 的 TutorsPopularityMetric 将返回 10 位最受欢迎的导师的受欢迎程度
    2. history 是一个布尔值,定义此指标是否应自动计算并存储在数据库中
    3. cron 是 cron 配置,它确定自动计算指标的频率
  3. 更改 API 中可用的统计信息(通过编辑 stats)以及它们映射到的模型

统计信息

统计信息用于计算有关给定单个模型(例如课程或主题)的一些统计数据。不存储历史数据,只提供当前数据。

可用的统计信息

  • EscolaLms\Reports\Stats\Course\AverageTime - 订阅了课程的用户在课程上花费的平均时间
  • EscolaLms\Reports\Stats\Course\AverageTimePerTopic - 订阅了课程的用户在课程上花费的平均时间,按主题分组
  • EscolaLms\Reports\Stats\Course\MoneyEarned - 给定课程赚取的总金额
  • EscolaLms\Reports\Stats\Course\PeopleBought - 购买了给定课程的用户数量
  • EscolaLms\Reports\Stats\Course\PeopleFinished - 完成给定课程的用户数量
  • EscolaLms\Reports\Stats\Course\PeopleStarted - 开始学习给定课程的用户数量
  • EscolaLms\Reports\Stats\Topic\AverageTime - 订阅了包含该主题的课程的用户在该主题上花费的平均时间

创建自己的统计信息

要创建自己的统计信息,您需要创建一个实现 EscolaLms\Reports\Stats\StatContract 的类。创建统计信息后,您需要将其注册到配置文件中的 stats 数组中。

指标

指标用于报告随时间累积的数据。使用计划任务每天存储每个指标的历史数据,请求指标返回该历史数据(即,给定日期存储的指标值)。

可用的指标

  • EscolaLms\Reports\Metrics\CoursesMoneySpentMetric - 计算每个课程的总花费(历史数据表示到给定日期为止的总花费)
  • EscolaLms\Reports\Metrics\CoursesPopularityMetric - 计算每个课程的订阅用户数量
  • EscolaLms\Reports\Metrics\CoursesSecondsSpentMetric - 计算用户学习每个课程花费的时间
  • EscolaLms\Reports\Metrics\TutorsPopularityMetric - 计算订阅了由给定导师创建的课程的用户数量

创建自己的指标

要创建自己的指标,您需要创建一个实现了EscolaLms\Reports\Metrics\Contracts\MetricContract接口的类。您可以通过扩展EscolaLms\Reports\Metrics\AbstractMetric来使用该接口中声明的大部分方法的默认实现。创建指标后,您需要通过将其添加到配置文件中的metrics数组中来注册它。

端点

所有端点都定义在swagger中。

指标端点

  1. GET /api/admin/reports/metrics返回在reports.php配置文件中配置的metrics列表
  2. GET /api/admin/reports/report计算所选指标的数值;您可以通过以下查询参数向此端点发送请求
    1. metric={classname}是必需的;classname/api/admin/reports/metrics端点返回的metrics之一
    2. limit={int}是可选的;确定将返回的最大数据点数
    3. date={date}是可选的;将尝试加载给定日期的历史报告数据或返回404如果没有数据可用;如果没有此参数,端点将返回今天的数据

统计数据端点

  1. GET /api/admin/stats/available返回在reports.php配置文件中配置的stats列表
  2. `GET /api/admin/stats/

测试

运行./vendor/bin/phpunit --filter='EscolaLms\\Reports\\Tests'以运行测试。

测试详情:codecov phpunit

事件

在此软件包中没有定义事件。

监听器

在此软件包中没有定义监听器。

如何在前端使用此软件包

管理面板

报告仪表板

Reports dashboard

课程统计数据

Course statistics

权限

权限定义在Enum中,并在Seeder中初始化。

路线图。待办事项。故障排除

  • ???