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