Comments (3)
We need to track how long each user makes it through each episode.
This is a useful signal for how interested a given user is in a given topic. Once we have it implemented, we can do collaborative filtering in a way that doesn't require upvoting.
One way is to log the farthest timestamp that a user makes it to. Then, divide that by the length of the episode. That will give you a double representing the percentage of the episode that the user listened to.
First implementation that comes to my mind: every time a user stops an audio stream
- log the timestamp they stop at
- divide that timestamp by total episode length
- save that to user database and make a new field { [ episode_id : 1312, percentage_listened : .8221] }
What is the right way to implement this?
from software-engineering-daily-api.
We are implementing this on the apps, but my intention was local storage.
If you just want do know for analytics purposes, we currently track play/pause events into firebase analytics. I's possible to add the userId to users if we aren't already. Firebase has a SQL query api that we can use for machine learning and exports.
If we want the data ourselves this sounds like a good use case to link up Kafka -> InfluxDB/Pig/Map Reduce
from software-engineering-daily-api.
Sounds like #47 is becoming more relevant
from software-engineering-daily-api.
Related Issues (20)
- Improve Onboarding Experience
- Add "upvoted" and "downvoted" to 'listened' api, for recent activity feed
- Ability to Save to Listen Later From Desktop To Phone HOT 2
- Add section to readme for env vars
- Automatically Scrape "Show Notes" and add them to "Related Links" HOT 1
- Create Wiki Feature Backend
- Create notifications backend
- Architect badge system
- Guest object system project
- Missing `AWS_PROFILE_PIC_BUCKET_NAME` in development image tag HOT 5
- As a listener, I would like to filter out episodes I have listened to HOT 2
- Prevent broken `author` ObjectId references in forumthreads collection HOT 1
- MP3 URL is not provided as https
- New route with less user info for comments
- [Help] How to populate Posts? I could not find any POST request to populate /api/posts HOT 6
- Bookmarks Question HOT 8
- Rename Backend Heroku API
- Migrate to Render
- Migrate api code to typescript
- Migrate api to graphql for easier cross-platform access and addressability on the frontend
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from software-engineering-daily-api.