01. November 2021
Creating a radioeins data explorer app
Over the last years, I was loosely writing about a web scraping project. It was focused on scraping the publicly available jury votes from radioeins summer sunday top 100. More details about the show can be found on radioeins or my first post about this project.
After initiating the project, I quietly spent the last summer holidays occasionally checking and refining the script, always when the show was airing. I successfully applied it, without large alterations and only small modifications to scrape, clean and summarise the top 100 Charts. It was a test on reproducibility and it went like a charme. This year, I took the project two small steps further. First, I implemented a postgres database in the backend, so I it is easier to store and access the scraped data. It is still locally running, but I stored data per jury member and the total results. These two tables were combined in a view, with the purpose of adding information about each jury vote to the total results. This way, you can see who voted on the top song.
Second, I wanted to visualise the data and continue working with shiny on the web. I was wondering about visualising and exploring the results. It came to my mind, that songs with highest scores generally didn’t have a high mean rank, but get the good result by a high number of mentions. So it was supposde to be the first visualisation I was working on.
In the following, you can see my embedded shiny app and targets I had in mind, when creating it. I see it as a work in progress project, where I can try and implement new features. Feel free, to play around.
My Targets:
- Show distribution between total score and average place per song
- Highlight and label top 5 songs per chart
- Selection for every topic
- reactive selection for artist and subsequent songs
- Chart overview in a table and link to individual jury members and their vorting behavior based on songs.
Coming soon:
- more visualisations [unsatisfied check]
- more interactivity with plot, implementing ggiraph functionality [check]
- storing and catching the data from an online database [satisfied check]