feat: added analytics command for Batch Analytics

Summary

This MR introduces an admin-only CLI command to process a CSV file containing user IDs and generate a consolidated analytics report CSV for all provided users.

The command supports large-scale batch processing, handles invalid or missing users gracefully, ignores empty rows, and safely processes duplicate user IDs.


What This MR Does

Adds Admin-Only Analytics Report CLI

Introduces a new CLI command to:

  • Read user IDs from an input CSV
  • Generate analytics for each user
  • Export analytics into an output CSV report

Analytics Included

The generated report contains:

  • Audio uploads
  • Video uploads
  • Document uploads
  • Text contributions
  • Image uploads
  • Total contributions
  • User streak
  • Hours spent

Additional Behaviors

  • Ignores empty CSV rows
  • Handles invalid/missing users gracefully
  • Supports duplicate user IDs safely
  • Optimized for large batch processing using chunked/streamed processing

Output CSV Columns

user_id,status,audio_uploads,video_uploads,document_uploads,text_contributions,image_uploads,total_contributions,user_streak,hours_spent

Test Coverage

Added test coverage for:

  • Valid CSV input generates correct analytics report
  • Empty CSV handling
  • Invalid user ID handling
  • Duplicate user ID processing
  • Large CSV batch processing
  • Output CSV generation
  • Admin-only access validation

Closes Issue: #45 (closed)

Merge request reports

Loading