Q is a community playlist app that allows users to share and manage a music playlist together in a group setting. With Q, a designated host can create a room in which other users can join. In this room, users and the host can collaborate on a playlist by searching for songs on Soundcloud and adding them to a playlist queue. The host has the ability to play, pause, skip, and delete songs on the playlist. Audio is only played through the hosts computer or device. You and the people around you can all use Q's server to search for music and manage the playlist together in real time.
qplayer.tech
Product Owner: Harun Davood
Development Team Members: Spencer Gulbronson, Jaylum Chen, Ian Liu, Mark Peter, Lex Cooke
1. [Usage](#Usage)
2. [Requirements](#requirements)
3. [Development](#development)
3a. [Installing Dependencies](#installing-dependencies)
3b. [Tasks](#tasks)
4. [Team](#team)
5. [Contributing](#contributing)
For proper use, a designated host needs to login by entering a unique room name in the 'CREATE ROOM' field and clicking 'CREATE ROOM' on the login page. Users who are not the host must enter the room name provided by the host into the 'ENTER ROOM' field to join the host's room.
TO start Q's server, first start mongodb server (mongod) and run npm start inside the project's main directory.
Q uses soundcloud's API. In the current implementation, we had the client ID visible in the front end, but in later iterations, this searching should be moved to and hidden in the backend.
Q uses ionic framework to enhance UI for mobile users: http://ionicframework.com/
npm modules----------------
"bower": "^1.3.3",
"body-parser": "^1.14.2",
"express": "^4.13.3",
"mongoose": "^4.3.4",
"socket.io": "^1.4.0"
bower-----------------------
"ionic": "driftyco/ionic-bower#v1.1.1"
"angular": "1.4.3",
"angular-animate": "1.4.3",
"angular-sanitize": "1.4.3",
"angular-ui-router": "0.2.13"
(file structure: view in sublime or raw to see formatted structure)
Q
├── bower.json (bower components: installed in client/www/lib)
├── client
│ ├── config.xml (ionic config file x)
│ ├── ionic.project (for ionic x)
│ ├── scss
│ │ └── ionic.app.scss (for ionic x)
│ └── www
│ ├── css
│ │ └── style.css (main css file for custom styles)
│ ├── img
│ │ ├── icon2.png (main logo)
│ │ ├── icon.png (alternative logo)
│ │ ├── ionic.png (ionic logo)
│ │ ├── logoQ.png (large main logo)
│ │ ├── notavailable.gif (image unavailable soundcloud image)
│ │ ├── notavailable.jpg (image unavailable soundcloud image)
│ │ ├── notavailable.png (image unavailable soundcloud image)
│ │ └── playing.gif
│ ├── index.html (main index file)
│ ├── js
│ │ ├── angular-soundmanager2-Q.js (soundplayer with socket config)
│ │ ├── app.js (font-end main js)
│ │ ├── controllers.js
│ │ └── services.js
│ ├── lib
│ │ └── angular-soundmanager2
│ │ └── dist
│ │ └── angular-soundmanager2-Q.js (original untouched)
│ └── templates
│ ├── landingPage.html (landing page)
│ └── playlist.html (playlist index)
├── _CONTRIBUTING.md
├── _.editorconfig
├── _.gitattributes
├── _.gitignore
├── _.jshintrc
├── package.json
├── _PRESS-RELEASE.md
├── Procfile
├── _README.md
├── server
│ ├── db
│ │ ├── dbConfig.js
│ │ ├── userController.js
│ │ └── userModel.js
│ ├── README.txt
│ ├── routes.js (server routing)
│ ├── server.js (main server)
│ └── test.html (not used)
├── _STYLE-GUIDE.md
└── _.travis.yml
From within the root directory:
sudo npm install -g bower
npm install
bower install
run bower install
View the project roadmap www.github.com/QMusicPlayer/Q/issues
See CONTRIBUTING.md for contribution guidelines.