AmericanCouncils / AyamelResourceApiServer

RESTful API server for managing multimedia resource objects for language learning applications.
http://api.ayamel.org
MIT License
4 stars 5 forks source link

Ayamel Media API

Build Status

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.

Concepts

The API makes use of certain key concepts that you must understand in order to use it effectively.

Technologies

Broadly speaking, the project is implemented in PHP using the Symfony2 framework. Underlyingly it relies on several key technologies:

Development and Testing

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:

At 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.

Contributing

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.

Roadmap

See the issue queue.