A community content booster as online arena of opinions: this is a browser extension, database service and frontend created at SRF hackdays 2018. See also the companion browser extension.
Pitch deck ~ Demo site ~ Chrome plugin
The intent of this project is to generate a rich dataset of user reactions to content on SRF and other websites, that we can mine using machine learning. Our goal is to create an effective, content driven analytics system that is more user facing in than standard web analytics, and might be a way out of the commenting system sackgasse most news websites are in.
Our solution could be integrated directly into the Escenic CMS used on the site, or distributed as an extension in the Chrome and Firefox App Stores.
Richly informative and interactive online stories from SRF Data like the Roger Federer and Bandschmieden der Schweiz inspired us to work on this hack. That, and rap music:
Fighting fake news with A.I. rap.
— E-0010-9370 (@sodacamper) March 1, 2018
"Is he rappin'? It's cool, but fools, just don't confuse it/
What happens: these dudes get rude, then I lose it/
I'm scandalous.." –@D12 #srfhack #gameonIn the design area we are fans of the highlights system at Medium and Genius. However, these systems are not open source, and locked to those sites only. The open source Annotator-based hypothes.is platform, and its Hypthesis API are a forerunner to this project, and we evaluated as a potential source of seed data. Also past hack projects like Open Data/Access Button showed us the potential of this design approach.
For analytics, we initially worked with Apache Superset to create a dashboard for the data, but ran into a lot of IT issues. So we switched to Graphcool, and started working on using Google Natural Language API and in parallel doing some open source ML in Jupyter notebooks (see
analysis
folder).We looked at the video and audio archive APIs as a potential data source to link to, and tested the Trending video and Web content APIs.
Google Alerts and it's community APIs made us think about using a similar style of notification when new content related to the highlight is produced by the SRF.
- Davide Morotti @davidemorotti / Github / Web
- Satuk Kolan @satuk34 / Github
- Thorben Westerhuys @twesterhuys / Github
- Oleg Lavrovsky @loleg / Github / Web
- Nils Havelka @distributed_sys
- Dimiter Petrov @crackofdust / GitHub
We used the following technologies:
- Vue: Progressive Javascript framework for building user interfaces
- Apollo Client: Fully-featured, production ready caching GraphQL client
- Graphcool: Flexible backend platform combining GraphQL + AWS Lambda
git clone https://github.com/loleg/raplocal cd raplocal
# Install Graphcool Framework CLI npm install -g graphcool
Navigate into the
server
directory and deploy the service:cd server graphcool deploy
When prompted which cluster you want to deploy to, choose any. Save the HTTP endpoint for the
Simple API
from the output, you'll need it in the next step.Note: You can now test your GraphQL API inside a GraphQL playground. Simply type the
graphcool playground
command and start sending queries and mutations.Paste the
Simple API
endpoint to./src/main.js
as theuri
argument in thecreateNetworkInterface
call:// replace `__SIMPLE_API_ENDPOINT__` with the endpoint from the previous step const networkInterface = createNetworkInterface({ uri: '__SIMPLE_API_ENDPOINT__' })cd .. yarn install yarn start # open http://localhost:3000 in your browser