This project is an API server for managing multimedia resources. The primary focus of the project is to provide a mechanism for institutions to host and search multimedia resources that are useful for language learners. The API served by this application can be used by other applications to simplify managing multimedia, and also to facilitate sharing resources accross institutions and applications. The project includes several major features:
The project is hosted at api.ayamel.org, but as it is open source, it can be deployed and implemented elsewhere.
The project is still in the relatively early stages of development, so there are key features which have not yet been implemented. We plan to have the core feature set implemented and stable by Winter 2013.
The API makes use of certain key concepts that you must understand in order to use it effectively.
Broadly speaking, the project is implemented in PHP using the Symfony2 framework. Underlyingly it relies on several key technologies:
The project has a number of dependencies and requires a bit of setup to run and test. For this reason, there is a vagrant environment configured for development. The vagrant dev machine installs ansible on the VM, then runs it to install all other dependencies. The machine is configured for development and running the tests.
This is all you should need in order to develop:
cd <path/to/ayamel>
- go to this project's root directory on your machinevagrant up
- start the vagrant vm and set it upvagrant ssh
- connect to the vmcd /vagrant
- REMOVEbin/phpunit --exclude-group=transcoding
- run the testsAt this point you can edit files in the project and re-run the tests whenever.
TODO: notes about connecting to the VM - and test ApiKey
Note: The first time you run
vagrant up
, it will take a fair amount of time to set the machine up.Note: Video transcoding tests are being ignored for the moment, due to ffmpeg being a pain to install.
Contributors are certainly welcome, please start discussions in the issue queue for bugs/feature discussion.
If you will contribute, please follow the PSR coding standards, and make sure that new features are covered by thorough unit and/or functional tests.
See the issue queue.