TODOs¶
general code cleanup
decide whether to rename the package
invenio-community-stats
dependencies
ensure that dependent PRs are merged in invenio-requests and invenio-rdm-records
add config flag to switch UI between test data and production data
testing
move all tests from centralized KCWorks test suite into this package
fix failing python tests
fix failing javascript tests
expand test coverage
search indexing
make view and download event factories use the subcounts configuration
rework index keys to harmonize across different aggregators
add dynamic creation of index templates based on subcount configurations
aggregation
refactor CommunityUsageSnapshotAggregator for the enriched event document structure
ensure CommunityUsageDeltaAggregator can handle large volumes of records gracefully (paginate the query, batch the aggregations)
get tests for aggregator classes working
get tests for queries working with refactored code
set up a check in aggregator classes to ensure that view/download event migration has been completed before running the aggregator tasks
set up automatic triggering of the startup tasks (index community events, migrate usage events) when the aggregators first run
add opensearch health and memory usage checks to the aggregator classes (as in the reindexing service) and quit out gracefully if necessary
evaluate the viability of the “published” record aggregators (currently not working because of inherent issue of published dates being retroactive)
UI components
add proper loading states to the dashboard components
add an updated timestamp to the dashboard views
fix state problems with chart views
add custom date range picker to the dashboard views
add ReactOverridable support for each of the React components
add mechanism for adding custom React components to the dashboard views (entry point providing file paths and component labels, to be imported in components_map.js?)
evaluate whether additional default components are needed
add
invenio-communitiescustom field to provide per-community configuration of the dashboard layout
client-side data handling
add client-side caching of the stats data to display while new data is loading (current implementation with IndexedDB is not working)
update client-side data transformer to use the configurable subcounts (redundant with move to back-end data series production)
UI theming
move default CSS into this package
finish basic theming of the global dashboard view
harmonize default CSS with InvenioRDM defaults
improve mobile responsiveness of the dashboard views
API requests
implement back-end production of data series
implement back-end caching of data series
add cli commands for clearing cache and checking cache status
implement security policy for API queries
reporting
implement download of data series in various formats
enable data series download from dashboard widget
improve documentation
general check for accuracy after refactoring and expansion