- Roshan Suntharan
- Jason Yuan
- Michael Do
https://www.youtube.com/watch?v=qwiRjMfX6m0&feature=youtu.be
For browser: https://www.tunesync.ecd.space
web api: https://api.tunesync.ecd.space
The above url will not be used by most users. However if you do want to use our api it can be accessed with api.tunesync.ecd.space
- Music platform where users can enter a room (similar to Discord) to share music
- Music is synced and everyone hears the same audio within a room
- Rooms will be role-based consisting of Admins, DJs, and regular users
- Admins
- can do everything below
- kick users
- DJs
- can do everything below
- skip ahead/behind in the song
- play/pause the song
- add/remove song from queue
- Regular User
- create polls to do Admin/DJ actions
- vote on polls
- chat
- Admins
- Voting feature that will allow users to collectively do privileged actions mentioned above
- Anyone can upload music to the server (different than queueing music)
- Music is stored for some amount of time, decided by the admin
- Contains a built-in messaging feature
- bulk upload music
- get music metadata
- get list of uploaded songs
- delete music
- queue/dequeue songs
- any other privileged actions (play, pause, skip ahead/behind, kick user from room)
- get list of users in a room
- account creation
- send/receive messages (disconnected users can review a history of messages)
- queue music
- play synced music
- all admin actions but anyone can do it
- chat
- upload music
- implement user roles to restrict access to actions
- creating rooms
- voting feature
- Angular 9
- RxJs (async event management)
- NgRx (state management)
- WebSocket
- Django (backend server)
- Mutagen (handles music metadata tagging)
- PostgreSQL
- Redis
- playing synced music using WebSocket for a room of users
- messaging system (WebSocket)
- voting feature
- includes creating polls
- letting users vote on polls
- apply action in real-time once poll is finished
- music metadata search
- queueing music
Documentation can be found in Documentation.md