thankful
thankful copied to clipboard
Explain the architecture
Components:
- WebExtension that collects usage data and provides the UI
- [optional] A local ActivityWatch instance to get more usage data (such as applications, listened to Spotify tracks, Chromecast history)
These are the parts needed:
- Data sources
- Activity
- [x] Time spent
- [x] From web extension
- [ ] Alternatively: import from ActivityWatch
- Thanks/likes/favorites/olympic scoring (see #1)
- [x] Time spent
- Relationships
- Which creator does this activity/content belong to?
- [x] YouTube: by crawling the active video for creator URL in a content script.
- Which creator does this activity/content belong to?
- Manual entry of any creator/project not automatically detected
- Activity
- Data processing
- How much time is spent on each creator?
- Computes (meta)data
- For creators: How much time spent on each given creator?
- For activities: Classify/categorize/label/tag activities by category or
- Scoring
- Manual payment by the user is the most basic implementation (implemented as of 2018-06-21)
- Automatic scoring could approximate who should get how much
- Playing around in https://github.com/SuperuserLabs/thankful/pull/24
- Maps a creator to a payment addressGathers info about payment methods (looks up donation addresses for creators, somehow #23)
- Payment
- Create, sign, and publish transactions for outstanding payments
- ~~Early version might require external wallet software such as MyEtherWallet for signing transactions.~~ (Fixed in #12)
- Create, sign, and publish transactions for outstanding payments
It would be nice to map these out in a neat diagram or something, might help explain how it works.