Project information
Project page on drupal.org: http://drupal.org/sandbox/slashrsm/1111700
Student's blog about project: http://janezurevc.name/tags/summer-code-2011
Student: Janez Urevc (slashrsm)
Mentor: Kevin Reynen (kreynen)
Current status
-
July 2011
- Core api code roughly designed
- Beggining of Preset management UI development
- Status update: http://janezurevc.name/derivatives-api-midterm-status-update
-
June 2011
- Initial code
-
23.-29.5.2011
-
16.-22.5.2011
- Online meeting with Jacob Singh and Alex Bronstein
- Create some initial mockups of Derivates API architecture
- Research Video and Audio module
- Get familiar with test driven development in Drupal
-
9.-15.5.2011
- Create blog
- Research books about api design and clean coding
- Practical API design
- API design for C++
- Clean code
- Research of recent changes in Media
- Research of Feeds module (example of good API design)
-
2.-8.5.2011
- Research of Media mover module for D6
- Aphorisms of API design
- Get books about API design (Practical API design, API design for C++)
- Research of Feeds module (as an example of good API design)
-
25.4. - 1.5.2011
- Online meeting with Kevin, discussion about project, requirements, useful resources, ...
Description
The goal of this project is to implement Derivates API for Media Library (Media, Styles, ...) ecosystem in Drupal 7. This API will provide a flexible, extensible and abstract API to implement derivation engines for different types of files.
With evolving of HTML5 and it’s video functionalities we face formats problem. Currently we do not have de-facto stadard, that would satisfy every web browser, mobile device, … There is only one solution at the moment, if we want to support every major browser. We must provide our video in different formats. Currently we cannot do that, since Media ecosystem in D7 does not provide any way to distribute one instance of video content in different formats. It would be really usefull to have a possibility to do that.
Video is not the only type of content that could be converted. We have audio, that could be distributed in different formats, qualities, … Some day we could also have possibility to upload a document in any format, and system would easily distribute it in pdf, odt, rtf, doc, … We could do this almost for any file type, that can exist in different formats and we have possibility to convert it.
Derivates API would provide framework, that would provide standard Media and Styles integration for that kind of systems. This is a D7 project.
The following features will be available when project is completed:
- unified and standardised wrapper for back end engines,
- ability to process various types of media files (audio, video, ...) through 3rd party providers,
- ability to create custom derivation presets,
- ability to choose automatically extracted thumbnails for any media type.
Project schedule
This section should contain a schedule for your project, including milestones. Work with your mentors to refine this. Split milestones into drupal.org issues, and link to those. Cross items off your list as you get them completed.
-
Before May 23rd: Community bonding period
Create d.o. sandbox and git repoFax my Student Foreign Certification and Proof of Enrollment to Google- Meetings with mentor and other people from the Drupal community (expecially those heavily involved in Media)
Research of Media and Styles code and infrastructureResearch of similar modules from D6- Refine scope and timeline
Launch blog where I can post news about this project; publish it on Drupal Planet- Get familiar with test driven development (simpletest)
-
May 23rd - May 29th
- Research of Media, Styles and similar modules is done
-
May 29th - June 15th
- Final scope and API architecture is defined
- API planning: research of possibilities
- research of APIs in Drupal
- guidelines for API developing (blogs, sessions recordings, books, ... ?)
See: http://www.archive.org/details/aphorisms_of_api_design
-
June 15th - July 15th
- Initial implementation
- most of features roughly implemented
- midterm submission
-
July 15 - August 15
- Implementation
- Polishing, bug fixing, tests, ...
-
August 15 - August 22
- Final report
- Presentation at Drupalcon London?