Inspiration
Realtime voting applications
What it does
The application allows users to text in or use the IVR to vote for their favorite artists. As these choices are processed they are shown on the poll page in real-time. You can watch the dashboard to see:
- How many votes have been received so far
- Individual Votes on a pie-chart
- Where are the voters located
Once the poll administrator decides to end the poll, the page will declare the winner and start playing music from that artist using a media source (Soundcloud, Spotify).
Extra: The administrator also has the ability to chain more polls, this is currently only integrated with Soundcloud, so as soon as the music ends on the soundcloud widget, the page will refresh and will display information on the next available poll.
How I built it
The webapp has been developed using Spring Boot on Java with Redis as the persistence layer. Below is a list of APIs I used
- Nexmo API:
- Nexmo SMS
- Nexmo Callback
- Nexmo IVR
- Nexmo Number Insight
PubNub:
- PubNub Java API
- PubNub JS
- PubNub EON charts
Other APIs:
- Google GeoLocation API
- Mapbox
- SoundCloud
- Spotify
- Jedis
- Odometer JS
Challenges I ran into
- Detecting when sound stops playing.
- Ability to maintain score by region
Accomplishments that I'm proud of
- Maintaining scores by Region and Choice
- Using Redis ZSET
- Using EON Charts
- SoundCloud widget and API
What I learned
- Charting with EON
- SoundCloud API
What's next for PlayMySong
- Timed based polling
- Display Artist Information
- Playing videos
Log in or sign up for Devpost to join the conversation.