🎶 tuneefy is a unified way to share music with your friends, over various online music services
GPL-2.0 License
A new version of tuneefy built for PHP 7 / 8 and Node 14+, from the ground up, using the minimal Slim framework and a few helper libraries.
This project uses composer 2. Just run :
composer install
Tuneefy needs a variety of tables to work properly; you can populate your database with the following :
mysql -u user -p database_name < ./structure.sql
To build the assets and the API documentation, I use yarn and some modules.
yarn install
yarn run build
yarn run api-documentation
gulp-sass
, gulp-uglify
and pump
for building assetsI'm using JQuery to cover the DOM manipulation tasks and related stuff.
This project is a very basic composer project with a PSR-4 autoloader.
The source is in src/tuneefy
and is organised as such :
The tests are under the ./tests
folder and I use Codeception to run them. You have to first create the codeception.yml
file (or copy it from the dist file present in the repo).
Afterwards, just run :
vendor/bin/codecept run --steps
Beforehand, do not forget to launch a development web server so that the functional tests have an endpoint to test. For instance :
php -S localhost:8000 -t web
php -S localhost:8001 -t web_api
There should be 40 tests containing 697 assertions.
Sometimes a platform fails to respond correctly due to network latencies or such. Re-run the tests in this case, it should pass fine the second time.
The API endpoints require an OAuth access token. The token is necessary to authenticate all requests to the API.
The tuneefy API currently supports the OAuth 2 draft specification. All OAuth2 requests MUST use the SSL endpoint available at https://data.tuneefy.com/.
OAuth 2.0 is a simple and secure authentication mechanism. It allows applications to acquire an access token for tuneefy via a POST request to a token endpoint. Authentication with OAuth can be accomplished in the following steps:
You can get an API key and associated secret by sending an email to [email protected].
Limits are placed on the number of API requests you may make using your API key. Rate limits may vary by service, but the defaults are 100 requests per hour.
The full documentation is available at https://data.tuneefy.com. An API blueprint is also available here — use your preferred renderer to build it. We use Aglio.
If you want to participate/contribute, feel free to create pull requests or issues so we can make Tuneefy better and more efficient !