Inspiration

There are plenty of mobile apps for listening to podcasts. However, few applications provide a truly cross-platform solution for listening to podcasts. Resonate was built with the intention of allowing users to listen to podcasts wherever they are, on whatever platform - whether it's mobile, desktop, or something else.

What it does

Right now, Resonate is relatively basic: users can search for podcasts, drill down into episodes for a specific podcast, and play episodes. And that's about it.

How I built it

I built Resonate using AngularJS, JQuery, and Bootstrap. I used the iTunes API to search for podcasts, and used JQuery to parse RSS feed URLs and extract data from each. I also tried using node-webkit to convert my current web app into a desktop application, but I was not able to finish packaging it.

Challenges I ran into

  • It was a bit challenging learning how to use the iTunes API to retrieve lists of all the episodes for a given podcast. iTunes can search for podcast streams and provide the number of episodes for a given podcast, but I learned that iTunes doesn't seem to have an API for listing all podcast episodes for a given podcast.

  • Extracting data from RSS feed URLs was challenging initially because most feeds returned XHTML, not plain XML.

  • My UI is not responsive as of right now; the top menu will get off

Accomplishments that I'm proud of

  • I was able to get podcast playback complete, as well as basic search functionality.

  • I got more familiar with AngularJS

  • I'm pretty happy with my domain name :P

What I learned

  • Learned how to convert XML to JSON using JQuery

  • Learned how to set up pages and domains using GitHub

  • Learned about web audio APIs

  • Learned the basics of wrapping webapps into desktop apps using node-webkit

What's next for Resonate

  • Add analytics to see which podcasts and episodes are most popular, avg. listening time, etc.
  • Add a recommendation/discovery engine to suggest new podcasts to users based on:
    • Genre
    • Duration
  • Fix responsive UI issues
  • Add social account integration so that users can:
    • Create and edit playlists
    • Favorite episodes
    • Share episodes
  • Add more advanced playback options
  • Finish packaging everything into cross-platform desktop apps
  • Get a more professional domain name when Resonate becomes more full-fledged :)
Share this project:

Updates