Avoteio is a cloud-supported, mobile-ready, React-powered, Spotify-based song voting app. Users can use spotify-premium accounts to create and host rooms. Rooms are accessible through the url generated by the creation of a room. Upon entering a room, users can add, upvote, and downvote existing songs; the songs will be played through the host's spotify account.
Avoteio requires Node.js v4+ to run.
Install the dependencies and devDependencies and start the server.
$ cd avoteio
$ npm installCreate your database by running mysql -u root -p < schema.sql from the root folder
Start the server in its own terminal
$npm run server-dev
In a separate terminal run the client
$npm run react-dev
- Create a Spotify Developer Account
- Create a new app
- Add your SPOTIFY_CLIENT_ID and SPOTIFY_CLIENT_SECRET to your .env file and deployment environment
- Navigate to 'Edit Settings' in your developer account to whitelist your redirect uri
Avoteio uses a number of open source projects to work properly:
- React.js - Facebook's front-end framework
- React Router - Declarative routing for React
- node.js - evented I/O for the backend
- Express - node.js framework [@tjholowaychuk]
- Passport - Handling for Spotify authorization (OAuth)
- Socket.Io - Handle real-time voting and song addition using sockets.
MIT