escolalms/reports
Composer 安装命令:
composer require escolalms/reports
包简介
Escola Headless LMS Reports
README 文档
README
Package for statistics & reports
Purpose
This package contains web API for retrieving statistical data about other LMS components (or event any arbitrary non-LMS Models for which Metrics and/or Reports are registered).
Installation
composer require escolalms/reportsphp artisan migratephp artisan db:seed --class="EscolaLms\Reports\Database\Seeders\ReportsPermissionSeeder"- optional:
php artisan vendor:publish --tag=reportsto publish config file
Dependencies
EscolaLms\Coursesfor all Courses related stats and metricsEscolaLms\Cartfor all metrics related to calculating amounts of money spent
Usage
Configuration
By editing published config reports.php you can:
- Change which metrics are available in API (by editing
metrics) - Change settings for each Metric (by editing
metric_configuration)limitdefines how many data points will be calculated by default (if you don't pass limit as query parameter); for example:TutorsPopularityMetricwithlimitset to 10 will return popularity of 10 most popular Tutorshistoryis a boolean that defines if this metric should be automatically calculated and stored in databasecronis cron config which determines how often automatic calculation of metrics happens
- Change which stats are available in API (by editing
stats) and to which Model they are mapped
Stats
Stats are used for calculating some statistical data about given single Model (for example Course or Topic). No historical data is stored, only current data is available.
Available stats
EscolaLms\Reports\Stats\Course\AverageTime- average time spent on Course by users subscribed to itEscolaLms\Reports\Stats\Course\AverageTimePerTopic- average time spent on Course by users subscribed to it, grouped by topicEscolaLms\Reports\Stats\Course\MoneyEarned- sum of money earned by given CourseEscolaLms\Reports\Stats\Course\PeopleBought- count of users that bought given CourseEscolaLms\Reports\Stats\Course\PeopleFinished- count of how many users finished given CourseEscolaLms\Reports\Stats\Course\PeopleStarted- count of how many users started learning given CourseEscolaLms\Reports\Stats\Topic\AverageTime- average time spent on Topic by users subscribed to Course which this topic is part of
Creating your own stat
To create your own Stat, you need to create class implementing EscolaLms\Reports\Stats\StatContract.
After creating a Stat you need to register it by adding it to stats array in config file.
Metrics
Metrics are used for reporting data accumulated over time. Historical data is stored for each day using scheduled job, and requesting a metric returns that historical data (that is, metric values stored at given date).
Available metrics
EscolaLms\Reports\Metrics\CoursesMoneySpentMetric- calculates total money spent for every Course (historical data represents total money spent up to given date)EscolaLms\Reports\Metrics\CoursesPopularityMetric- calculates how many users were subscribed to every CourseEscolaLms\Reports\Metrics\CoursesSecondsSpentMetric- calculates how much times users spent learning every CourseEscolaLms\Reports\Metrics\TutorsPopularityMetric- calculates how many users were subscribed to courses created by given Tutor
Creating your own metric
To create your own Metric, you need to create class implementing EscolaLms\Reports\Metrics\Contracts\MetricContract. You can extend EscolaLms\Reports\Metrics\AbstractMetric to use default implementations of most of the methods declared in this interface.
After creating a Metric you need to register it by adding it to metrics array in config file.
Endpoints
All the endpoints are defined in .
Metrics endpoints
GET /api/admin/reports/metricsreturns list ofmetricsconfigured inreports.phpconfig fileGET /api/admin/reports/reportcalculates data for chosen metric; you can pass following query parameters to this endpoint:metric={classname}is required;classnameis one of themetricsreturned in/api/admin/reports/metricsendpoitlimit={int}is optional; determines the maximum number of data points that will be returneddate={date}is optional; will try to load historical report data for given date or return404if there is no data available; without this param, endpoint will return today's data
Stats endpoints
GET /api/admin/stats/availablereturns list ofstatsconfigured inreports.phpconfig file- `GET /api/admin/stats/
Tests
Run ./vendor/bin/phpunit --filter='EscolaLms\\Reports\\Tests' to run tests.
Events
No Events are defined in this package.
Listeners
No Listeners are defined in this package.
How to use this package on Frontend
Admin Panel
Reports dashboard
Course Stats
Permissions
Permissions are defined in Enum and seeded in Seeder.
Roadmap. Todo. Troubleshooting
- ???
escolalms/reports 适用场景与选型建议
escolalms/reports 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 11.8k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2021 年 09 月 03 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 escolalms/reports 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 escolalms/reports 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 11.8k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 3
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2021-09-03

