[Week 13] Final submission
Drupal 8 media solution module - Vijay Nandwani
Link to the entire work done on the module: https://github.com/drupal-media/media/commits/8.x-1.x?author=isthegeek
Link to the module: https://github.com/drupal-media/media/
Link to the blog: https://isthegeek.svbtle.com/
In the summer of 2016, I was chosen under Google Summer of Code to work with Drupal on the media module for Drupal 8. I worked with two awesome mentors Janez Urevc (slashrsm) and Tadej Baša (paranojik) and completed all the features I proposed in my proposal. I would like to thank Drupal’s Google Summer of Code Admins Matthew Lechleider (Slurpee) and Chandan Singh (cs_shadow) for their constant support. Last but not the least, I would also like to thank Google and Drupal for providing this amazing opportunity for students to learn and get involved in Open Source projects. In this report I’ll discuss in detail about the media module, its current status and about its future development.
Introduction
The Drupal Media team had been working on various Media related modules for a couple of years now. Since all the modules were almost functional, Drupal media team wanted a complete Drupal 8 media module which would bundle the components and configurations of the existing independent media modules. This overall module was supposed to be a convenient starting point for users to get started with media items in Drupal 8. It was decided that the media module should setup most of the configuration itself, making it extremely user friendly.
Here is the list of features which was finalized before starting the project:
- Handling media items of various types such as Images, videos, tweets, instagram photos etc.
- Creating a site-wide and user-specific media library
- Allowing users to easily embed all media items using the WYSIWYG editor
- Providing the ability to crop uploaded images
I am really glad to tell everyone that with the support of my mentors, I have been able to complete the work on all these features before the deadline. The module is now ready to be downloaded and used to enhance the media experience on Drupal.
Weekly breakdown of work done during GSoC 2016
Community Bonding Period: Familarizing myself with Drupal media
During this period, I went through the codebase of various drupal media modules and discussed with mentors about how to build the project.
Week 1: Module scaffolding
This week I used Drupal distributions such as Lightning and understood how they solve the media problem. I also prepared module scaffolding and started work on Image media bundle to handle images.
Week 2: Video media bundle
This week I worked on the video media bundle and wrote tests for it as well. It was not possible to add videos from YouTube and Vimeo to the media library .
Week 3: Slideshow media bundle
This week I worked on the slideshow media bundle which used the Slick library for display. It was now possible to add all kinds of media items to a new slideshow item.
Week 4: Media library
This week I fixed a lot of slideshow issues and worked on the media library. I created Entity browsers to manage media creation and display.
Week 5: Midterm evaluation
This week I finished the media library and it was ready for midterm evaluation. The media library now used masonry to display media items.
Week 6: Fixing Entity Browser bugs
This week I fixed a number of bugs which existed in the media entity browsers. Gallery creation process also got simplified as it now used entity browser instead of autocomplete.
Week 7: Improving Gallery Entity Browser
This week I worked on constraints for slideshow media bundle which prevented addition of slideshow type items in a new slideshow.
Week 8: Adding three new bundles
After finishing the work on basic media bundles and library, this week I worked on three new media bundles. Now the media module could easily handle media items of type Document, Instagram posts and Tweets.
Week 9: Adding the embed functionality
This week I worked on the embedding of media items. It was now possible to add media items to the content by embedding them via the wysiwyg editor. A lot of work was still left to be done in embedding.
Week 10: Finishing media embed and improving UI
This week there were additions in the embedding functionality which made it really easy for users to embed content. Also there were a number of small UI issues which were fixed this week.
Week 11: Fixing bugs
This week a number of small issues were fixed. Media module is almost ready now.
Week 12: Finishing cropping and major UI changes
This week I work on the cropping functionality and did some major changes to the UI. The media module no longer required masonry and imagesloaded libraries. It used pure CSS to display media items in a grid format.
Week 13: Finishing the documentation
This week I worked on the documentation for the media module. I added a new section in the d8-media guide for the media module and described in detail about how to use the module.
Future: The module now needs to be maintained and updated to work perfectly with the upcoming Drupal versions. I’ll be providing support regarding the module on IRC and issue queues.