This repository documents the StreamSight assignment focused on dataset profiling and quality assessment. The project includes data validation scripts, reporting outputs, and workflow notes for monitoring data integrity throughout the pipeline.
- Profile input datasets and identify schema, quality, and consistency issues.
- Validate missing values, duplicates, and anomalies in the engagement dataset.
- Generate actionable reports and document the workflow for team collaboration.
Transforming Viewer Engagement into Smarter Content Decisions
StreamSight is a Python-based viewer engagement analytics platform designed to help streaming service providers understand audience behavior through data. The platform provides a simplified video streaming experience where user interactions such as watch duration, pause frequency, completion rate, and search activity are recorded and analyzed.
Instead of focusing on building a complete streaming platform, StreamSight emphasizes collecting engagement metrics and converting them into meaningful insights that help acquisition teams make informed content investment decisions.
Subscription-based streaming platforms capture viewer engagement data such as watch duration, pause frequency, and episode completion. However, acquisition teams often greenlight new content without understanding which viewer engagement patterns correlate with long-term retention.
StreamSight solves this problem by collecting engagement data and presenting interactive analytics that reveal viewer behavior, helping organizations make data-driven content decisions.
- Capture viewer engagement data.
- Analyze viewing behavior and engagement patterns.
- Measure viewer retention using analytics.
- Provide an interactive analytics dashboard.
- Support data-driven content acquisition decisions.
- Secure User Authentication
- Video Search
- Browse Content Categories
- Video Playback
- Continue Watching
- Watch History
- Bookmark Videos
- Watch Duration Tracking
- Pause Frequency Analysis
- Completion Rate Monitoring
- Search Analytics
- Viewer Retention Insights
- Trending Content Analysis
- Engagement Dashboard
- Upload Videos
- Manage Content Library
- View Analytics Dashboard
- Monitor User Engagement
- Generate Content Performance Reports
User Login
β
βΌ
Search Content
β
βΌ
Watch Video
β
βΌ
System Records
β’ Watch Duration
β’ Pause Frequency
β’ Completion Rate
β’ Search Activity
β’ Watch History
β
βΌ
Database
β
βΌ
Analytics Engine
β
βΌ
Analytics Dashboard
β
βΌ
Content Acquisition Decisions
- Python
- Flask
- SQLAlchemy
- SQLite
- PostgreSQL (Future Scope)
- HTML5
- CSS3
- JavaScript
- Bootstrap
- Pandas
- NumPy
- Matplotlib
- Plotly
- Scikit-learn
| Metric | Description |
|---|---|
| Watch Duration | Total viewing time of a user |
| Pause Frequency | Number of pauses during playback |
| Completion Rate | Percentage of video watched |
| Search Activity | User search keywords |
| Watch History | Previously watched videos |
| Repeat Views | Number of replays |
| Session Duration | Total viewing session time |
The dashboard provides valuable insights including:
- πΊ Total Views
- β±οΈ Average Watch Time
- π Completion Rate
- βΈοΈ Pause Frequency
- π Viewer Retention Score
- π Most Searched Categories
- π₯ Top Performing Content
- π Viewer Drop-off Analysis
- π Engagement Trends
Every chart type has a purpose. Bar charts compare categories; line charts show trends over time; histograms describe distributions; scatter plots expose correlation; stacked bars show composition. Choosing the wrong chart creates confusion and delays decisions.
- Bar Chart: comparison across categories such as revenue by product line or sales by region.
- Line Chart: trends over time such as monthly revenue, weekly active users, or churn rate.
- Histogram: distribution of values such as order values or customer age bands.
- Scatter Plot: relationship between two variables such as marketing spend and revenue.
- Stacked Bar: composition and part-to-whole relationships such as quarterly revenue by product.
Every chart should include a clear title, axis labels with units, a legend when needed, and labels on key bars or points. Human-readable formatting reduces cognitive load and makes charts comprehensible in seconds.
Use one consistent palette across all dashboards, and avoid relying on colour alone to communicate meaning. Pair colour with shape, line style, or text to keep the dashboard accessible for colour-blind viewers.
Use annotations for insights such as peaks, dips, launch dates, and targets. Reference lines help viewers judge performance against benchmarks and convert raw data into decisions.
Branch 2.45 includes the dashboard visualisation update and documentation for PR creation.
- AI-powered Content Recommendation System
- Viewer Segmentation
- Retention Prediction using Machine Learning
- Personalized Video Recommendations
- Real-Time Analytics Dashboard
- User Feedback & Sentiment Analysis
- Genre-wise Performance Analysis
maincontains stable production-ready code.- Every new feature is developed in a separate feature branch.
- Branch naming conventions:
feature/<feature-name>fix/<bug-name>docs/<documentation>refactor/<module>chore/<task>
Note: This branch includes a small documentation update to enable PR creation.
Format
[type]: description
Examples
feat: implement viewer engagement tracking
fix: resolve dashboard calculation bug
docs: update project documentation
refactor: optimize analytics module
chore: update project dependencies
- Every feature is submitted through a Pull Request.
- PRs reference the related GitHub Issue.
- Code is reviewed before merging.
- Merge only after approval.
Every task starts with a GitHub Issue containing:
- Title
- Description
- Label
- Assignee
Issues are automatically closed using:
Closes #Issue_Number
StreamSight enables streaming platforms to move beyond raw viewing statistics by identifying engagement patterns that correlate with viewer retention.
Using these insights, acquisition teams can:
- Identify high-performing content.
- Improve underperforming content.
- Understand audience preferences.
- Make informed content investment decisions.
- Increase viewer retention through data-driven strategies.
| Name | Role |
|---|---|
| Subhadeep | Project Lead & Backend Developer |
| Aman | Data Analytics & Dashboard Developer |
| Tanmay | Frontend Developer |
This project is developed for educational purposes as part of the Kalvium Software Engineering Program.