Jan 13 2020
Jan 13

My journey with Drupal contributions started in Oct 2019 and I started by understanding basic issues and reviewing  patches created by the experienced contributors.  

As we start a New year, I am proud that my contribution has played an important part in moving Unimity to Page one of the Service Providers list. I wish to share in this blog my learnings and I hope that this will inspire organizations and developers to contribute in the new year! 

Five aspects I have learnt through my contributions are:

  1. Understanding of  how Drupal software is built

  2. Connecting  with core contributors

  3. Improving my Technical knowledge

  4. Staying up to date with Drupal

  5. Mentoring  others

Understanding of  how Drupal software is built:-

Drupal is built from community contributions from all over the world. Lot of hard work by core contributors results with the successful implementation of this open source software. Other aspects about Drupal and the issue queues include:

  1. Understanding the  issue workflow from how an issue starts from active to needs work, needs work to needs review and needs review to reviewed & tested by community, RTBC to fixed.
  2. The different ingredients of this software include: modules/components, issue queues, core contributors, patches, tags, version control, credits, commits
  3. Understanding Drupal’s roadmap and the features mapped to each of the releases
  4. Initiative leads & initiative meetings

Connecting  with core contributors:- 

Had the privilege of interacting with top 10 core contributors:  Kjamlaluno, Jrockowitz, RajabNatshah, VolkswagenchickBojanz, Alonaoneill, Thalles, Wim Leers, Webchick, Lauri, Jhodgdon, Xjm and few others.

It was a truly wonderful experience to get appreciated by core Drupal maintainers for my work .
 

Recognized by Alexpott

Con

Recognized by Webchick

claro

Improving my Technical knowledge:-

Drupal Contributions also helped me in gaining the technical knowledge in many areas such as :

  1. Drupal’s folder structure
  2. Concepts such as Layout Builder, View modes, JSON API, Help topics
  3. Front end CSS, JS and TWIG implementations
  4. Writing Test Cases
  5. Documentations

Staying Up to date with Drupal:-

Drupal Contributions introduced me to Drupal roadmap. Following the roadmap helped me to stay updated with  new features. When Drupal 8.8 was rolled out, I knew about the New Administration Theme Claro and Media Library. I also follow core maintainers on twitter and have recently started working on the new Olivero Theme that Dries spoke at length during his session at DrupalCon Amsterdam.

Mentoring  others:- Contributions improved my role as Drupal Trainer at Unimity. I started being a mentor to all those willing to contribute and give back to Drupal. 

It has been an exciting journey and I thank Unimity for sponsoring the time to contribute. I also want to share few other members at Unimity who have Contributed to Drupal in 2019 are:

  1. Gayathri: Contributed in various areas as :- Help Topics , Media Library Documentation, Umami Profile 
  2. Madhura: Contributed in areas such as :- Migration, Help_topics
  3. Vinodhini:- Contributed in Claro new Admin Theme, Deprecated code
  4. Gnanagowthaman:- 
  5. Tarun: Contributed in Olivero New Front end theme
  6. Iyyappan:- Contributed in Migration
  7. Punam:- Contributed in Migration 

Together Unimity contributed: 13 core patches, 3 olivero patches, 1 Claro patches, 38 contributed patches.
I welcome more users from the Drupal community to join and benefit from the contributions.

Are you looking for help to climb the Drupal Contribution ladder? Just reach out to  me "Shimpy" on drupal_ contribute slack channel! Happy to help :) 

Nov 21 2018
Nov 21

Today, the Newspapers & Magazine industry is turning towards digitization to cater for Millennial and Gen Z. The publishing industry is keen to choose Open Source Technologies such as Drupal as their CMS platform over other native applications. This blog shares with you Key Requirements of Digital Publishing and How Drupal could be a best choice for Digital Publishing Solutions through this Presentation. Leveraging on sophisticated features of Drupal 8 Publishers can now deliver right content to audience at right time on right device.

 

UniMity Solutions provides expertise in designing and offering High performance publishing Solutions that are Scalable and Cloud-friendly. Our D2L in Drupal approach enables us to provide contemporary business solutions that enable us to create dynamic and engaging content. UniMity help to incorporate rich media, build reader community to interact and maximize online revenues streams. You can also harness the power of UniMity's proprietary "Analytics & Stimulation Engine" to capture readers' preferences, link to a Personalization module to configure reader-specific content and default delivery to Web and Mobile app.

For more information on requirements of online publishing and modules used you can also read our blog on Top 10 Requirements in Online Media / Publishing.

Nov 21 2018
Nov 21

As mentioned in our earlier blog on Video Annotations: A powerful and innovative tool for education, the most intriguing feature of the pilot version of NVLI is Video Annotation. UniMity Solutions assisted in building Annotation feature for Audio and Video assets. This involved identifying and integrating an open plugin that supported video and audio annotations and a generic annotation store module that was plugin agnostic.

The first step of the project was to identify a suitable plugin, open source tool that support the Annotation needs of the NVLI project.

The tools reviewed included popcorn.js and Open Annotation Plugin. Popcornjs provided by Mozilla Foundation is an HTML5 media framework written in java script for film makers, web developers and anyone who want to create time-based interactive media on the web.  Annotations need to be pre created and made available through scripts. This plugin does not provide a user interface to create annotation.  The Open Annotation Plugin met most of the requirements and was on top Video.js plugin, which has a lot of adoption in the Education space.

The identification and finalization of the tool was done through a systematic process of evaluating them against specific criteria.  As Open Annotation Plugin requires Video.js, wherever required details of Video.js also provided.

Find below the criteria used to evaluate Open Annotation Plugin:

S.No

Criteria for Evaluation

Details

1

Name of Tool used

Open Video Annotation Project used with Video.js

2

Licensing

2.1

Licensing for Open Video Annotation Project

Open Video Annotation by Philip Desenne and Daniel Cebrián Robles is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

2.2

Licensing for Video.js

Licensed under the Apache License, Version 2.0

3

Standards compliance

3.1

Annotations

Compliant with Open Annotation data formats

3.2

Compliance

Open Annotation Data Model

3.3

HTML5 support

Video.js works with HTML5 only (Default failure msg built in)
Key HTML5 features include, Video, audio tag, buffering and fall back.

3.4

Accessibility

Video.js Is accessible, need to review accessibility of Open Video Annotation Project

3.5

Browser

Google Chrome, Firefox, Safari, Internet Explorer 9

3.6

Device Compatibility

iPhone, iPad, Android

3.7

Video Formats supported

MP4, ogv, webm

4

Customization

4.1

UI using CSS

Possible to override Plugin CSS - By adding weight to the style classes.

4.2

Modular Code

API Methods to take control of the plugin are listed at GitHub

5

Functional Requirements

5.1

Out of box functionality - Standard Play/ Pause/ Stop; Volume Control

Yes

5.2

Annotations

Supports Annotations - Yes

5.3

Timeline based

Yes

5.4

Spatial

No

5.5

Unicode Text Support for Multilingual

Multilingual for annotations -
This can be managed by Drupal as all annotations are saved as entity. More advanced understanding of the plugin's multilingual capability and the overall multilingual architecture  will be taken up separately

5.6

Support for Text/ Rich Text/ Images/ Embed Videos/ Audio

Yes

5.7

Annotation Scope
(Public and Private)

This has to be handled in Drupal. The annotation store will be stored as entity. The entity author will help track the author.

6

Community Support

6.1

Founder

Twitter ID of Daniel

6.2

Working Group

https://www.w3.org/community/openannotation/

6.3

IRC Channel

#videojs , no separate channel for open video annotation found

6.4

Newsletter

Not Available

6.5

Product Roadmap

One request for 3D Annotation is been raised - No clear date or plan for implementation

6.6

Usage Stats and Case studies

Top users of video.js - newspaper sites, "the ONION" and "theguardian"

7

Technology

Based on open-source java script libraries
Extending Annotator Open Knowledge Foundation Project
Build on top of the Video.js the open source HTML5 video player
Compliant with Open Annotation data formats
Customizable and mashable with open API's
HTML5 components

8

Architecture

Annotateit - For storing annotation data
Rangeslide JS - Simple, small and fast JavaScript/jQuery polyfill for the HTML5
ova JS -  handles the java script for managing display and annotation creation UI on the HTML5 video.

9

Libraries Used/ Dependencies  

Open Video Annotation Library/Videojs

10

Ease of Integration

Open Video Annotation Library - for Annotation
Annotation Module helps to store the annotation data.

11

Security Compliance

Has to be handled by Drupal
– Filtering text to prevent SQL Injection
– For internal store Drupal will handle the security.

 

IIT Bombay wanted to leverage Open source technologies and share the work back to relevant communities and hence we choose this open tool. Integrating this with Drupal meant having it work with content types, Drupal entities and more.

Watch out our next blog for solution architecture in Drupal….
 

Nov 21 2018
Nov 21

Drupalcon is always special! Back from DrupalCon, left feeling happy, proud to be part of a caring Board, a passionate DA team and last but not least the wonderful Drupal community.

Drupal Board Retreat

Was in Dublin Friday evening 23rd September. Saturday and Sunday was the Board retreat at The Gibson hotel.

The Board meetings at the conferences are day-long sessions where the 12 Board members along with Megan the Executive Director of the Drupal association work together on a strategy for the Drupal Association. The 12-Member Board includes 1 Founder Member (Dries Buytaert), 9 Class Directors bringing various expertise and 2 At Large Directors elected by the community. We have a very interesting mix for our 9 Class Directors - Tiffany, Vessa and Jeff all run successfully large Drupal shops, Rob who earlier worked with NBC & now part of Acquia, Mike who works with Pfizer, Danese brings with her the best of Open Source Strategies from her various open source associations, Sameer from the education background - brings a good external perspective, Donna brings in her expertise from having organized large open source events, a great community person, Steve comes from a technical background, the COO of Docker project, involved or been a part of multiple open sources technologies - again brings a good external perspective and experience from similar communities. Addi & I are the community elected At Large Directors on the board.

To know more about us checkout https://assoc.drupal.org/node/1589DrupalCon1-1_0_1.jpg

DrupalCon1-2_0_0.jpg

DrupalCon1-3_1_0.jpg

Drupal association is a non profit to support initiatives that in turn benefit the Drupal project and community. The Drupal association operates with the Mission that - Drupal powers the best of the Web. The Drupal Association unites a global open source community to build and promote Drupal. The key initiatives that Drupal association has been sustainably maintaining drupal.org and running Drupalcons. The Board worked with Megan in defining the strategic direction and the boundaries in which the association should operate to ensure Sustainability. The Board also actively involved in the implementation through Task Force that jointly represent the community, Board and the association.

Megan presented us the work of the Drupal association and this was followed by a strategic planning session that was facilitated by Adam. Adam plays the most important role to make sure we work towards structured outcomes that then provide direction to Megan and the Drupal Association staff. Key objective of the retreat being:

  • Reach a shared understanding of issues and opportunities for the Drupal Association in 12 - 24 month duration.
  • Pick the top three opportunities and strategic focus areas
  • Discuss to provide guidance and help identify resources, Task Force to support the same

Day 1 had the Executive update and Financial update from Megan, followed by a session to Discuss and select Strategy Questions to address. Day 2 was spent on more elaborate discussions on the selected Strategic focus areas. Watch out for the Public board meetings at DrupalCons where the DA presents the work that they have done and the Board and DA jointly take questions from the Community. Below is the video of the Public boarding.

[embedded content]

My Next Steps

I am proud to represent the vibrant Drupal Community as a Board member. Besides being involved in the strategic planning want to spend my next few months speaking to more members of the community - Drupal developers, Core Developers, Drupal Community Champions, Shop owner and more. Do reach out to me for any clarifications or support. Best way to connect with me is by dropping a mail to [email protected]

Watch out for my next blog on the Board Staff Mixer!

Apr 16 2018
Apr 16

Drupalcon Nashville has just been amazing with an interactive and productive board retreat, amazing inspiring Keynotes, meeting friends, the many sessions, great ideas and a wonderful community! Summarizing some of my key takeaways as I head back home.

  • A live document summarizing the Core Values & Principles we have lived by for the 17 years at https://www.drupal.org/about/values-and-principles, thank you @dries for getting this for us.
  • Drupal Product directions: Serve the Content editors, increased focus on Drag & Drop Layout builder, Settings tray module, Out of the box initiative, API first, Media management, Workflow initiative, Improve technical evaluation process
  • Drupal Association to assist in bringing consistent and targeted marketing material to serve the new audiences. Checkout https://www.drupal.org/promotedrupal on Promote Drupal for more.
  • Acknowledgement of the new audience, the enterprises. The next biggest users after the enterprise are HigherEd and Government
  • Drupal Association is looking at reworking DrupalCon to serve the customer/end user audience better. First steps at Nashville was the “Customer roundtable”. Hearing the voices of the Customers, the value they get from contributions The Drupal story with in the Enterprise, Strategise to bring Cost advantage Delivering Long term value and best of breed code, building comparability to support upgrade & security are some strong reasons to link to Contributions as part of the solutioning The customers were excited to share learnings amongst themselves
  • The Work of the Drupal Association  to make Drupal.org and Drupalcon possible, uniting the #drupal community. The team is constantly listening to the Drupal Community and evolving to serve us better and increase Drupal adoption. Incase you have not already, checkout the all new d.o https://www.drupal.org/
  • First time Teamwork & Leadership program/workshop by Adam Goodman and CWG - getting young aspiring Leaders to look within to find answers and lead Part of Governance Retrospect session and the Governance workshop as part of the Board retreat. Hearing different voices and feedback on the way forward, meeting Leaders from different spectrum of Drupal, all self organized groups bringing value to us as a Community. It is amazing to see the energy of the Community voices, the involvement of CWG and the D&I groups. The Audience and Voices are still not representative of the entire community. Strongly feel a Regional direction will bring in more Diverse voices.
  • Direction to expand the regional presence of Drupal & to explore Regional Drupal Associations
  • Great meeting the new Board members over the weekend Retreat, A big thank you to Ingo, Baddy, Michel, Audra & George to be so actively involved and bringing in Diverse perspectives
  • Meeting Maggi & Nick at the Open Web Lounge and hearing their stories in Localizing events. Amazing initiative to bring other Open source initiatives to be part of Drupalcon, tiny steps to make Open Web possible!
  • A special thanks to Vishal, TCS for flying in all the way and spending time at the Conference. Hearing the voice of one of the worlds largest business and the role Drupal plays in their ecosystem, the comparison stories between CMS and trends in Digital Transformation was insightful!
  • Was also excited to be presenting at Drupalcon my story on Intelligent content. If you didn’t get a chance to be at the sessions or at #Drupalcon do check out the story at https://www.youtube.com/watch?v=MujCYD9AstU
Nov 01 2017
Nov 01

Recollecting 2016, here’s a blog on our exciting and most amazing journey with Drupal. Drupal Cons, Drupal Camps, Drupal Trainings, Drupal Code Sprints and much more…

 

Unimity’s Journey with Drupal in 2016 - Part 1

Shyamala Rajaram Elected to Drupal Association Board

Proud moment for Unimity Solutions in 2016 was to have Shyamala Rajaram Elected to the Drupal Board of Drupal Association.

She has been an active contributing member of the Drupal Community for over 10+ years. Involved in different contributions - starting with Drupal Forums, Drupal Code, QA, Project Management, Community building and more. For the elections, Shyamala competed against 22 other candidates across the world for this post and won!

DrupalCon Dublin

The First board meeting was in DrupalCon Dublin (September 2016). At Dublin the Board worked with Megan, the Executive director in defining the strategic direction and the boundaries in which the Drupal Association should operate to ensure Sustainability. For a quick preview into her experience at the board meeting read the post, My DrupalCon Dublin Board Retreat!

Shyamala also had a chance to meet Drupal Association Staff Members. Cheer the work of the Drupal Association staff, understand what they do from the post “Drupal Board Staff Mixer”.

Unimity’s Journey with Drupal in 2016 - Part 1

Drupal Con Asia

DrupalCons are always vibrant & flagship initiative of Drupal Community. A chance to meet our mentors, maintainers of our favorite modules, core developer who commit our patches, system admins who keep drupal.org running smoothly and many such key stakeholders of Drupal under a single roof. DrupalCon Asia - February 2016, was a much awaited and very first DrupalCon in India.

Unimity Solutions sponsored, contributed and participated in DrupalCon Asia held in February 2016 in Mumbai. It’s a fascinating experience to all of us, who attended DrupalCon Asia to meet Dries and Drupalists from all over the world to learn & cherish Drupal 8. Key Highlights for Unimity in DrupalCon Asia:

Unimity’s Journey with Drupal in 2016 - Part 1

Keynote at Drupalcamp Delhi

Drupal Camp Delhi is one of the largest and oldest camps in India. The Camp bring together Drupalists from across India. This years Camp, Keynote was by Shyamala on Global Opportunities with Drupal and Drupal - Enterprise Adoption swaying the audience completely with her prolific ideas and opinions.

The young energetic organizers of the Delhi community need a special clap of hands for the efficiency with which they organize these camps year on year!

Unimity’s Journey with Drupal in 2016 - Part 1

Presenting at Drupalcamp Delhi

Anish Nirmal, Mobile App Developer & Drupal Themer from Unimity, delivered a session on Headless Drupal cordova app using Drupal services for angular and ionic. This Session brought to the audience his experiences and knowledge in having built Hybrid Apps in the context of Drupal, the Challenges faced and Approaches to mitigate these Challenges.

Session on Building Headless Drupal Cordova App by Anish Nirmal at DCD 2016

Our Journey with Drupal in 2016 is not over yet. Checkout our second blog!

 

Feb 24 2017
Feb 24

Drupal 8 integrating with Traditional ECMs to enhance Enterprise Content Management Capabilities

“Shifting business requirements for digital content and new technologies are changing the ECM market. .By 2018, 50% of enterprises will manage their content using a hybrid content architecture.” - Says Gartner, Magic Quadrant for Enterprise Content Management 2016

Drupal 8 is a strong platform with it’s Strong Web Content Management System, has a role to Play in integrating with the existing Challengers/Traditional ECMs to enhance their Enterprise Content Management Capabilities.

Some of the key Web Content Management Features of Drupal that can be leveraged to provide this integrated solution include:

  1. Rich Content Management Tools
  2. Responsive Layout and Design
  3. Social Media Tools & Search Engine Optimization
  4. Integration Capabilities - RESTful APIs Support
  5. Multi Domain Capabilities
  6. Multi Lingual Capabilities
  7. E Commerce Capabilities (Capabilities to handle different type of domain contents like E-Commerce, Newspaper etc )

Rich Content Management Tools

In the context of the a large amount of today’s content being Dynamic, HTML, need for Multimedia Support the Content Management Tools of Drupal that can be taken advantage off.

The need for different types of pages in the sitemap, broadly divided into Landing Pages, Individual Pages and Functional Pages. This can be easily achieved by using out-of-the-box content modelling tools in Drupal like Content Types, Views and Call back functions. The flexibility for the editor to create dynamic landing pages with variants in UI (Image and Text combinations, layout variants) is possible by extending the content type interface.

Some of the key content management features include:

Rich Editorial Interface

  1. Interfaces with which editors could easily create and edit content. Drupal’s default content creation interface would be configured / customized to ensure that readers, depending on their roles and the categories of content they manage, can easily create content.
  2. When you need to make quick changes, choose in-context editing Better previews and drag-and-drop image uploads.
  3. The editors would be provided with a WYSIWYG editor using which content can be formatted interactively, courtesy of Aloha Editor. Edit your rich text with your theme's direct styling through the inline editor. It even works with images + captions, links directly to content in the site, and has basic support for tokenized strings.

Multimedia Asset Creation - Images and Videos

  1. Videos can be either uploaded to the site or embedded through a third-party site.
  2. Images library can be maintained within the CMS that can be accessed / used across articles. The EXIF data of the images can be read and stored in the system.

Content Publishing Workflow

Content publishing workflow allows a multi-stage publishing process involving authors, reviewers / publishers. Depending on the type of content and the publishing process, suitable workflows can be created.

Advanced Taxonomy Management

Advanced taxonomy system which would allow categorization of content at a granular level. The hierarchical taxonomy provides a flexible means to create a content structure that well represent the various categories and sections within site.

Content Promotion and Sequencing

Drupal’s node-queue system could be customized to provide Editors with a flexible interface to manage content promotion and their sequencing. For example, Editor would be able to manually promote content to the home page as “headlines” and sequence them based on importance.

Management of Social Media Posts

Editor would be able to moderate the content that would be posted in the social media platform, wherever automatic publishing provision is available.

Layout Management

Editors would be able to manage the page layouts in terms of bringing in new blocks, repositioning blocks, selecting content for the blocks etc. This aspects would need to be discussed during the design phase.

Responsive Layout Builder, courtesy of the Layout and Gridbuilder modules. You can configure layouts for separate breakpoints (e.g. Mobile, Tablet, Desktop) and even define your own grids for them to snap to.

The Panels module allows a site administrator to create customized layouts for multiple uses. At its core it is a drag and drop content manager that lets you visually design a layout and place content within that layout.

E-Newsletters Creation and Management

Editor could compose newsletters by picking the content from various sections. Alternatively, the system can be configured to automatically compose newsletters by picking the latest news headlines, most read articles, latest image/videos from the gallery etc. The reader can choose the appropriate categories to include it in the newsletter. The send-out of newsletter can be integrated with standard third party bulk mailing system.

Responsive Design

With the mobile revolution, readers prefer consuming information on the go on handheld devices. Hence the website would be able to adapt itself based on the device in which it is viewed and present a unified branding.

Responsive Design would be adopted, with a mobile reader in mind, bringing focus to the most important and relevant content. The design moves away from throwing up lots of needless information to presenting what a reader actually needs. Usability and Performance become important aspects to be taken care of towards optimizing designs for a mobile reader. Therefore, it is not enough if a website work on all devices. The website needs to respond to the device screen size, bandwidth and resolution, optimally to be responsive.

Drupal supports building of Responsive Themes. Drupal has compatibility to key concepts in Responsive design which include definition of breakpoints, integration to Modernizer and additional JavaScript libraries, Support for responsive images, videos and slideshows.

Additional powerful responsive features include: Mobile First UI Editor interface Mobile enabled, Mobile friendly admin toolbar Responsive Preview.

Drupal supports building customized user interfaces. The User Interface templates would be themed using the HTML / CSS created.

Social Media Tools & Search Engine Optimization

Sharing / Bookmarking

Content can be shared in the popular social media sites. This would facilitate “Viral Marketing” and spread the brand. Social share features are readily available as contributed modules in Drupal.

Social Media Widgets

Drupal has support for popular social media widgets like Facebook, Google Plus, Twitter, Youtube and more.

Search Engine Optimization

The Website to support different search engine optimization techniques. These would include:

  1. Creation of different sitemaps
  2. Meta tagging capabilities
  3. Support for keywords
  4. Optimized HTML structure and page speed

Integration Capabilities - RESTful APIs Support

Using Standard APIs to integrate with existing Traditional ECM solutions like Alfresco is a possibility.

REST is one of the most popular ways of making Web Services work. REST utilizes HTTP methods, such as GET, POST and DELETE. Support for RESTful APIs and an API first approach makes integrations easier than ever. These integrations can be presented as views.

RESTful Web Services in Drupal 8 Core and include:

  1. Serialized entities using HAL
  2. Provides HTTP Basic authentication process
  3. Exposes entities and other resources as RESTful APIs

Provides services to (de)serialize to/from JASON/XML

Multi Domain Capabilities

Drupal supports different techniques to manage Multi portal architecture:

  1. Single code base varying databases - multi domain
  2. Single code base, single database – multi domain

Multi Lingual Capabilities

Drupal supports any language with built-in translation interfaces.

E Commerce Capabilities

Drupal’s Commerce Modules help build sites with Ecommerce capabilities. Some key features include:

  1. Create product types with Custom Attributes
  2. Dynamic Product Displays
  3. Order Management, line item
  4. Payment method API, allowing many different payment gateways
  5. Tax calculation / VAT support
  6. Discount pricing rules
  7. Advanced Product Search Interfaces

Integrating Web CMS like Drupal would provide the following benefits:

  1. Speed to Market - Faster Publishing of content
  2. Customer Experience Improvements by bringing a Uniform, Consistent Experience across the Different Channels
  3. Operational Efficiencies by bringing technologies that would assist in facilitating content publishing with minimal or zero support from technical team
  4. Use of single code base to manage multiple platforms to simplify management of code base
  5. Process Improvement by bringing in workflows and version control for Business approvals/compliance
Feb 12 2017
Feb 12

The Association staff have been doing wonderful stuff over the last few months. Proud to summarize the passionate work of this team and Cheer the Drupal Association as they start 2017 with a bang!

Drupal Association Board

Drupal.org highlights

The engineering team has been working on focused items in the last few months, making sure they bring improved features to us on Drupal.org. All the work is through Drupal.org issue queues where they are supported by select community members. The team is always happy to receive more support.

A summary of their work include:

  1. Fastest Drupalcon site: For Baltimore a full event site was setup in a single day!
  2. Drupal.org Composer service is stable and you can use it to manage modules and themes in your production websites - Introducing Composer Facade.
  3. Improved user experience for new registered users on Drupal.org
  4. Test projects with external composer dependencies on Drupal.org
  5. 50% reduction in costs to the Drupal.org testing bill by upgrading Jenkins
  6. Staying current, enabling HTTP/2 is the next generation network protocol to improve user performance

Besides these, the team has also been working on community initiatives that needs more hands.

  1. Project Application revamp - Amendments to the project applications process towards on-boarding new contributors - I am sure this is something that is close to many of us!
  2. Markcarver needs help to port Dreditor features to Drupal.org

For full details read hestenet report at

https://www.drupal.org/drupalorg/blog/whats-new-on-drupalorg-december-2016 .

Also checkout their roadmap for the first few quaters at:

https://www.drupal.org/drupalorg/roadmap

Next Avatar of the Drupal Credit System

What Started with Drupalcon New Orleans Dries Keynote, an all new vision to the community on Scaling Open Source Communities, lead to the Current credit system that is working on Drupal.org. Today the Association is back with it’s next avatar and adding more types of contributions to this bucket. Please note this new avatar is an incremental next step to encourage Organizations to contribute more.

Today in this next Avatar the focus will be on:

  1. Issue credits
  2. Drupal 8 case studies
  3. Drupal Association Supporter Programs and Organization Membership
  4. Projects supported

Want to understand how this algorithim works, how frequently it will change, read the association blog post at

https://www.drupal.org/drupalorg/blog/recognizing-more-types-of-contribution-in-the-Drupal.org-Marketplace

Promote the Drupal Brand

Aligned toward the mission of the Association that "Drupal powers the best of the Web", here is an initiative to Promote the Drupal Brand. A unique way to connect with evaluators, to help them understand the solutions that Drupal can provide. The team is ready to roll out this new feature and to start with for 3 verticals:

  1. Higher education
  2. Government
  3. Media/entertainment

These pages will promote 3 services providers. The Association will invite top contributors to sponsor these pages. They are also using geo-targeting to facilitate showing service providers based on the region from which the page is being accessed.

The Association is happy to listen to your voices and feedback as they evolve this initiative. Read more from Megan on this at

https://www.drupal.org/blog/promoting-drupal-solutions-by-industry-vertical

Drupalcon

Drupalcon, the flagship event of our community has been constantly evolving with the staff brings in newbies each time. To make the conference work like a clockwork, the association staff work silently on a set of arduous tasks, organizing the pre conference, the conference and the post conference activities.

Today the priority is the work on Baltimore and planning for Vienna.

Drupalcon Vienna will be an important topic for our coming Board retreat and Megan has opened a survey to hear the voice of the European community. Below to the European community, do share your views at

https://www.drupal.org/association/blog/drupal-in-europe-community-survey

Please also note the Drupalcon Sprints are going to be "Shorter sprints, with greater support." A change towards making sprints more effective and avoid burnouts.

Cheer the Association

The Drupal Association has been through many a churn in the last years, it’s impressive to see how this lean zealous team, worked smarter to do more…

Cheer the team by following their work through the Association blogs, Drupal.org news and share your feedback!

Pre Board Meeting Survey

As I get ready for another Board meeting 23rd-24th Feb would like to hear your voice on these topics. Share your thoughts on my Survey at: https://goo.gl/forms/5K2sO441Awhe4wq42 . Thanks!

Dec 30 2016
Dec 30

2016 has been an exciting Year at Unimity working on varied technologies across different verticals. The Technologies included Drupal, Ejabberd, Yii, Phalcon, AWS deployment, NodeJS, AngularJS and more… We had Projects in Education, Projects in Ecommerce, Projects in Publishing. All projects were Enterprise class Solutions servicing different business requirements.

We sat down to recap the work we had done, to rejoice another great year with a great team! Each member of Unimity has been a part of this journey and made these achievements possible.

Before we get down to the key highlight project of the month in 2016, a big cheer to the Unimity team!! Hip Hip Hurray!! Here goes the Highlight Project List…

UniMity in 2016

Jan 2016 - Education Enterprise Solution

Project: AWS + Moodle Hosting for a Large Training Company

Technical Highlights:

  • High availability, setup in AWS in 2 availability zones.
  • Setup and Integration with NFS storage. 
  • Other components include RDS for database and Memcache service. 
  • Setup of Auto code deployment service for dynamic code deployment integrated the GITHUB.
  • Auto Scale configuration to rollout instances to scale web servers on demand - this was configured further to study of Usage patterns of the application.

Star Contributor: Karthik S

Feb 2016 -  Ecommerce Enterprise Solution

Project: Launch of A new country B2B Site for an International Watch brand

Technical Highlights:

  • Performance optimized by moving pricelist and products from Drupal to a multi index setup in Apache Solr.
  • Enabling Ecommerce functionalities like Taxation, Freight Charge, Refund, Pricing, Invoice Receipt and Terms and Conditions Country wise by using Domain Access & Domain Rules features.
  • Enhanced Rapid order functionality.

Star Contributor: kirubakaran S

March 2016 - Publishing Enterprise Solution

Project: Launched Men’s Lifestyle Magazine in Collaboration with ITP Media Group

Technical Highlights:

  • Data Migration from Wordpress
  • Apache Solr integration
  • 6th site from single code base
  • Contemporary responsive UI implementation with Slick Gallery and infinite scroll
  • Multi layout options for Articles.

Star Contributors: Girish & Vijay M

April 2016 -  Education Enterprise Solution

Project: Integrating the CRM, Test Engine and Registration Process for Marketing Portal of a Large Training Company

Technical Highlights:

  • Integrated Registration Flow through different Channels
  • Talisma/CRM integration
  • Reports tracking conversion from Visitor through Lead to Scholar in the Portal.

Star Contributor: Sivaramakrishnan

May 2016 - Education Enterprise Solution

Project: Integrating with ISVs to provide an enhanced Registration Process for Marketing Portal of a Large Training Company

Technical Highlights:

  • Intercom integration to track Lead Journey and Status
  • Exotel/ Voice integration
  • Typeform Integration
  • Webinar Booking System
  • Integration with Unbounce landing pages.

Star Contributor: Anish Nirmal

June 2016 - Publishing Enterprise Solution

Project : Luxury Travel Magazine in Collaboration with APP Media Group

Technical Highlights:

  • Apache Solr integration
  • Responsive Gallery with Full View and Grid View
  • Gallery page with custom rendition to show all content without scroll
  • Floating Menu
  • 7th site from single code base.

Star Contributor: Vijay & Revathi B

July 2016 - Enterprise Solution

Project: Chatbot Application

Technical Highlights:

  • Facebook and KiK integrations.

Star Contributor: Niranjan

August 2016 -  Education Enterprise Solution

Project: NVLI project in Collaboration with Indian Institute of Technology, Bombay

Technical Highlights:

  • Drupal 8 project
  • UniMity assisted in building Annotation feature for Audio and Video assets.
  • This involved identifying and integrating an open plugin and a generic annotation store module.

Star Contributor: Pravin

September 2016 - Education Enterprise Solution

Project: Test Engine for Marketing Portal of a Large Training Company

Technical Highlights:

  • Question Bank manage and Import of Questions
  • Question Creation Reviewer Workflow
  • Categorized Questions - Multi Choice, Match the following,
  • Question Creation interface
  • Time based question with provision to navigate between questions.
  • Reponsive UI
  • Reports/Dashboard
  • Enhanced Certification Module - Generates a PDF Certificate/ Infographics, with Results, Analysis and Recommendation.

Star Contributor: Anish, Sakti Vel

October 2016 - Publishing Enterprise Solution

Project: Launched Young Women's Magazine in Collaboration with ITP Media Group

Technical Highlights:

  • Headless Drupal with Phalcon and MongoDB
  • Apache Solr integration
  • 8th site from single code base
  • Contemporary responsive UI implementation with Slick Gallery and infinite scroll.

Star Contributors: Karthikeyan, Antony & Vijay

November 2016 - Enterprise Solution

Project: Employee Fitness Health Program Intranet Application

Technical Highlights:

  • Responsive Site
  • Create and Manage Members, Teams, Team Captains with in an organization
  • Periodic Programs to monitor fitness activities
  • Community Interactions
  • User Champions, Rewards and Recognitions
  • Dietary and Lifestyle Recommendations.

Star Contributor: PravinSakti Vel

December 2016 - Enterprise Solution

Project: Social Workspace Solution on the Mobile

Technical Highlights:

  • Broadcasts with Multiple Channels
  • Content Creation with support for Text Messages, Emojis, URLs, Images, Videos and Polls
  • Conversations (One to One Chat)
  • Search Contact
  • Create Group, Deletion & Member Management, Conversations in Groups
  • Manage Notification
  • Integration with Existing Web Application.

Star Contributor: Anandaraj

Check out our blogs on Unimity’s Journey with Drupal in 2016 - Part 1 and Unimity’s Journey with Drupal in 2016 - Part 2

Dec 28 2016
Dec 28

In continution of our journey with Drupal at international and national level in our previous blog, we would like to highlight some initiatives and contributions at Unimity and with Chennai Drupal Community.

Global Training Days

Global Training Days primarily focus on imparting knowledge in Drupal for beginners as well as experienced developers & designers. Drupal training can be both online & offline i.e, classroom training. The training programs have an agenda and address specific topics. Intended audience will attend basing on the session topics. Global trainings Days are typically a day long. Unimity is proud to have participated jointly with other local Drupal companies to jointly provide Drupal Training.

APRIL 2016 - Global Drupal Training

SEPTEMBER 2016 - Global Drupal Training

Check out the Event Album.

DECEMBER 2016 - Global Drupal Training

  • Exclusively Drupal 8, a half day event with two sessions on “Managing libraries in Drupal 8” and “Debug twig template in Drupal 8”.
  • Kiluvai, Capital Numbers and Innopal Technologies needs a special mention as they were most engaging and vibrant set of audience.

Drupal Code Sprints

A Code Sprint is targeted to Developers. During Code Sprints, the developers will be just writing code for a certain amount of time,usually, a day or two long. Participants will learn from each other or there will be an lead helping participants to write code. The goal is to create working software or at least some part of it depending on time. Code sprints are also sometimes called as hackathons or codeathons.

JANUARY 2016 - Chennai Drupal Global Sprint

Drupal sprint at Unimity premises prior to DrupalCon Asia.

FEBRUARY 2016 - Chennai Drupal Sprint

To continue the momentum of DrupalCon Asia, we organized another sprint where Sivaji Ganesh from KnackForge Soft Solutions Pvt Ltd, Shyamala Rajaram from UniMity Solutions Pvt Ltd, Lakshmi N.P. from Axelerant, Kamalakannan S from Kiluvai Tech Solutions Pvt Ltd and Veerasekar from UniMity Solutions Pvt Ltd shared their experience in DrupalCon Asia.

OCTOBER 2016 - Drupal Mentored Code Sprint

Launch of our webinar series “DWELL IN DRUPAL 8”

  • Celebrating Drupal 8’s first birthday we have launched a webinar series “Dwell in Drupal 8”. The first webinar of this series was by one of the favourite speakers of our Community, Mr. Sivaji, Co-founder and Technical Director at Knackforge on 19 November, 2016.
  • We have completed 4 broadcasts successfully on:

Drupal 7 to Drupal 8 Programming

Drupal 8 Composer Workflow 

Dependency Injection Basics

Headless Drupal Cordova App using Drupal Services for Angular and Ionic

The next one is on 29th December on Architecture and Debugging in Drupal 8 Frontend.

The objective of this series is to share the Durpal 8 knowledge acquired through Webinar session. Want to share your knowledge on our Webinar, write to us [email protected]

Issue Credits

Working and climbing the issue credit ladder slowly as an Organization requires planned regular office hours to support the Credit contributions. Our Star contributors are:

Karthikeyan Manivasagam Credited on 11 issues fixed in the past

  • 1 year Registration role, 8 issues
  • Quiz Progress, 1 issue
  • FAQ_Ask, 1 issue
  • Search configuration, 1 issue

Anishnirmal D Credited on 8 issues fixed in the past 1 year

  • Drupal core, 5 issues
  • Annotation Store, 3 issues

Our Technical Blogs on Drupal

Some of our technical blogs performed exceptionally well! Here are the links to Top 3 Blogs!!

 

 

Unimity Solutions hope to see more contribution to Drupal Community in the year 2017! We would continue our journey with Drupal with more passion for years to come.

"Wishing you all A Happy New Year!"

Dec 28 2016
Dec 28

Recollecting 2016, here’s a blog on our exciting and most amazing journey with Drupal. Drupal Cons, Drupal Camps, Drupal Trainings, Drupal Code Sprints and much more…

 

Shyamala Rajaram Elected to Drupal Association Board

Proud moment for Unimity Solutions in 2016 was to have Shyamala Rajaram Elected to the Drupal Board of Drupal Association.

She has been an active contributing member of the Drupal Community for over 10+ years. Involved in different contributions - starting with Drupal Forums, Drupal Code, QA, Project Management, Community building and more. For the elections, Shyamala competed against 22 other candidates across the world for this post and won!

DrupalCon Dublin

The First board meeting was in DrupalCon Dublin (September 2016). At Dublin the Board worked with Megan, the Executive director in defining the strategic direction and the boundaries in which the Drupal Association should operate to ensure Sustainability. For a quick preview into her experience at the board meeting read the post, My DrupalCon Dublin Board Retreat!

Shyamala also had a chance to meet Drupal Association Staff Members. Cheer the work of the Drupal Association staff, understand what they do from the post “Drupal Board Staff Mixer”.

Drupal Con Asia

DrupalCons are always vibrant & flagship initiative of Drupal Community. A chance to meet our mentors, maintainers of our favorite modules, core developer who commit our patches, system admins who keep drupal.org running smoothly and many such key stakeholders of Drupal under a single roof. DrupalCon Asia - February 2016, was a much awaited and very first DrupalCon in India.

Unimity Solutions sponsored, contributed and participated in DrupalCon Asia held in February 2016 in Mumbai. It’s a fascinating experience to all of us, who attended DrupalCon Asia to meet Dries and Drupalists from all over the world to learn & cherish Drupal 8. Key Highlights for Unimity in DrupalCon Asia:

Keynote at Drupalcamp Delhi

Drupal Camp Delhi is one of the largest and oldest camps in India. The Camp bring together Drupalists from across India. This years Camp, Keynote was by Shyamala on Global Opportunities with Drupal and Drupal - Enterprise Adoption swaying the audience completely with her prolific ideas and opinions.

The young energetic organizers of the Delhi community need a special clap of hands for the efficiency with which they organize these camps year on year!

Presenting at Drupalcamp Delhi

Anish Nirmal, Mobile App Developer & Drupal Themer from Unimity, delivered a session on Headless Drupal cordova app using Drupal services for angular and ionic. This Session brought to the audience his experiences and knowledge in having built Hybrid Apps in the context of Drupal, the Challenges faced and Approaches to mitigate these Challenges.

Session on Building Headless Drupal Cordova App by Anish Nirmal at DCD 2016

Our Journey with Drupal in 2016 is not over yet. Checkout our second blog!

 

Dec 22 2016
Dec 22

In my previous blog Chatbots - An Evolving Strategy to Drive Customer Engagement I explained how business development opportunities can be enhanced using mechanized messengers. Innovative strategies in Product Design, Customer Service, Customer Engagement, Product Knowledge has become vital in businesses today. Chatbots is an excellent user interface platform for quality conversations making consumer experience delightful. Chatbots are used across businesses among various industries.

Building chatbots depends on number of factors like experience with programming language, understanding A.I, writing stellar bot conversations, understanding your company's requirement, purpose of deploying chatbot - Customer Service, Customer Engagement or Product design etc.

Drupal is an Enterprise Class Content Management tool and is a preferred backend for many chatbots to manage their content and users. Many existing Drupal Customer portals are also implementing additional Chatbot interfaces to enhance their Engagement with their Customers.

In this blog I will share some approaches of how Chatbots can be built on top of Drupal.

The different component of the Solution:

Architecture_edited.jpg
  1. Backend Portal (Existing Drupal Customer Engagement Portal) – The data (Users, User-Taxonomy mapping, Content, Alerts/Notification Messages, FAQs) will be provided by the Drupal Application. Services/API, UI components will be built on this Drupal layer.
  2. Chatbot Middleware – This will be the layer that will service the queries and connect the Bot with the backend.
  3. Messenger Interface - Chatbot will be on Facebook Messenger. (This will leveraging Facebook -third party platform).

Architecting the Registration Workflow & User Management

  1. The Workflow for user Registration of the Chatbot need to cater to two both existing and new users. Development of Social Sign In, exposing Login and Registration APIs on the Portal to connect with the Bot.
  2. The existing users of the Portal, when they add the Bot to their Facebook Messenger for the first time, the process will be facilitated by a sign in to the portal using an API. The Facebook credentials will then on be mapped automatically to the user profile on the Portal.
  3. Access to Bots for New FB users who have do not already have a portal account will be presented a registration widget that will simulate the website registration process. This would be made possible by integrating with the registration API.

Implementing Content Related Features

  1. Content Discovery -Navigation of questions to provide a guided conversation. The user will be presented with the key categories. On selection of the intended category the questions will be presented. The Content must be well categorized in Drupal and appropriate APIS seed to be created in Drupal to facilitate the guided Search.
  2. Content Discovery could be built using NLP (Natural Language Processing) based approach.
  3. Automated handling of new user queries, by way of initiating a New Content add and Push back answer through Bot could also be built.

In all the above cases the content will reside in Drupal and the middleware will orchestrate the needed data to be presented via chatbot and parsing of inputs from end users.

Implementing Alerts & Notifications

  1. Push of Alerts/ Notifications - When alerts are generated, then push notifications will be initiated for applicable facebook messenger contact IDs.
  2. The Scenarios and Content will be managed in Drupal.

Marketing and Promoting the Bot

  1. The App will also be aptly promoted on the existing site so that the existing users can update their Facebook profile details.
  2. Email campaigns could be used to promote this feature.

Check out some other interesting articles on Chatbots exclusively covering why they have become evolving technology.

PayPal payments and notifications are coming to Facebook Messenger

How travel chatbots work better than travel apps

Bank of America launches AI chatbot Erica — here's what it does

Also Checkout some blogs on Drupal and Chatbots.

White House open sources Facebook Messenger chatbot

Acobot Live Chat Robot & Customer Support Widget built on Drupal

Dec 02 2016
Dec 02

This is again an excerpt from my talk at #DCD2016. The second part of my talk was on Drupal Enterprise Adoption. Starting with Whitehouse, walked the audience through the recent Nasdaq implementation, the Majento Acquia tie up and Pfizer & Drupal.

Whitehouse & Drupal

White house is one of the early adopters of Drupal, still remember Dries blog on “U.S. government, Whitehouse.gov, just relaunched on Drupal” in 2009, 7 years back.

Today President connects to the citizens using multiple channels - the white house receives, phone calls, letters, messages, the more recent channel is through a Facebook bot! White house says: “We have introduced the Facebook bot, furthering our mission to “meet the public where they are.” Millions of people contact their friends and family using Facebook Messenger. Why shouldn’t they be able to contact the White House, too?”

botgif

Checkout the announcement at: https://www.whitehouse.gov/blog/2016/10/13/removing-barriers-constituent-conversations

They have open sourced the Drupal module, a boiler plate code with steps to use to help any Drupal 8 developers to quickly launch a Facebook Messenger bot. This module will allow non-developers to create bot interactions (with customized language and workflows), and empower other governments and agencies who already use Drupal to power their digital experiences!! They also get the community to enhance this tool that they are using!

The mygov.in is an indian Governement portal running on Drupal. It is powered by the Central Government of India and over 2 million Citizens use the same!!

NASDAQ & Drupal

[embedded content]

Drupal 8 to power Nasdaq’s Investor Relationship Portals. IR portals are subject to strict security compliance standards, and reliability is very important. Nasdaq's use of Drupal 8 is a fantastic testament for Drupal and Open Source. It will raise awareness about Drupal across financial institutions worldwide.

“Drupal Serves the evolving technology space & facilitates innovation!”

Enterprise don’t use Drupal because it is cheaper, but, come to Drupal for it’s value. Drupal brings with it Best of Skills, Latest features, Content Management interfaces, Better Integrations, Mobile friendly Responsive UI, Omni Channel support, Easier Hosting, Cloud support and most importantly Adapts to the needs of the end users!

Ecommerce & Content with Drupal

Global Opportunities - Enterprise Adoption

 

mage Credits & reference to: http://buytaert.net/content-and-commerce-a-big-opportunity-for-drupal

Acquia has announced partnership with Magento!

Today’s E-commerce needs have moved and there is a need for better customer experience, a need to present different digital assets through the shopping journey of the buyer. Direct selling and Personalized experience are also evolving. Other Competitors in the Web Content management space do not have an evolved ecommerce solution, the competing ecommerce providers do not have the niche content management capabilities. Drupal has a special role to play in these scenarios, to leverage its Digital content capabilities with its Ecommerce capabilities to deliver unique Ecommerce Experiences.

Pfizer & Drupal

Mike Lamb is one of the Board Members of the Drupal Association and he represents a User organization on the board. Mike is a very active and passionate board member and has a very high regard for the Drupal Indian community. Here is a snippet of his talk at Durpalcon Dublin and shows how Pfizer launches one new site every day! Isn’t that amazing!

[embedded content]

 

Original Video: Keynote by EmerColeman at DrupalCon Dublin

Drupal is increasingly getting popular in the Enterprise space for it’s capabilities and the wonderful community!

Nov 23 2016
Nov 23

Why Drupal & Alfresco?

Organizations are using Enterprise Content Management (ECM) to manage their digital content. ECM is used to manage traditional documents like: word, excel, ppt and pdfs that are created with complex workflows. ECM is popular in the Financial Services, Medical Services, Manufacturing, Government and Publishing. ECM brings with it storage, versioning, workflows and highly customizable metadata models. Some of the popular ECMs include: DocuShare, OnBase by Hyland, Laserfiche, SpringCM Contract Management, Seismic, Lexmark Enterprise Software, Nuxeo, Oracle WebCenter Content, IBM FileNet Content Manager, Alfresco . Amongst these Alfresco is available as an Open Source Solution.

Today the content has evolved, over and above the traditional form of content - words, excels, pdf and presentations, we generate a large no of Dynamic HTML content, VIDEOS, PODCASTS, INFOGRAPHICS, etc. Also content no longer stands alone, the end-users/customers can interact with the content using features like commenting, rating, sharing tools, etc. Today the content is Multimedia and Collaborative. To provide for this new content, Organizations will need a Web Content Management System (WCM) like Drupal.

Drupal with it’s Web Content Management capabilities and Integration Capabilities, helps both WCM and ECM to coexist. Integrating Drupal with Alfresco would help Companies to leverage the best aspects of WCM and ECM, to build a robust unified Content Management System. Drupal also brings with it enhanced, responsive user interface capabilities.

Some of the key Benefits of using Drupal are:

  1. Speed to Market - Faster Publishing of content
  2. Customer Experience Improvements by bringing a Uniform, Consistent Experience across the Different Channels - Responsive design & Omni channel publishing
  3. Personalization Capabilities, Targeted Marketing and Marketing Automation
  4. Operational Efficiencies by bringing technologies that would assist in facilitating content publishing with minimal or zero support from technical team - eg. Content Management Tools & Experience for Editors with In Context Editing & WYSIWYG Capabilities, Layout Management & more.
  5. Process Improvement by bringing in workflows and version control for Business approvals/compliance
  6. Integration Capabilities - RESTful APIs Support
  7. Social Media Tools & Search Engine Optimization
  8. Support for Analytics tools include Google Analytics
  9. Use of single code base to manage multiple platforms to simplify management of code base
  10. Multi Lingual Capabilities
  11. E Commerce Capabilities

About Alfresco

Alfresco is an architecture that combines ECM (Enterprise Content Management) and BPM (Business Process Management) solutions on cloud. Alfresco is a powerful open platform that is easy to extend, customize and integrate with existing applications. The ECM tools provides easy mobile access to content, delivers a simple but rich collaboration user experience. The BPM tools of Alfresco allow organizations to manage a wide range of critical business processes. In short, Alfresco reduces the complexity of document handling, improving time and process efficiency and enhancing user productivity. It is developed on Java framework.

Users of Alfresco

Alfresco is used in industries like

Financial Services - DAB Bank, MSIG Insurance

Health Care - Imperial College, Liverpool Women's NHS Foundation Trust

Government - NASA Langley Research Center, Denver - The Mile High City

Manufacturing - CISCO, Estrella Galicia

Publishing - Oxford University Press, Taylor & Francis

Education - Royal Australasian College of Physicians, The (RACP), Macquarie University

Drawbacks of Alfresco

  1. Content Publishing between systems needs Manual Intervention
  2. Web Content managed interfaces lack inline editing or WYSIWYG capabilities
  3. Missing Taxonomy/Categorization tools
  4. Lacking several support resources including FAQs and live chat
  5. Standardized document templates
  6. Limited Customization of User Interface

How to Integrate Drupal & Alfresco?

Drupal can be integrated with Alfresco using the CMIS API project. The CMIS API Project aims to provide a generic API for integrating with CMIS compliant Enterprise CMS (ECM) systems.

What is CMIS - Content Management interoperability Service ?

Content Management Interoperability Services (CMIS) is an open standard that allows different Content Management Systems to inter-operate over the Internet. Specifically, CMIS defines an abstraction layer for controlling diverse document management systems and repositories using web protocols.

Authenticating using CMIS standard

Authenticating CMIS doesn’t actually dictate how authentication happens other than to say it is up to the underlying protocol to handle the authentication. In Alfresco, you have a couple of options: pass a ticket as an argument or use basic authentication

Option 1: Pass a ticket You can do a GET against the login URL (non-CMIS) and Alfresco will return a ticket. You’ll need to include the ticket in subsequent calls against the server.

Option 2: Basic Authentication The second option is to take advantage of HTTP Basic Authentication and curl knows how to do that. To use this option, just pass the username and password as an argument to curl.

Drupal CMIS Module

“The CMIS API package of modules provide an API for connecting to any CMIS compliant systems to bi-directionally synchronize content between the CMIS ECM system and Drupal. In addition to the API, this package provides a range of basic functionality for creating, updating, browsing and searching content in the CMIS ECM system via the Drupal interface. The overall goal of the modules is to provide an easy-to-use, WCM front-end in Drupal for ECM systems that are often unfamiliar to web content managers.”

The module provides basic interfaces and functionality out of the box. The module also provides hooks and functions that could be used to extend for advanced integrations.

Drupal would help provide web content managers an interface to easily add documents to sites, while continuing to use the advanced workflow or security provided by Alfresco for document management. The Below image summarizes the functionality provided by Drupal CMIS module.

SSO between Drupal and Alfresco

CMIS Headerswing Settings - The CMIS Header swing module provides a mechanism for relaying (or "swinging") HTTP header data from Drupal to the CMIS repository. This is particularly useful for passing user authentication information from Drupal to the CMIS repository, providing Single Sign-On (SSO), when authentication is managed by a third party component that populates $_SERVER vars with credentials, such as HTTP Basic or NTLM.

Re requisites - PHP cURL

Steps for Repository Configuration

Enable `cmis`, `cmis_common`, `cmis_browser` and `cmis_query` modules. Add the following code in Drupal settings file. 

$conf['cmis_repositories'] = array(

  'default' => array(

    'user' => '<cmis_user_username>',

    'password' => '<cmis_user_password>',

  )

Settings

User : Generic username used by cmis_common to authenticate Drupal to the CMIS repository. optional: used by cmis_common.

Password : Generic password used by cmis_common to authenticate Drupal to the CMIS repository optional: used by cmis_common.

URL : CMIS repository end point URL. Mandatory : Used by cmis_common.

Drupal-CMIS synchronization

Enable cmis_sync module and cmis_repositories config var is set. Add the following lines to your settings file:

$conf['cmis_sync_map'] = array(

  'page' => array(

    'enabled' => TRUE,

    'cmis_folderPath' => '/SomePath'

  ),

'custom_drupal_content_type' => array(

    'enabled' => TRUE,

    'cmis_folderPath' => '/SomeOtherPath'

'fields' => array(

'title' => 'cmis:name',

'custom_field' => 'cmis:otherCustomProperty',

array('drupal' => 'some_other_custom_field', 'cmis' => 'cmis:someOtherCustomProperty', 'cmis to drupal' => TRUE, 'drupal to cmis' => TRUE))

),

);

This will enable the synchronization process which will sync drupal nodes of type page to cmis:document cmis objects under /SomePath folder. For each created/updated node, sync process will create/update a cmis object under cmis_folderPath by mapping $node->title to cmis:name and $node->body to cmis object's content stream. 

For more details refer to the CMIS Module README.txt file.

Reference:- https://www.drupal.org/project/cmis

Nov 22 2016
Nov 22

Drupal 8 Composer Workflow

Composer is a tool for dependency management in PHP. It manages Install and update libraries that project manages. This session elaborate about how composer is used in Drupal 8. In Drupal Composer is inspired from node's npm and ruby's bundler. Composer manage packages/libraries per project on particular directory (by Default directory Vendor), so it has more features then Package managers.

In this session, I will take you through:

Nov 17 2016
Nov 17

Drupal Camp Delhi was an extra special experience, my first Drupal Keynote ever, in front of my favorite audience, Young Indian Drupalers! 

The Current state of Drupal, knowing the nature of the young audience at Delhi and wanted to keynote on “Global Opportunities”. Presented the state of Drupal today - where Drupal is today, key recent Enterprise adoptions, the highlights of working with Open Source and hence the “Global Opportunities”.

I started with using Drupal 4.x – our first implementation was a Drupal Moodle integration. It has been a long journey from then to today’s Drupal 8.0. Mapping this journey of Drupal to where Drupal stands today, the key highlights are:

Drupal Today is much Larger Community

Drupal Today is Growing ecosystem – from a bunch of Developers now we have Businesses, ISPvs, User and Developers around the world

Drupal evolved to be a mature Open Source Solution

Drupal has stayed relevant throughout its journey

Stats show Drupal’s increased adoption

Drupal in India is growing not only in number but also in terms of contributions

Larger Community

1. We have 104,306 users, actively contributing and 1,545 commits just in one week!

2. Just in November 2016 we have 29 Drupal Events: 

9 Camps

15 user group meet ups

3 code sprints and

2 trainings!

3. Mind you this only includes events that are registered in Druplical.

4. On Nov 11 -12 there were 4 Drupal camps happening simultaneously across the globe!

Growing Ecosystem

1. Started with a bunch of developers, moved on to add and get businesses to participate. Companies like Srijan and Axelerant have been conducting Drupal Camps and actively supporting Drupal initiatives.

2. Today the end user organizations like Pfizer, Johnson & Johnson – many large enterprises are part of this community.

3. The most recent additions are the ISVs – Independent Software Vendors – like fastly, mailchimp and other who are also part of our Ecosystem.

4. Our Developer community has also been growing, across the globe, across technologies, inclusive of UI, PM, and other non code contributors as well.

A Mature Open Source Solution

1. Some of the areas that Drupal has learnt and evolved is to come up with a method to facilitate “The transformation of Drupal through continuous innovation

This blog by Dries demonstrates how Drupal 8 has made a key difference.

“Big architectural changes are easier”

“Short release cycles”

“Less expensive upgrade path”

“More incentive for core contributors by moving the code to production through shorter cycles”

2. The three new practices in Drupal 8 that help facilitate these changes include:

a. Semantic versioning: a major.minor.patch versioning scheme that allows us to add significant, backwards-compatible improvements in minor releases like Drupal 8.1.0 and 8.2.0.

b. Scheduled releases: new minor releases are timed twice a year for predictability. To ensure quality, each of these minor releases gets its own beta releases and release candidates with strict guidelines on allowed changes.

c. Experimental modules in core: optional alpha-stability modules shipped with the core package, which allow us to distribute new functionality, gather feedback, and iterate faster on the modules' planned path to stability.

Stayed Relevant

1. Drupal 8 shipped with Easier Content Authoring with Wysiwyg in core, Drupal 8.2 brought with it the settings tray, and easier to use block placement with it.

2. Supporting APIs in core helps increase support for device agnostic solutions, headless Drupal, Integrate with bot technologies, IOT and more…

3. Internationalization in core

4. A Digital solution is not complete without Analytics, Targeting Emails, Marketing Automation and a host of other services. Drupal can integrate with these with ease.

Increased Adoption

Source: Gartner 2015

1. Last 4 years no of sites grown by 50%

2. 1 million + sites running using Drupal

3. Gartner just released the 2015 version of its Magic Quadrant for Web Content Management. For the second year in a row, Acquia was identified as a Leader.

Drupal in India

1. India has the youth, we have talent, we have innovation – right time for us to capitalize on the global opportunities.

2. India is the 2nd most contributing country to Drupal 8 code

3. Indian companies are at the top of the market place because of their contributions

4. Increased momentum further to DrupalCon Mumbai

5. Dries himself is extremely proud of the campus ambassador program. The conversations I have had with him has also demonstrated his excitement to see the growth of Drupal in India.

Drupal Today is a much Larger Community with a Growing ecosystem, Evolved to be a mature Open Source Solution. All through this journey Drupal has stayed relevant, flexible & innovative. It’s amazing to see Drupal’s increased adoption in the Enterprise space. Drupal in India is growing not only in no but also in terms of contributions!

Nov 16 2016
Nov 16

At Unimity, we are celebrating Drupal 8’s first birthday by launching a new webinar series “Dwell in Drupal 8”!! 2016 has been a very promising year for Drupal 8.

Some of the areas that Drupal has learnt and evolved is to come up with a method to solve and facilitate “The transformation of Drupal through continuous innovation”. This blog by Dries demonstrates how Drupal 8 has made a key difference.

“Big architectural changes are easier”

“Short release cycles”

“Less expensive upgrade path”

“More incentive for core contributors by moving the code to production through shorter cycles”

With the new features in Drupal 8, Continuous changes in architecture and scheduled releases of versions, Drupal 8 is ready to transform the web experience. In order to deliver in this fast changing technology, it’s becoming imperative for all Drupalists to share knowledge, keep abreast and contribute back to community.

It has been an exciting year with Drupal 8 at Unimity Solutions. The projects we worked on Drupal 8 include a Pilot project for NVLI with IIT Bombay, IIT International Applicants Portal and an Infrastructure inspection workflow portal. The amazing part about all the Drupal 8 projects is that we had the consent of the end users to contribute code back to Drupal as part of the project. In order to cherish our journey with Drupal 8 we are launching this webinar series to connect people in new ways and listen to their experiences.

We are extremely happy and proud to announce that this series is being launch with one of the favourite speakers of our Community, Mr. Sivaji. Mr Sivaji is Co-founder and technical director at Knackforge. He has been a passionate Drupal contributor for over 8 years and started his contributions right in his college days. He is also active organizer and participant of the Chennai Drupal Community. Apart from being a co-maintainer of Quiz Project he is also Technical reviewer of Drupal 7 Module Development and Drupal 7 Themes book.

We invite speakers across globe to participate in our webinar series. The speaker should be a Drupal Developer / Drupal user having an interesting topic on Drupal 8 to present. You can Register through below link.

Nov 10 2016
Nov 10

Here are Simple steps to get started with theming for a Drupal newbee.

Steps to develop a theme with Zen as the base theme:

1. Analyse the full design which is given in template.

2. Unzip the zen theme, you can find the folder called “STARTERKIT”.

3. Rename that folder “STARTERKIT” with you theme name eg: “my_theme”.

4. This is the folder for your new theme. (Follow the instructions given by Zen theme).

5. Rename STRATERKIT.info.txt to my_theme.info file - this provides basic information about the theme like theme version, theme core version (drupal version), Stylesheets & JS files used in the template files.

6. Understand the structure of a drupal template regions and Define the regions for your design.

7. Regions are used to place a block or content.

8. Create your regions and introduce it in the .info file first.

Sample structure of .info file

name = My Theme

description = My Theme is my first theme for drupal 7.

screenshot = screenshot.png

core = 7.x base

theme = zen

// Stylesheet

stylesheets[all][] = css/styles.css

// JS

scripts[] = js/script.js

// Regions used in my_theme

regions[header] = Header

regions[navigation] = Navigation bar

regions[highlighted] = Highlighted

regions[content] = Content

regions[sidebar_first] = First sidebar

regions[sidebar_second] = Second sidebar

regions[bottom] = Page bottom

regions[footer] = Footer

regions[page_top] = Page top

regions[page_bottom] = Page bottom

8. Open the template.php and theme-settings.php file, then rename the functions with your theme name.

For ex:

// Before renaming

function STARTERKIT_preprocess_html(&$variables, $hook) {

$variables['sample_variable'] = t('Lorem ipsum.');

// The body tag's classes are controlled by the $classes_array variable. To

// remove a class from $classes_array, use array_diff().

$variables['classes_array'] = array_diff($variables['classes_array'],

array('class-to-remove'));

}

// After renaming

function my_theme_preprocess_html(&$variables, $hook) {

$variables['sample_variable'] = t('Lorem ipsum.');

}

9. We can add variables for basic page elements in template.php file.

For ex:

function my_theme_preprocess_html(&$variables) {

// Construct page title.

if (drupal_get_title()) {

$head_title = array(

'title' => strip_tags(drupal_get_title()),

'name' => check_plain(variable_get('site_name', 'Drupal')),

);

}

else {

$head_title = array('name' => check_plain(variable_get('site_name',

'Drupal')));

if (variable_get('site_slogan', '')) {

$head_title['slogan'] = filter_xss_admin(variable_get('site_slogan', ''));

}

}

$variables['head_title_array'] = $head_title;

$variables['head_title'] = implode(' | ', $head_title);

}

In that above example we construct the page title and assign that into the variable. Now we can use the $head_title variable throughout all the templates. In a similar manner you can create any no of variables.

10. If you need to change the template copy the files from zen base theme (Eg: page.tpl.php, node.tpl.php) and paste it into your templates folder.

For ex:

Create page.tpl.php file, it contains the code for the body of the page. You can modify that as per your requirement.

Reference links:

https://www.drupal.org/project/zen

https://www.drupal.org/node/2710573

http://johnalbin.github.io/zen-style-guide/

SASS:

What is SASS?

Sass (Syntactically Awesome StyleSheets) is an extension of CSS. Sass allows you to use things like variables, nested rules, mixins, inline imports, and more, all with a fully CSS-compatible syntax. It helps keep large stylesheets well-organized, and get small stylesheets and running quickly with the help of the Compass style library.

Key benefits of using Sass:

1. Sass provides variables as a way to store information that you want to reuse throughout your stylesheet.

For ex:

Use Variable for defining Font Face, Colours, Line height, Width - These are values used across site. Setting as variables helps us to manage change easily.

// Sass file

$page-width: 1280px;

$margin-left_right-auto : 0 auto;

page-width {

max-width: $page-width;

margin: $margin-left_right-auto;

}

// CSS Output

.page-width {

max-width: 1280px;

margin: 0 auto;

}

2. Sass provides Mixins, these are like functions in php. You can declare a mixin with arguments and use it throughout the site. There are also predefined mixins for Box shadows, Font Styles.

For ex: Mixin

//Sass file

@mixin height-width-100 {

width: 100%;

height: 100%;

}

.news-slider {

@include height-width-100;

}

.news-content {

@include height-width-100;

}

// CSS Output

.news-slider { width: 100%; height: 100%; } .news-content {

width: 100%;

height: 100%;

}

3. In Sass @extend is one of the most useful features that allows us to share a set of CSS properties from one selector to another.

For ex:

//Sass file

.height-width-100 {

width: 100%;

height: 100%;

}

.news-slider {

@extend .height-width-100;

}

.news-content {

@extend .height-width-100;

}

// CSS Output

.height-width-100, .news-slider, .news-content {

width: 100%;

height: 100%;

}

4. Sass @import pull the file before it compiles the CSS. Its is used to import (include) the raw CSS-file into different files. @import "path of your file";

For ex: @import 'base/fonts'; // in style.ccs

In the above example fonts will be imported to style.ccs file from the path base/fonts.

Reference links:

http://sass-lang.com/documentation/file.SASS_REFERENCE.html

http://www.webdesignerdepot.com/2014/08/5-reasons-you-should-be-using-sa...

https://www.sitepoint.com/sass-basics-the-mixin-directive/

Steps to have SASS working with your Drupal 7 theme

1. Let’s test if SASS is installed and compiling. Use your toolkit to compile your SASS directory or run compass watch from the command line in your theme directory.

2. You can add the styles to the .scss file. After saving your change, refresh the page and you can see the difference.

3. After saving that .scss file, compass watch command is executed automatically and it shows the modified file name.

Key tips and learning

1. Analyse full design, measure the spaces, width & height then write css.

2. Include the font, icons(i.e Font Awesome) and import the mixins,css3.

3. Write the css for mobile platform first, then using media query and alter that for tablets and desktops.

For ex:

/**

* Header

*/

.header-logo {

float: left;

max-width: 210px;

}

// For tablet and desktop

@media only screen and (min-width: 768px) {

.header-logo {

max-width: none;

}

}

In the above example, for mobile the logo width is fixed for 210px and for tablet and desktop logo width is not fixed. By this way only we can write the css.

4. In template page only one h1 is used, we can use h2,h3...h6 more than once. But only one h1 tag should be used.

5. If you use float to align the div, use clearfix code for its parent div.

For ex:

<!DOCTYPE html>

<html>

<head>

  <title>My Theme</title>

  <style type="text/css">

  .logo-img-div {

    float: left;

    width: 50%;

  }

  .logo-slogan-div {

    float: left;

    width: 50%;

  }

  .clearfix:after {

    content: " "; 

    visibility: hidden;

    display: block;

    height: 0;

    clear: both;

  }

</style>

</head>

<body>

  <div class="header-content clearfix"> // Parent Div

    <div class="logo-img"> //Child Div with float

      <img src="http://www.unimitysolutions.com/blog/steps-theme-development-drupal-7-us...">

    </div>

    <div class="logo-slogan"> //Child Div with float

      <p>This is my theme</p>

    </div>

  </div>

</body>

</html>

6. CSS Naming Conventions is one of the most fundamental and important part of developer activities. Naming conventions help us a lot making our code more readable, predictable. And when it comes to code modification and debugging, conventions help us to easily find needed part of code. 

For eg:

.is-hidden    { display:    none !important; }

.is-invisible { visibility: none !important; }

.block        { display: block        !important; }

.inline       { display: inline       !important; }

.inline-block { display: inline-block !important; }

.left  { float: left  !important; }

.right { float: right !important; }

.text-left   { text-align: left   !important; }

.text-center { text-align: center !important; }

.text-right  { text-align: right  !important; }

In above example the css class selectors are related to their properties.

// Correct way to declare the css selectors

.left { 

  float: left;

}

.right { 

  float: right; 

}

// Worst way of declare the css selectors

.left-div-content { 

  float: left; 

}

.right-div-content { 

  float: right; 

}

7. Use the colors, fonts and images which is defined in the template you have. Create image cache for image sizes. Use Display Suite, it allows you to take full control over how your content is displayed using a drag and drop interface. We can arrange nodes, views, comments, user data etc. We can also use Panels to segregate the layout. It makes layout segregation easier.

Watch our for more of my blogs! My next blogs are going to be on Drupal 8 theming & use of Panels and Display suites!

Nov 09 2016
Nov 09

Choosing CMS platform is very crucial for organizations. Without broad understanding of requirements and impressive set of features to match the requirement choosing CMS could be daunting and tricky. Here is a comparison between Drupal Vs AEM (Adobe Experience Manager) and Sitecore.

First let’s understand what Drupal is?

Drupal is the #1 platform for web content management among global enterprises, governments, higher education institutions, and NGOs. Flexible and highly scalable, Drupal publishes a single web site or shares content in multiple languages across many devices. Technology and business leaders transform content management into powerful digital solutions with Drupal … backed by one of the world’s most innovative open source communities.

Key differentiator between Drupal and AEM or Sitecore are

  1. Drupal is “ A Web content management built by the Largest community of developers.”
  2. AEM or Site core are “WCM + Analytics + Personalization all in one. Proprietary & Licenses are needed”.
  3. While using Drupal we can actually select best of breed solutions to meet the analytics and marketing automation needs to deliver a complete Web experience instead of buying all the features in one single proprietary system.
  4. Ease, Speed & Cost are key factors favourable to Drupal over other CMS platforms.

Setting record straight as Enterprise Web Content Management System and breaking all the myths Drupal holds 10 position in the CMS category in 2016 according to Datanyze Universe, a US based Technographics company. With accretion of Drupal 8, organizations acquired better ability to deliver right content to right people at right time on right device. Also, Drupal blends content with commerce to build contemporary e-commerce portals which enhance customer experiences through out buying cycle.

Some of the marquee Drupal implementations worldwide are listed below

Drupal Vs. AEM or Sitecore

Feature

Drupal

AEM or Sitecore

Differentiator

A Web content management built by the Largest community of developers.

Ease, Speed & Cost benefits are it's advantage. 

WCM + Analytics + Personalization all in one.

Proprietary & Licenses are needed. 

Flexibility

Drupal being more a platform is more flexible.

Being in open source, there is no need to wait for a Roadmap to implement any immediate need or flexibility.

Flexibility, built like a Lego, adapts to the needs.

It's Innovation friendly!

Being Proprietary, getting newer features may need to wait for them to implemented as part of the Road Map. 

Speed of Development

Faster implementations, easier prototyping

Needs more time

Responsive

Helps build customized user experiences, solutions that help in building responsive websites.

User experience and building responsive interfaces are available.

Integration capabilities

REST APIs in the core & Integratable

Integratable - relies on partners to integrate

Enterprise fit

 Meets all Enterprise criteria 

Meets all Enterprise criteria

 Security

Dedicated Security

Million eyes on the code

Process to communicate the issues in a more open and transparent manner

Security directed as by proprietary team

Scalability 

Highly scalable, integrates with memcache, varnish and other caching systems that speeds up the sites

Scalable 

Cloud capabilities

Integrates on the cloud, can be built to autoscale to optimize utilization

Support on cloud limited

Maintenance

Sign Up with any Drupal shop

Vendor agnostic approach is possible

Proprietary

End User training

Drupal 8 has usability as key feature

Easy to use

Cost

 Source code is free - pay more for value add

License costs are high

Apart from above mentioned features Drupal is chosen as CMS platform by most of the organizations because of it’s innovative features with thousands of plugins offering customization. Drupal offers flexible and adaptable toolkit emphasizing efficiency and speed. Also one of the unique feature of Drupal is its transparency. Developers prioritize and mitigate security risks both in Core Drupal and Drupal Contribution Modules owing to deliver quality results.

Contemplating above information it is no wonder that Drupal is relatively replacing other CMS platforms like Sitecore, AEM and many more.

References: https://www.acquia.com/blog/why-are-mid-market-companies-still-looking-a... https://amsterdam2014.drupal.org/session/how-market-drupal-vs-adobe-expe... http://www.slideshare.net/AcquiaInc/setting-the-record-straight-drupal-a...

Nov 03 2016
Nov 03

This blog explains how Jasmine can be used for Unit Testing.

Jasmine is a behavior-driven development framework for testing JavaScript code. The beauty of Jasmine is that, it does not depend on any other JavaScript frameworks & does not require a DOM.

To understand more about Jasmine check out

  1. http://jasmine.github.io/2.4/introduction.html
  2. http://jasmine.github.io/

Unit Test Case is a part of Software Development Process in which the smallest testable parts of an application, called units, are individually and independently scrutinized for proper operation. Unit tests are typically written and run by software developers to ensure that code meets its design and behaves as intended. Jasmine has a clean, obvious syntax so that you can easily write tests.

Before actually jumping to syntax and use cases of “Jasmine for Unit Testing’, let’s understand what is Behavior Driven Development (BDD).

Behavior Driven testing is an extension of TDD. "Test-driven development" refers to a style of programming in which three activities are tightly interwoven: coding, testing (in the form of writing unit tests) and design (in the form of refactoring).

Like in TDD in BDD also we write tests first and the add application code. The major difference that we get to see here are

  1. Tests are written in plain descriptive English type grammar
  2. Tests are explained as behavior of application and are more user focused
  3. Using examples to clarify requirements

Check out http://toolsqa.com/cucumber/behavior-driven-development/ for broad understanding of TDD & BDD

Now let's see how to use Jasmine.

Starting Step - Download the Package

It is a standalone distribution, go to the github jasmine package page and download it. URL: "https://github.com/jasmine/jasmine"

Components

The key components of Jasmine Syntax - Suites, Specs, Expectations and Matchers

Suites

To test the code or checking project steps using jasmine.

Create a jasmine with the syntax

"describe"

It begins with a call to the global Jasmine function which describe the two parameters:

"string" and "function"

The string is a name or title for a spec suite it is a wording that what is being tested.

The function is a block of code that implements the suite or testing the code.

Specs

It is defined by calling the global Jasmine function "it".

The Syntax will be like this

//////////////////////////////////////////////////////

describe("About the main process", function(){

   it("about the function", function(){

       a = true;

       expect(a).toBe(true);

   });

});

//////////////////////////////////////////////////////

Expectations

Expectations is described as "expect" inside the function which takes a value, called the actual value as "toBe". An expectation in Jasmine is an assertion that is either true or false. 

Matchers

It is a comparison between the actual value and the expected value either if the expectation is "true" or "false".

It is used in CHATBOT Applications, Headless AngularJS scripts for mobile applications etc.,

Use Cases

A sample case is below:

User searches for an address in location search using google directions API

User Behaviour

  1. Enter Search Details
  2. Click on Search Button

API Integration points:

  1. Send the address information to google map API
  2. Then get response from the google map API

Here we can check with the response value from the directions API against the expected value.

describe('get google directions', function () {

  it("should respond with direction detail", function (done) {

       userdata = { 'body': 'Hi' };

    })

    .then(function (params) {

       expect(askDestination).toBe(googledirection.askOrigin);

       userdata = {

              'body': 'tambaram'

       };

      return askDestination(userdata);

    })

    .then(function (params) {

        expect(askDestination).toBe(googledirection.askDestination);

        userdata = {

             'body': 'egmore',

             googledirection: {

                      'origin': 'tambaram'

             }

       };

      return askDestination(userdata);

    })

    .then(function (params) {

        expect(askMapImageNeed).toBe(googledirection.askMapImageNeed);

        userdata = {

            'body': 'yes',

             googledirection: {

                      'origin': 'tambaram',

                      'destination': 'egmore'

              }

         };

         return getDirectionOverview(userdata);

    })

    .fail(function (error) {

         console.log(error);

    });

});

How to run the Jasmine?

Step 1:

Install the jasmine js.

Using the Node package manager install jasmine module.

Run the command line prompt

Choose the folder path in the cmd prompt

CMD: “npm install jasmine”

Then

CMD: “jasmine init”

Step 2:

Create a folder called spec inside the project root folder

Step 3:

Run the command line prompt

Choose the folder path in the cmd prompt

Step 4:

Add the file testcasefile.js inside the spec folder.

Step 5:

Then run the below mentioned command

“jasmine spec/testcasefile.js”

Response

1. If you are running single spec i.e., it function in a describe function. It will respond like below.

Result: “1 test, 1 assertion, 0 failures, 0 pending spec”

2. If you are running 3 spec with multiple it functions in a describe function. It will respond like below.

Result: “3 tests, 6 assertions, 1 failure, 2 pending spec” 

3. If you need to skip any particular spec just update it to xit.

Result: “3 tests, 8 assertions, 1 failure, 1 pending spec, 1 skipped”

In the result

“tests” are the total no. of spec (it) functions in a describe function.

“assertion” is the expectation (expected value) of the result on a particular step.

“failure” is the failed case of the result on a particular step.

“pending spec” is the case in which the spec is still waiting for the execution.

“skipped” is the case where it is defined by an user in which change the it function to xit If the function is not necessary for the execution.

In today’s world of Headless Drupal, Device agnostic development, Chatbots we embrace the use of many javascript frameworks. It is important that the development also has a BDD testing aligned to ensure an out-side in methodology.

Popular BDD tools used in Drupal include: Behat, Spec and Simple Text Fixtures.

Here's a link on Drupal 7 module for integration between Drupal, Jasmine JS and Phantom

Check out below links for other interesting topics on Jasmine.

  1. http://howtodoinjava.com/scripting/javascript/jasmine-javascript-unit-testing-tutorial/
  2. https://code.tutsplus.com/tutorials/testing-your-javascript-with-jasmine--net-21229
  3. https://www.distelli.com/docs/tutorials/test-your-nodejs-with-jasmine
Oct 27 2016
Oct 27

Hi Friends, I am Saranya and I am glad to share my experience of my first & recent work in drupal 8 contrib modules with you all.

Features of Tablefield Contrib module:

  1. This module allows to attach tabular data to a node in drupal 8
  2. Tablefield is a field type, supported widget types are text field, i.e In table field, each table cell is a textfield
  3. The input form allow the user to specify the number of rows and columns
  4. Enter data using keyboard or by csv upload
  5. Table data can be downloaded as csv file by your user if you so choose

On the node create page, the Table field will look like:

The Use Case for which we picked this module:

This module was used in IIT International Applicants Portal (IITIAP). IITIAP facilitates foreign students to register for Postgraduate courses across IITs. Indian Institute of Technology, the IITs, provide best of breed technology and research related programs in the field of Engineering and Sciences. Through this Portal foreign students can search and identify relevant courses and complete the entire registration through an easy online process.

We used the Table field module as part of User profile, Application form to capture Users education details. This needed us to extend the module beyond the default test field widget capabilities. Wrote code to extend the support Date & Select list types. The UI was also extended to provide an explicit button for “Add Row”. Fixed issue faced when a table field was left empty or unset.

Used this module to get the user details like completed course or examination details.

Enhancements to Table field module

Select field in table cell:

Introduced as part of Storage Setting form option to define Select fields.

Provided option to:

  1. Get the number of rows that needed select list
  2. The column number (which column select option should append)
  3. Finally the values for each Column

The interface used Ajax to capture the information.

Date field in table cell:

Introduced as part of Storage Setting form option to define Date fields.

Provided option to:

  1. Get the number of rows that needed select list
  2. The column number (which column select option should append)

Added one button as “add row”:

The default module has features to add row and column for an admin user with appropriate permissions. In our case we need the users to be able to only have Add Row permissions alone and not alter the column. Hence created s button as “Add Row”. If the user click that button one row will get added by ajax call. User can add row dynamically whenever they wanted.

Issue when table field was left empty

If user didn’t fill any rows in table and was left empty, they still showed up on the view page. This issue was fixed by not displaying empty rows.

Issue:

After Fix:

 

 

Issue Queue

Select In Table Field
Date in cells of the TableField
Adding Row Dynamically in table field
Disable Empty Cells

Oct 24 2016
Oct 24

During our Board Retreat,  the Staff Board mixer gave us a chance to meet the staff members and the staff members to meet the Board. The staff's commitment and involvement to the project is amazing and definitely needs a pat on the back!

Ryan, Rudy, Neil, Tatiana, Brendan, Mark lead by Tim Lehnen have been working behind the scenes on drupal.org, bring improvements consistently over the last few months. Key aspects they worked on include:

  1. The Evolution of the DRUPAL.ORG front pages
  2. DrupalCI
  3. Composer
  4. Community Initiative Updates: Documentation Migration, Project Application Process and Drupal 8 User Guide

Tim Constein, Rachel Friesen, Amanda Gonser, Elise Horvat, Kris -

They all play various roles from Event planning, Sponsorships and more to make sure our DrupalCons are executed seamlessly. Rachel is our Con strategist and makes sure they run on budget and has a great experience. Amanda manages all all the content/programming and local events, which means she is working with all of the track chair volunteers, local community members, and other volunteers to bring the magical content to the event. Tim is our Sponsor Fulfillment person. Our sponsors love their experience because he makes sure it is a great one. Elise and Kris Klinkhammer handle AP, fiscal sponsorships, and more. Many of you must have met and interacted with all or most of them at many points during your Drupalcon.

Carrie Lacina is a super power. She runs the revenue team, creates our digital products like Try Drupal and handles Account Management for key accounts. She creates revenue programs that support our mission like the TryDrupal program!

Delona Lang works with our Partners and is the Account Manager Drupal Agencies, Lizz Trudeau takes care of memberships, Bradley Fields our content manager, works on content, social media and more…

Checkout the Association Staff page to know more about them.

Last but not the least, Megan their Executive Director needs a special mention. She has been an inspiration, great team builder and an amazing leader. She has been working closely with the staff to transition many changes in the last 6 months. I truly admire her execution focus, passion for Drupal and the Drupal community.

What has been amazing is that though each staff has a specific role, in the last 6 months they have worked together beyond their stated roles to make Drupal Association meet their goals! Do follow the work of the Association as they publish them at https://assoc.drupal.org/news, share your views and encouragement!

Thank you Megan and all the Association staff for all the hard work!

Oct 14 2016
Oct 14

Drupalcon is always special! Back from DrupalCon, left feeling happy, proud to be part of a caring Board, a passionate DA team and last but not least the wonderful Drupal community.

Drupal Board Retreat

Was in Dublin Friday evening 23rd September. Saturday and Sunday was the Board retreat at The Gibson hotel.

The Board meetings at the conferences are day-long sessions where the 12 Board members along with Megan the Executive Director of the Drupal association work together on a strategy for the Drupal Association. The 12-Member Board includes 1 Founder Member (Dries Buytaert), 9 Class Directors bringing various expertise and 2 At Large Directors elected by the community. We have a very interesting mix for our 9 Class Directors - Tiffany, Vessa and Jeff all run successfully large Drupal shops, Rob who earlier worked with NBC & now part of Acquia, Mike who works with Pfizer, Danese brings with her the best of Open Source Strategies from her various open source associations, Sameer from the education background - brings a good external perspective, Donna brings in her expertise from having organized large open source events, a great community person, Steve comes from a technical background, the COO of Docker project, involved or been a part of multiple open sources technologies - again brings a good external perspective and experience from similar communities. Addi & I are the community elected At Large Directors on the board.

To know more about us checkout https://assoc.drupal.org/node/1589

 

Drupal association is a non profit to support initiatives that in turn benefit the Drupal project and community. The Drupal association operates with the Mission that - Drupal powers the best of the Web. The Drupal Association unites a global open source community to build and promote Drupal. The key initiatives that Drupal association has been sustainably maintaining drupal.org and running Drupalcons. The Board worked with Megan in defining the strategic direction and the boundaries in which the association should operate to ensure Sustainability. The Board also actively involved in the implementation through Task Force that jointly represent the community, Board and the association.

Megan presented us the work of the Drupal association and this was followed by a strategic planning session that was facilitated by Adam. Adam plays the most important role to make sure we work towards structured outcomes that then provide direction to Megan and the Drupal Association staff. Key objective of the retreat being:

  • Reach a shared understanding of issues and opportunities for the Drupal Association in 12 - 24 month duration.
  • Pick the top three opportunities and strategic focus areas
  • Discuss to provide guidance and help identify resources, Task Force to support the same

Day 1 had the Executive update and Financial update from Megan, followed by a session to Discuss and select Strategy Questions to address. Day 2 was spent on more elaborate discussions on the selected Strategic focus areas. Watch out for the Public board meetings at DrupalCons where the DA presents the work that they have done and the Board and DA jointly take questions from the Community. Below is the video of the Public boarding.

[embedded content]

My Next Steps

I am proud to represent the vibrant Drupal Community as a Board member. Besides being involved in the strategic planning want to spend my next few months speaking to more members of the community - Drupal developers, Core Developers, Drupal Community Champions, Shop owner and more. Do reach out to me for any clarifications or support. Best way to connect with me is by dropping a mail to [email protected]

Watch out for my next blog on the Board Staff Mixer!

Sep 22 2016
Sep 22

Today, the Newspapers & Magazine industry is turning towards digitization to cater for Millennial and Gen Z. The publishing industry is keen to choose Open Source Technologies such as Drupal as their CMS platform over other native applications. This blog shares with you Key Requirements of Digital Publishing and How Drupal could be a best choice for Digital Publishing Solutions through this Presentation. Leveraging on sophisticated features of Drupal 8 Publishers can now deliver right content to audience at right time on right device.

 

UniMity Solutions provides expertise in designing and offering High performance publishing Solutions that are Scalable and Cloud-friendly. Our D2L in Drupal approach enables us to provide contemporary business solutions that enable us to create dynamic and engaging content. UniMity help to incorporate rich media, build reader community to interact and maximize online revenues streams. You can also harness the power of UniMity's proprietary "Analytics & Stimulation Engine" to capture readers' preferences, link to a Personalization module to configure reader-specific content and default delivery to Web and Mobile app.

For more information on requirements of online publishing and modules used you can also read our blog on Top 10 Requirements in Online Media / Publishing.

Sep 21 2016
Sep 21

DrupalCon Dublin is just a week away!! With all the excitement surrounding the event we often forget to look at key things to expect out of this event. What should one learn out of DrupalCon Dublin? Is it only for Drupal developers or should CEOs, Managers and owners attend? What’s the use of attending an event on OPEN SOURCE TECHNOLOGY? Is it useful for growth of businesses as well?

Dries Keynotes - Where vision or plans for the near future would be shared by Drupal founder Dries. Drupal 8 is still at its early adoption state and more & more interesting stuffs are being added to Drupal 8 like BigPipe, Inplace Editing, etc. Keynotes would be an insightful session for companies that rely on Drupal and developer/artisans who want to build their career on top of Drupal.

https://twitter.com/Dries/status/776430201718837248

Drupal 8.2 rc-1 beta version - Drupal is always about contributions. With Drupal 8.2 rc-1 beta version out, the atmosphere is electrified with discussions on new features available. DrupalCon Dublin could be a stage for hot debates and discussions on this new launch.

https://twitter.com/gaborhojtsy/status/769143640518197248

Face to face interaction - It is a great chance to meet people who designed features which you daily work with. The hall will be packed with amazing programmers talking on latest technological updates. A chance to meet our mentors, maintainers of our favorite modules, core developer who commit our patches, system admins who keep drupal.org running smoothly and many such key stakeholders of Drupal under a single roof. It's a rare moment to shake hands, take a selfie, exchange opinion on specific subject, wine and dine with them. We can see people being united there for a software though they come from different cultural and geographical background.

https://twitter.com/skwashd/status/777223386485239808

Meeting your business goals - You can see a mix of business talks, case studies and management topics which could make even a non-technical guy feel enthusiastic. Even a management person could connect dots to expand his business. It’s always important to know market and your competition. Attending such events gives you clear picture of where you stand and what are the benchmark practices in your industry. Innovative revenue streams, new business opportunities, positioning strategies- DrupalCon is a stage for all these. You should just show up and chat with fellow Drupalites and your business can grow fourfold.

Code sprints - Opportunity to sit and code with Dries, Webchick and other top developers to make Drupal even better. There would be training sessions for Novice contributors as well to get started for contributing to Drupal.

https://twitter.com/wizonesolutions/status/776737236796727296

Stalls - Sponsoring Company gets a space to showcase their services and portfolio. People make business contacts and help each other to grow their businesses.

Of all others a wonderful opportunity to get Acquia certification which can be taken up at DrupalCon venue.

Apart from all the above it’s time to have some CRAIC!!

Ireland is fun to dwell in..

Sep 15 2016
Sep 15

Our first blog Video Annotations: A Powerful and Innovative Tool for Education explained power of videos in education when combined with features like video annotation and second blog Identification of an Open Source Video Annotations Tool for NVLI listed evaluation criteria of open annotation module that assisted NVLI project. This third blog in the series will involve defining the overall architecture of the Video Annotation solution in Drupal.

The Front facing user Page loaded the Video.js plugin and OVA plugin to support Annotations. The Plugins are integrated with Drupal using modules. An Annotation Store module is built to support Annotations from different tools. The Architecture provided for the actual Videos to be stored in a separate Video streaming Server.

Below are the details of the steps that need to be followed to configure the same in Drupal.

1. Install Video.js module for Drupal 8.

2. Install OVA for Drupal 8 to integrate with Open Annotation Plugin.

This Module allows:

  • Select formatters Ova Audio Formatter & Ova Video Formatter.
  • Allowable formats Video: mp4, ogg, youtube, webm Audio: mp3

3. Install Annotation_Store module. This Storage was built in a manner to support Open Annotation standards and capability to support multiple Front facing Annotation tools. As part of the project this store was simultaneously used by both OVA and Mirador modules.

Key Features are:

  • Annotation Store Module is mainly focused on storing the video annotation data [Open Video Annotation Library] locally in drupal.
  • This modules creates the annotation data as an entity in drupal 8 in the name of "annotation_store".
  • The entities which are created is listed at "/admin/annotation_store/list".
  • Annotation list link is provided at '/admin/content'.
  • Display date format at annotation list can be configured at /admin/config/media/annotation_store.
  • This information includes Annotation text, type, URI, user, created and changed time stamp.
  • Key actions supported are Create Annotations and Search & Fetch Annotations.

The Schema for Video Annotation:

{"rows":[{

  "permissions":{"read":[],"update":[],"delete":[],

  "admin":[]},

  "media":"video",

  "text":"Test",

  "ranges":[],

  "uri":"http:\/\/localhost\/drupal-8.1.2\/ova-page\/23",

  "id":"5",

  "target":{

    "container":"vjs_ova_",

    "ext":".mp4",

    "src":"http:\/\/localhost\/drupal-8.1.2\/sites\/default\/files\/amalia01.mp4"

  },

  "rangeTime":{

    "start":1.473551,

    "end":2.977551

    }

   }

 ]}

Features to be developed in future includes

  1. Spatial Annotation
  2. Video Transcripts

UniMity Solutions assisted in building Annotation feature for Audio and Video assets for NVLI. IIT Bombay supported contributing the work done in this project to Open Source.

Aug 31 2016
Aug 31

Coupled with increasing literacy rate publishing industry in India has seen tremendous growth in the past decade. Contradicting the global trend, in India the Newspaper industry has seen 8% growth last year. Most of this growth is driven by vernacular newspapers. It is expected that in the next decade regional newspapers grow at a rate of 12-14% as primary source of information. Although there is an increase in the adoption of digital books, digital news is yet to be accepted by Indians.

Disclaimer: All the above information is taken from the report on Digital News Report 2016 by “The Reuters Institute for the Study of Journalism”.


 
Disclaimer: All the above information is taken from Govt. of India RNI website 

Although the above information is overwhelming for digital publishers, we have to consider some facts to understand the future changes in the landscape of Indian Newspaper & Magazine industry. A few developments could be game changers to turn print dominated publishing to digital. 

  • With missing desktop generation, India is witnessing evolving smart phone generation. 
  • India is the world’s second largest internet market. 
  • Print media is consumed mostly in semi-urban and rural areas. Urban population, especially millennials are adopting digital news at skyrocketing pace.
  • Initiatives like “Digital India” by government is acting as catalyst to growth of digital publishing in India.
  • The ability of digital media to engage audience and freedom to express their opinions on a particular topic. Digital media is always a two way communication.
  •  Increased velocity of news generation and consumption.

Click on this link for statistical references of growing internet, broadband & mobile usage in India from “The Hoot” company.
 

Comprehending all the above information it is inevitable that Newspaper & Magazine industry has to re-invent themselves in order to cater to future generations with quality content as driving force. But “Print is dollars, digital is dimes and mobile is pennies” still holds true for most organizations especially in India.

 So how can publishing companies keep ahead of the game with digital publishing at “introductory” stage of life cycle?
“For Media companies ‘Time is money’. Once they grab the time of users they can monetize it in future” says Azar Iqbal, founder of Inshorts.

In the mean while organizations has to sustain and build strong foundation to emerge as winners in cut throat competition. Especially in media, an industry where brand and customer loyalty are key factors for success of organizations,

How can publishing companies generate revenue in sustainable ways?
Diversifying revenue streams has been an innovative strategy for organizations to achieve profits and continuous growth.

The different strategies for Revenue Streams include:
A.    Paid content access Revenue/ Paywall
B.    Advertisement Revenue
C.    Services/ Classifieds
D.    E-Commerce

 

A. Paid content access Revenue/ Paywall
Paywall functionality should allow monetization of the online content. 
Depending on the Paywall rules defined, the following types of access is possible:

Access Type  

Rule

 Comments

Free Access

 

No restriction. Full access to the article

 

Access by Registration 

Teaser / first few paras access is free. Registration required for full access. No payment required

 

If the reader is a registered reader / subscriber, he / she should be able to login and access the content.

Access by Payment

Teaser / first few paras access is free. Registration and Payment is required for full access. 

If the reader is a subscriber, he / she should be able to login and access the content.

Depending on the subscription model and price of the article the account should be debited.

Features:

  1. The above rules can be applied for archived content as well.
  2. Irrespective of the source of hit (search results, direct URL, link from other sites etc.) the Pay Wall rules should apply.
  3. Additionally, special benefits to subscribed readers can be extended, such as discount coupons, invites to events, competitions for example.

Paid access can be implemented in forms like:
Subscription - Set of exclusive sections can be made accessible only for subscribers and a teaser of the content can be presented for non-subscribed readers, prodding them to subscribe for further access. Subscription based revenue should be a reliable stream of revenue. 
Pay for view - Exclusive content (like exclusive hyper local town specific cricket match reports) can be made pay and see. Rules can be applied to:

  • certain number of articles during certain period
  • access for certain categories of articles
  • access for article by certain authors
  • various combinations of the above

Downloads/ Special Newsletters - Downloads could be items ranging from latest Tamil movie release trailer/ poster to Practice Question Papers for local university entrance exams.
Pay Wall Rule Engine - The Rule engine should be parameterized so that various combinations of rules can be built.
 

Check out this article by CAMPAIGN INDIA on Newspapers in India: Will subscription revenue overtake ad revenue?

 The Financial Times and Vikatan Group, a popular vernacular magazine group are some popular examples where pay wall has worked.

 

B. Advertisement Revenue
Today Advertisement also needs to be personalized and non-intrusive. Understanding the demographics and behaviour of the reader is important to reach out to the right audience.  
Based on the readership engagement strategies, the readership can be increased and further Advertisement revenue channels can be leveraged. Ability to identify and classify the reader should help better sell advertisements.
Traditional Online Advertisements are:

  • Contextual AdSense Ads
  • Pay-per-click Ads
  • Display ads
  • Ads from Central Ad Server

Other Online Advertisements methods could involve:

  • Personalized Ads where Readers subscribe for categories in which they want to receive ads
  • Targeted Ads which are based on the demographic and behavioural information collected.
  • Statistics on importance of Ads for Web

Check out this article by LIVE MINT on Ad spending seen growing at 15.5% in 2016, driven by digital
 

C. Services/ Classifieds
Localized listing of services and facilities (eg. Rentals, Job, Property, Matrimony, Home Services) for ready reference of readers should add value and posting for the same can be monetized (or) even if such listings access is free, targeted display ads on such sections can be solicited, which should be paid ads. 
Key Features needed to support online classifieds are

  • Classification of Ads
  • Ad Submission workflow integrated with payment
  • Tagging & Listing of Ads
  • Intuitive Search interface to help search Ads
  • Ads to be tied with key Actionable link  and Notification system

Check out this article by WORLD NEWS PUBLISHING FOCUS (WAN IFRA) on Classifieds: high-margin business with room for new players

D. E-Commerce
A store for the readers can be added. The products range can be built towards the targeted readers. Localized content for global audience like options to order gifts to be delivered locally can be added.  Special deals/ offers can be floated. 
Key Features needed to support online classifieds are

  • Inventory definition and management
  • Cart management
  • Order and Shipping Management
  • Invoicing
  • Payment Gateway Integration

One of the Indian examples is the India Times Online Shop.
Related discussions are available at Newspapers Pursue E-Commerce

The paradigm shift of publishing industry shows that creativity and out-of-box thinking is the way forward to build a stalwart brand and establish credibility among audience for digital publishing companies. Valuable offerings can increase subscriptions which can be a best revenue stream for digital publishers.

UniMity Solutions worked with wide range of digital publishers across globe bearing international, national and regional titles leveraging on rich availability of features in Drupal. We help our customers to migrate their publications from print to digital. We integrate features like content management, editorial features, video players, SEO, analytic management and many more to enhance the reading experience of their audience.
 

Aug 24 2016
Aug 24

As mentioned in our earlier blog on Video Annotations: A powerful and innovative tool for education, the most intriguing feature of the pilot version of NVLI is Video Annotation. UniMity Solutions assisted in building Annotation feature for Audio and Video assets. This involved identifying and integrating an open plugin that supported video and audio annotations and a generic annotation store module that was plugin agnostic.

The first step of the project was to identify a suitable plugin, open source tool that support the Annotation needs of the NVLI project.

The tools reviewed included popcorn.js and Open Annotation Plugin. Popcornjs provided by Mozilla Foundation is an HTML5 media framework written in java script for film makers, web developers and anyone who want to create time-based interactive media on the web.  Annotations need to be pre created and made available through scripts. This plugin does not provide a user interface to create annotation.  The Open Annotation Plugin met most of the requirements and was on top Video.js plugin, which has a lot of adoption in the Education space.

The identification and finalization of the tool was done through a systematic process of evaluating them against specific criteria.  As Open Annotation Plugin requires Video.js, wherever required details of Video.js also provided.

Find below the criteria used to evaluate Open Annotation Plugin:

S.No

Criteria for Evaluation

Details

1

Name of Tool used

Open Video Annotation Project used with Video.js

2

Licensing

2.1

Licensing for Open Video Annotation Project

Open Video Annotation by Philip Desenne and Daniel Cebrián Robles is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

2.2

Licensing for Video.js

Licensed under the Apache License, Version 2.0

3

Standards compliance

3.1

Annotations

Compliant with Open Annotation data formats

3.2

Compliance

Open Annotation Data Model

3.3

HTML5 support

Video.js works with HTML5 only (Default failure msg built in)
Key HTML5 features include, Video, audio tag, buffering and fall back.

3.4

Accessibility

Video.js Is accessible, need to review accessibility of Open Video Annotation Project

3.5

Browser

Google Chrome, Firefox, Safari, Internet Explorer 9

3.6

Device Compatibility

iPhone, iPad, Android

3.7

Video Formats supported

MP4, ogv, webm

4

Customization

4.1

UI using CSS

Possible to override Plugin CSS - By adding weight to the style classes.

4.2

Modular Code

API Methods to take control of the plugin are listed at GitHub

5

Functional Requirements

5.1

Out of box functionality - Standard Play/ Pause/ Stop; Volume Control

Yes

5.2

Annotations

Supports Annotations - Yes

5.3

Timeline based

Yes

5.4

Spatial

No

5.5

Unicode Text Support for Multilingual

Multilingual for annotations -
This can be managed by Drupal as all annotations are saved as entity. More advanced understanding of the plugin's multilingual capability and the overall multilingual architecture  will be taken up separately

5.6

Support for Text/ Rich Text/ Images/ Embed Videos/ Audio

Yes

5.7

Annotation Scope
(Public and Private)

This has to be handled in Drupal. The annotation store will be stored as entity. The entity author will help track the author.

6

Community Support

6.1

Founder

Twitter ID of Daniel

6.2

Working Group

https://www.w3.org/community/openannotation/

6.3

IRC Channel

#videojs , no separate channel for open video annotation found

6.4

Newsletter

Not Available

6.5

Product Roadmap

One request for 3D Annotation is been raised - No clear date or plan for implementation

6.6

Usage Stats and Case studies

Top users of video.js - newspaper sites, "the ONION" and "theguardian"

7

Technology

Based on open-source java script libraries
Extending Annotator Open Knowledge Foundation Project
Build on top of the Video.js the open source HTML5 video player
Compliant with Open Annotation data formats
Customizable and mashable with open API's
HTML5 components

8

Architecture

Annotateit - For storing annotation data
Rangeslide JS - Simple, small and fast JavaScript/jQuery polyfill for the HTML5
ova JS -  handles the java script for managing display and annotation creation UI on the HTML5 video.

9

Libraries Used/ Dependencies  

Open Video Annotation Library/Videojs

10

Ease of Integration

Open Video Annotation Library - for Annotation
Annotation Module helps to store the annotation data.

11

Security Compliance

Has to be handled by Drupal
– Filtering text to prevent SQL Injection
– For internal store Drupal will handle the security.

 

IIT Bombay wanted to leverage Open source technologies and share the work back to relevant communities and hence we choose this open tool. Integrating this with Drupal meant having it work with content types, Drupal entities and more.

Watch out our next blog for solution architecture in Drupal….
 

Aug 18 2016
Aug 18

Education through videos: The future class rooms

According to John J Medina a famous molecular biologist “Vision trumps all other senses.” Human mind is attracted to remember dynamic pictures rather than listen to words or read long texts. Advancement in multimedia has enabled teachers to impart visual representation of content in the class room. But the educators has to understand the importance of visual literacy. Using videos in education help students to turn ideas and concepts to experiences. Pairing with brain’s ability to visualize, videos help students to grasp and retain the information. With meticulous choice of content and quality, videos could be most interactive and engaging medium for students.

According to a survey “Cisco Visual Networking Index Predicts Near-Tripling of IP Traffic by 2020” by CISCO the internet traffic is dominated by video services and content management of all other applications. Internet video will account for 79 percent of global Internet traffic by 2020 up from 63 percent in 2015. Akin to above statistical information there is a substantial research supporting videos to be a part of regular curricula for students.

Power of Video Annotation

Videos are powerful medium but the content in the video are not easily searchable. How can an audience discover their desired video or search for a particular context in large piece of video content? This is answered by Video Annotation.

A video annotation can contain commentaries, images, keywords and hashtags. The commentaries can help in identifying people, places and events. In short Video annotation helps to post and fetch commentaries inside a video clip.

When a user searches for a particular keyword the video comes up in the browser based on these annotations.

Video annotations possess features like embedded quiz which help trainers to get interactive with trainees. Also this is a remarkable feature for teachers to keep pupils engaged. Video annotations help trainees or students to take action during the session holding the discussion. Film industry also uses video annotations more extensively in their field for adding commentaries.

Videos can be annotated in 2 different ways. 

Timeline annotations: An annotation on a timeline of the video.

Spatial annotations: These are used to annotate any place on the video at a particular time frame presented as overlays of user generated graphics, customized annotation marks.

As the videos are gaining viability in education industry as a better medium to enhance student experience and make lectures a more engaging activity, video annotations are great way to bring vibrancy in the class. Imagine a child’s vivacity if the video can display comments on a particular situation, identify famous people in the video by tagging, Stop during particular time line and asking to guess further….. All these are possible through video annotations.

Realizing the increased adoption of digital information, Ministry of Culture, Govt. of India incubated a project called NVLI. National Virtual Library of India (NVLI) is a centralized knowledge hub for various digitized assets such as scholarly articles, research papers, journals, books, videos. These resources will be pulled from various universities/ colleges/ government and private libraries who would like to host their content on NVLI. The features of this project includes Solr Search, VuFind, OAI-PMH views and import, Audio and Video Annotation, Integration of Annotation with IIIF server, Private Archive Distribution.

One of the most intriguing feature of pilot version of NVLI is Video Annotations. UniMity assisted in building Annotation feature for Audio and Video assets. This involved identifying and integrating an open plugin that supported video and audio annotations and a generic annotation store module that was plugin agnostic. IIT Bombay supported contributing the work in this project to Drupal.

Watch out for our next blog to see how Drupal helped to develop video annotations with less complexity…..

Apr 26 2016
Apr 26

Here is a case study of how Drupal helped in implementing a customer portal for a major utility service provider in the US.

Utilizing Drupal's default content management and community building capabilities and extending it to customer needs helped deliver an Enterprise class Customer facing portal under aggressive timelines

Below is a summary of the key features of this customer portal mapped to the associated Drupal capability that was leveraged and enhanced.

  1. Content Strategy related functional requirements

The need for different types of pages in the sitemap was broadly divided into Landing Pages, Individual Pages and Functional Pages and it was easily achieved by using out-of-the-box content modelling tools in Drupal like Content Types, Views and Call back functions.

The flexibility for the editor to create dynamic landing pages with variants in UI (Image and Text combinations, layout variants) was possible by extending the content type interface.

  1. Support of Responsive Layout and Ensuring Accessibility compliance

The out-of-the-box base theme used, with inherent responsive capability made the UI turn around much faster and ensured best practices were adhered to.

Accessibility requirements were met by the APIs available to extend the theme and forms.

  1. Comprehensive content publishing workflow

Using Drupal’s native content create/ edit and publish workflows, a comprehensive content management system with localized access was provided.

  1. Content related controls

Media player, Telephone Field Controls were plugged in using readily available modules. Social Media content share controls and SEO Optimization was easily achieved using readily available Drupal’s modules.

  1. Audience Categorization and Localization requirements

The general audience and the logged in audience that were categorized as Std/Non-Std/ Informational users were managed using the user types. Localization was supported to present

BUs context related information using the taxonomy module.

  1. Uniform Navigation and Menu control

Using the built in menu module the navigation at various levels have been created and administered using interface in the admin.

  1. Alerts

By extending an existing module (newsletter), the alert functionality was easily achieved

  1. Overall ease of application maintenance

With an active community supporting Drupal, enhancements to modules, security updates are published periodically and these are applied to the Drupal code base.

  1. Search of Content

Using a powerful search engine, that comes with a inbuilt integration module, comprehensive search of content was achieved.

  1. Integration with backend Enterprise backend

Drupal allows the flexibility to easily integrate with various enterprise backend, thus allowing the complex existing business backend functionalities to co-exist with contemporary state of the art front end user in

ce capabilities of Drupal and thus leverage on the ease of use.

  1. Security

Multi pronged security checks can be implemented with ease using Drupal. This includes, encryption of sensitive data using AES encryption was achieved using readily available modules and API, hack prevention by using Captcha, flood control.

  1. Analytics

Google Analytics and Event tracking modules to provide extended analytics

  1. High Performance and Scalable architecture

Support for integration of 3rd party plugins like Varnish and Memcache help facilitate fast delivery of content. Drupal also supports integrating with cloud components that help build scalable infrastructure.

Mar 30 2016
Mar 30

Excited to share I have been elected to the Board of Drupal Association, https://assoc.drupal.org/blog/holly.ross.drupal/2016-drupal-association-.... The support and campaigning of all my friends and well-wishers and the Drupal community has helped me get to this prestigious post! Thanks all for your confidence in me! Looking forward to my contributions to Drupal in this new role.

What is Drupal?

Drupal is primarily a CMS (Content Management System). Used to build state of art portal with dynamic content, intuitive editor dashboard, responsive layouts, interactive social features and much more.

Drupal, apart from being a CMS, also provides a strong development framework with which a wide range of web applications can be developed. Its API functions and Hook system provides simple yet powerful means to extend functionalities. You can quickly build community portals, ecommerce solutions, publishing portals, customer engagement portals, e-learning platforms and the likes.

Drupal is a pioneering open-source Content Management System that is used to run over 1 Million websites around the world. Leading media houses (like The Economist, Fox News, BBC Store, The Independent), government websites (like cities of London, Los Angeles, Austin), universities (like Minnesota, Rutgers, Surrey, George Washington, Chicago) and corporate organizations (like Johnson & Johnson, Timex, CARE International) and many others, use Drupal to power their websites.

What does Drupal Association do?

The Drupal Association is an educational non-profit organization that supports the Drupal software project, the Drupal community and its growth. The Association is supported by both individual members and organization members.

The Association uses its resources, network and funds to constantly engage in new projects and initiatives to:

 - Popularize Drupal

 - Provide Training in Drupal

 - Support growth of Drupal project

Who constitutes the Drupal Board?

The Drupal Association has 13 Board members consisting of 1 Founder Member (Dries Buytaert), 10 Class Directors bringing various expertise and 2 At Large Directors elected by the community. Checkout the Drupal Association board members at, https://assoc.drupal.org/about/board

What is my role on the Drupal Board?

Want to bring to Drupal Association a representation of one of the largest and actively growing Drupal community, India. Also with my skills, a combination of having been in senior management, community building, technology, I am confident I will be able to support the association in many strategic decision making. The key areas I will focus on would be evangelising Drupal, specifically adoption in Enterprises, Government & Education. Would also continue to support community building activities for Drupal. Listening to the voice of the Drupal community, specifically India, will be an integral part of this role.

Feb 25 2016
Feb 25

Drupal is awesome as always! At my first  speak to the candidate session on wednesday, not only did I speak for myself, but also got a chance to meet other candidates who are standing for the Drupal Board - Director At Large. Each of the candidates had so much to share about their contributions and were from different cultural background and brought different skills and competencies. This shows how Drupal has grown in the last years. For those of you who could not make it to my first session, some key questions and my responses. Here is the link to the video.

[embedded content]

Why should you choose me?

Want to bring to Drupal Association a representation  of one of the largest and actively growing Drupal community, India. Also with my skills, a combination of having been in senior management, community building, technology, I am confident I will be able to support the association in many strategic decision making. Specifically with respect to increasing awareness, fundraising  and community building activities for Drupal.

Having worked in multiple initiatives in the Drupal project, I understand and can align myself with the key goles of the association. 

You could do what you want to do without being a part of Drupal Association, what is the additional value of being in the Drupal Association board?
Very true,Board or not some of my ideas on how organizations can support and facilitate  in improving quality and quantity of contributions is going to be my vision in the coming year. I feel the role will give me a better visibility and make it easy to gain support from other organizations. 

What is one thing you would like to do before you complete your Drupal Board Member Role?

See top 10 contributors list showing more Asian programmers, Have more Asian companies at the top of Drupal contributions.

Would you recommend local chapters and local associations? or a centralized Drupal association?

For the current size of the Drupal community a single DA is the best. Local bodies could be formed more for operational reasons. But there is no one recipe for all, some of the local associations help in strengthening the community better.

Drupal association has more American representation, how do you think they can be more inclusive?

With the current contestants being from across countries we are setting the tone. You can not have all communities represented at any point. That being the cases, strategize for  Drupal Association to work with local representatives is very important to make it inclusive.

Fund Raising for Drupal 8 was an initiative taken up by Drupal Association - was it right?

I think it was a wonderful and timely decision. Drupal 8 was very close to launch and just needed that extra push which this fund was able to provide. Moreover this also gave those who could not actually contribute through code also an opportunity to contribute. Such specific initiatives driven by Drupal Association is much appreciated.

Have more questions join the last of the meet the candidate session on 25ht/26th Feb, https://zoom.us/webinar/register/35df922afa11f9c07c24e00bf0acd2b8 

Anyone with a Drupal.org account, logged in atleast once in the previou one year can vote. Even with such a large Drupal community the no of vote at the Elections is always a very minuscule percent. This time with the vast diversity in participation we hope to see a larger representation and participation of the community. We value your vote. Look to your vote of confidence!

Dates to mark on your calendar: Voting will be held from 7 March, 2016 through 18 March, 2016

Feb 23 2016
Feb 23

1025 attendees from 32 countries, 82% first #DrupalCon, 81% attendees from India, 40% vegetarian! #DCAsia @DrupalConAsia

— webchick (@webchick) February 21, 2016

Thank you! Drupal Association and Drupal Indian Community Members for putting together the most fabulous experience for the Drupal enthusiasts of the community. The Venue sponsor IIT Mumbai needs a special mention.

Our Journey @DrupalConAsia, A short message from each of our Drupal Development team and their learning and contributions at DrupalConAsia

 

Drupalcon-Asia_Sponsorship.jpg

Arun - “ It was a fascinating experience where people from  the world all over came to India to celebrate Drupal 8. “

Key Takeaways:

  1. Enhanced Git functionality: Drupal 8 provides an opportunity to read the updates from a patch and paste it in the existing code, thus eliminating the chance to miss any code during the copy paste procedure. This is certainly a breaking improvement for updating the patches using a simple code in Drupal 8.

  2. The Drupal 8 provides another IDE that helps to customize the rendering process of the text. This is a Drupal complaint editor that supports predefined formatting of spaces, paragraph for the editor.

  3. The other aspect that was really helpful was Caching. Drupal 8 supports both Dynamic and Static content in the same page, where Dynamic content changes every time the page is loaded and the static page is cached. This improves site performance considerably.

Sprint Contribution:

  1. Created a patch for: Replace deprecated usage of entity_create('node') with a direct call to Node::create() in comment, datetime, editor, field, hal, system, taxonomy, views. This involved overwriting the older entity_create() function by Node::create() in the patch deprecation_entity_create_2672600_6.patch (ref : https://www.drupal.org/node/2672600#comment-10877624)

  2. Tested and updated the patch Allow selecting multiple checkboxes on "Modules" page with a single click : This involved testing of the patch and fixing the existing issue in the patch selecting_multiple_checkboxes_2104633_39.patch (ref : https://www.drupal.org/node/2104633#comment-10878586 )

  3. Reviewed and tested the patch Deprecate ThemeHandler::setDefault() in favour of configuration and replace usages : This involved reviewing the code and testing the functioning of the patch setdefault_on-2635784.patch (ref: https://www.drupal.org/node/2635784#comment-10878596)

Next Steps & Pledges to Contribution:

  1. Engage atleast 3 hours for the Drupal Org every week.

  2. Arrange for bi-monthly sprints at the Organisation

  3. Grow and be an active member of the Drupal Community in Chennai by conducting bi-monthly Sprints & Camps

Anish - “ It was an opportunity to interact with people from all over the world and build a network. This network is sure to be of great help for future.”

Key Takeaways:

  1. Headless Drupal- Drupal 8 supports Ionic Module. Ionic is a good approach for mobile apps as compared to Phonegap as it uses Angular JS in contrast to Phonegap that used JQuery. Angular JS increases the performance. It uses the Rest services, which was originally available in Drupal7 as a contributed module, is a part of Drupal Core.

  2. Device responsive images- Drupal 8 has lesser number of contributed modules to manage the Images/Banners. This provides the flexibility of using single image for all devices with the focus area can be manipulated for smaller devices. Also, the best practice for the banners is to use separate image for desktop and smaller devices. Drupal 8 select the images based on the system resolution. This is an improvement as the functionality is available in Drupal Core

Sprint Contribution:

  1. Created patch for dropbuttons are broken in Bartik: Developed the patch dropbuttons_bartik_patch.patch. Prior to the patch, for bartik theme, whenever the drop-down is clicked,area containing the Drop-down would expand along with the drop-down window. Currently only the Drop-down would be shown without expanding the area. (ref : https://www.drupal.org/node/2666510)

Next Steps & Pledges to Contribution:

  1. Want to contribute by creating a patch every week

  2. Share the learnings on latest Drupal related technologies like headless drupal with other members in the organization  

  3. Arrange for monthly  sprints at the Organisation

  4. Organize a Drupal Camp in Chennai by June 2016

Veera - “Interest and involvement towards contributions has increased.  Want to be in constant touch with the latest in the Drupal issue queues.“

Key Takeaways:

  1. Learned about Drupal Community, how they organize themselves.

  2. Learned how to identify an issue that I can work on. Understand how the issue queue works.

  3. Understand how Automated Testing works and how to create an Automated test. Understood the details of how to write a class and how to write test cases.

  4. How to Auto deploy Drupal 8 - Use of scripts and drush to move configurations between environments (dev/stage/prod).

  5. Larry’s session helped understand different strategies to Coding standards - how to avoid notice errors while writing code. (Methods with arguments, Declaration of variables, etc.).

Sprint Contribution:

  1. Created patch for Deprecate ThemeHandler::setDefault() in favour of configuration and replace usages  - This patch ,setdefault_on-2635784.patch, is compatiable with Drupal 9 :( (ref : https://www.drupal.org/node/2635784#comment-10878596 )

  2. Theme kill without file upload - Responded the clarification on the current issue (ref : https://www.drupal.org/node/2668696)

Next Steps & Pledges to Contribution:

  1. Share his knowledge on best practices for Coding standards and create a Cheat Sheet on Thursday 25th Feb 2016

  2. Sprint on Saturday ( 27/02/2016)- Minimum 10 people from Chennai community

  3. My target is to support porting Apache Solr Drupal 7 to Drupal 8 and commit 3 hours every week towards this

  4. Move UniMity Solutions to Drupal 8 starting on 24th Feb,2016 and completely migrate within 3 weeks

A short message from our Management on What @DrupalCon Asia meant to them. UniMity Solutions were Silver Sponsors of the event.

  • DrupalCon is a great place to network.

  • Met agencies and development houses looking for partnerships in India.

  • We also had our clients at the event!

  • Interesting to know that the benefits as well as the challenges of doing business in Drupal are the same for everyone.

  • Quality Drupal resources are a concern for all Drupal shops. Intense training seems to the solution that is working for all.

  • Met job seekers. Had an opportunity to position our company as one that offers career growth.

  • India figures as the second largest contributor to the community. But, our contributions are not in the space of what matters the most. This means that more and more involvement in the critical areas of development and maintenance such as Drupal Core.

  • We all have a responsibility to grow the community. We need more and more experienced programmers, technical leads to be part of the community. We need to increase the 'quality' of our contributions.

  • Looking forward to the next DrupalCon Asia!

 

Drupalcon-Asia_Sponsorship.jpg

Feb 22 2016
Feb 22

Drupal association plays a key role in supporting Drupal Project, Drupal.org and the Drupal community. I am contesting for the Director At Large post on Association Board to help support the organization.

I would like to work with the Drupal Association and be a representative of the Asian community and contribute towards building community strategy. I would like to make a positive contribution towards community participation not only in terms of numbers but also in terms of quality of participation.

Having worked in multiple initiatives in the Drupal project, I understand and can align myself with the key goles of the association. Additionally my expeience in building Drupal teams and having been involved in strategic decisions in my organization will be of value in this role.

Want to know more about me, Shyamala Rajaram, checkout the candidate profile at: https://assoc.drupal.org/election/2016-director-large-election/candidate...

This is the first time that we have such an extensive participation in the Drupal with 23 candidates. We have 4 participants from India, Sunit Gala, Rachit, Shehrevar Davierwala and me. More Details on the 2016 Drupal Association Board Elections checkout the Association post at https://assoc.drupal.org/blog/holly.ross.drupal/2016-drupal-association-....

Anyone with a Drupal.org account, logged in atleast once in the previou one year can vote. Even with such a large Drupal community the no of vote at the Elections is always a very miniscule percent. This time with the vast diversity in participation we hope to see a larger representation and participation of the community. We value your vote. Have a question join us at the Meet the candidate session on 23rd, 24th or 25th Feb. 

Look to your vote of confidence!

Dates to mark on your calendar: Voting will be held from 7 March, 2016 through 18 March, 2016

Jan 19 2016
Jan 19

Drupalcon-Asia_Sponsorship.jpg

The Indian Drupal Community is all excited about DrupalCon India! The event will be help in IIT Mumbai between 18th Feb to 21st Feb. It is just a little over a month away and it is not too late to plan participating in DrupalCon. It is an excellent oppertunity to meet the larger Drupal community from across the globe and also the Indian Drupal counterparts .

Dries came to India for the very first time in 2011 to Drupalcamp Deccan. This brought a lot of awareness and a big opportunity to the Indian Drupal community. Checkout his blog on Drupal + India = Opportunity.

The Drupal Association has been working very closely with the Indian community for over a year to make this event happen. You can get details of the initial planning of the Drupal Association at  Help Us Plan DrupalCon in India.The Drupal Association worked with Active Commuity members to paln this event.

Did you know the highest no of registered drupalers on Drupal.org are Indians? Did you know the first largest Enterprise portal for UK’s postal service was built by Indian developers? Checkout the blog on Rise of the Drupal Community in India for more interesting facts on the Indian Drupal Community.

More details on the Con itself are available on the  website.

I have been speaking to different Business Owners and stakeholders who have been in the Drupal space with regard to  participating  in DrupalCon. The key aspects of those conversations are given below:

DrupalCon Asia, What’s in it for Business Owners?

You have used Drupal to service your customers and have benefited from this open source solution in different ways.The best way to give back is to the Community is to be a Sponsor at DrupalCon.

The amazing part is that in Sponsoring you gain more.

Here are the gains...

1. You will get Sponsor benefits – based on the sponsorship amount – includes having your name on the DrupalCon website, have a stand at DrupalCon, and such.

2. You can showcase your Organization  in different channels.

3. You can attend thekey sessions in the conference including: Dries Keynote, Business sessions, Case studies and the Business Summit.
Dries Keynote - gives you a flavour of the Direction of Drupal.

4. Interact with other Business owners from your region.

5. Be a part of the Drupal Community.

6. You can avail the oppertunity of participating in the DrupalCon and provide exposure to your developers, QA team, your Infra team, your Marketing. Each of them have something to learn from at the DurpalCon.

The DrupalCon Asia Business calendar

Drupalcon-Asia_Business-Calendar.jpg

DrupalCon Asia, What’s in it for Developers?

1. You can participate in pre-conference Training programs.

2. Listen to expert sessions from the Global Drupal community. Some of the key Sessions are:

   A. Drupal8 Theming - No more divitis, a session by mortendk - One of the key front end developers of Drupal 8
   B. Everything multilingual in Drupal 8 a session by Gábor Hojtsy - Drupal developer at Acquia, the Drupal 8 multilingual initiative lead.
   C. Six Easy Pieces for the New Front-end Development,a session by John Albin Wilkins,Senior Front-end Developer at PreviousNext and Lead for the Drupal 8 Mobile Initiative
   D. Make your code do your job, a session by Crell aka Larry Garfield, Senior Architect at palantir.net, an active Drupal core contributor, including the principle architect of the Drupal 7 database system and the Drupal 8 Web Services Lead. He is also a member of the Advisory Board of the Drupal Association.
   E. The largest Drupal 8 sites on Earth, and the NP8 news portal distribution, a session by robertDougless - Director of Products CommerceGuys. He is one of the initial contributor’s of the Apache Solr module.
   F. The Drupal 8 Theming Experience, a session by Coster - An active core contributor and co-maintainer of the theme system in Drupal 8

3. Get updated with the happenings in Drupal and learn about Drupal 8

4. Avaie the chance to get hands on with Drupal 8 – participating in the DrupalCon Sprints

Participating in Sprints lets developers get exposed to higher level of programming, connect with other developers in the community, best practices and more. The initial ladder to contribution is quite steep. By attending DrupalCon Sprints many developers have found answers to how and where they can contribute. They can come back from the DrupalCon and share the learning with the team and the local Drupal Community.

Don’t miss any opportunity to contribute! I have have been there at DrupalCon right from making the tote bags to the sprints and it is a lot of fun!! If you are not a volunteer yet, sign up now.

Oct 05 2015
Oct 05

This Blog covers the highlights of how Drupal could be used effectively to build a multi domain, multilingual site for a large Multi National Company. The site is also built to be responsive and the site optimizes to the device on which it is viewed.

Project Background

The previous corporate website of the MNC was built in Drupal 6 and delivered customized content for different countries in different languages. The key challenges for the site were maintenance and creation of new domains for new Countries as and when added. Some of the other challenges included sharing the content across countries and managing the translation of the content. The banners were also cropped for smaller devices.

The project was to help in removing these shortcomings and challenges and  in redesigning a new responsive Drupal 7 site with architectural enhancements.

Key functionalities & the Drupal implementation

Key Design Features

The new site has a Contemporary and Responsive Design. The site is optimized automatically for viewing on mobile phones and tablets.

How this was achieved?

A responsive theme was built keeping in mind four  breakpoints - 1920x 1080, Normal PC, 10 and 7 inches devices with both Landscape and Portrait view .  Zen was used as the base theme as it helped to inherit all its HTML markup, CSS, and PHP code from this parent theme. A sub-theme was applied to customize certain sections of the parent theme as required.

For each banner used across the site, an additional banner was used for the devices with smaller aspect ratios and image caches loaded them based on the width of the device.

In order to enhance the performance of the site, Sass Module  was used. The Module is highly compatible with all versions of CSS and is rich in terms of the available features and functionalities. This module helped to reduce the CSS file size and thus helping in enhancing the performance of the site.

The Font Awesome was used to replace icons with fonts , hence helping to further improve the performance of the site.

For the Animations used across the site, CSS3 was used in place of JS. A Mosaic view was also created as an option for the home banners. This was created by UniMity theming team  without the help of any plugin support. The key considerations during the theme development was the performance of the site and compatibility across devices and across browsers.

For the Domain switcher, jQuery Plugin called malihu was used for a diffent look and feel.

Challenges faced & resolution:

Use of Browscap  Module caused randomness in image loading as the tablet breakpoint was not detected. The Browscap Module was unable to detect the  device and as result the correct panel was not select that resulted in Mobile banners being shown in Desktop and tablet view. So the code was customized in order to detect tablet and the desktop and it was used to load the desktop panel for both these devices. This solved the problem faced.

There were issues with the random switching of Images in latest version of iOS 5.0.1 similar to the report at  http://tech.vg.no/2011/12/14/safari-on-ios-5-randomly-switches-images/ . This was resolved using Lazyloader Module by reducing the number of images loaded on first load.

Multi Domain site managed from a single instance

Key shortcoming of the old site that was to facilitate launching on new subdomain for a new added geography with minimal time and effort. The MNC had dedicated websites for each geography / country and some geographies had multiple sub sites under them based on the language. Adding a new geography was cumbersome due to architectural limitation. This issue was addressed to ensure that the administrator would be able to launch a new website in less than a day.

How this was achieved?

This was achieved using Domain Access Module that helps to manage multiple domains from a single code base. Other features that Domain Access provides are it allows sharing content, users, permissions and other Drupal configurations across the different affiliated sites.  It also facilitates managing the sites using a centralized interface. The modules used are

Domain Access

The Domain Access project is a suite of modules that helped to have multiple domain functionality from one Drupal installation and a single shared database.

Domain Blocks

Domain Blocks is an additional to Domain Access modules that enables domain specific visibility settings for blocks.

Multi Lingual site

Easy Management of Content: Translation the MNC’s current website didn’t provide options for adding new sections and menus for each website / sub-sites.This made the translation process cumbersome as each page needed to be updated separately.

How this was achieved?

The MNC is a Multilingual site where certain domains had unique languages. The functionalities were achieved using the following modules.

Multilingual  Content

The Multilingual Content Module, part of the Internationalization (i18n) package, provides a set of languages that can be enabled for the site. The editor can enable any of these languages as and when required for the site for a particular domain. While translating a content, it provides an option of languages in which the content can be translated.

Multilingual Select

The Multilingual Select Module, part of the Internationalization (i18n) package, provides a select box to make selection of language to which the content should belong to.

String Translation

The String Translation Module, part of the Internationalization (i18n) package, helps to translate the language of the blocks titles used across the site.

Block Languages

The Block Languages Module, part of the Internationalization (i18n) package, allows you to configure for which languages each block should be visible.

Menu Translation

The Menu Translation Module, part of the Internationalization (i18n) package, allows users to select a translation mode for each menu items.

Social Media sharing

This is a new functionality added to the new site where each of the resource item could be shared in Social media

How this was achieved?

The Sharethis Module was used to bring in the Social Media functionalities. This module has the flexibility to  customise the share this icon by overriding the option Custom Buttons via CSS  for social media icons.

Introduction of New Sections and Content Strategy

The new site would have new sections that contains several types of resources:

  • Video

  • Case Studies

  • Blogs

  • In the News

  • Press Releases

The existing sections would be reviewed for content architecture best practices.

Editorial Interface

The default Dashboard module was used to access all the defined functionalities for the editor from a single UI rather than going to different pages using the menu.

Additionally a separate menu was built for the editor using Admin Role Menu module. 

It also grouped the functionalities into two groups

Manage Content - This helped in editing any content/ information related to a particular domain and had links to the Manage Content interface.

Manage Site - This is much more generic and using this category changes can be made across domains or for multiple pages in a domain

Geo Redirect

When a user accesses the Homepage, by default the he is presented his Country's homepage based on his IP. He is provided with a drop down to navigate to other domains.

How this was achieved?

The Module used to achieve GeoRedirect is ip2country and it helped to detect the visitor's IP address to identify the geographical location (country) of the visitor and accordingly the domain for that country is loaded

Search

The search option was customized to search all the content across the domain. It excluded searching of images. Another key component to the search option was that it won’t list contents from other domains. Custom Search module helped to customize the default search options for the site.

Please note all  banner content we not indexed in search using Custom Search module

SEO

Search Engine friendly architecture:  The current website was not search engine optimized. The new website would implement SEO best practices to make the site Search Engine friendly.(Sample Pattern - http:// <cc>.<domain>.com/<lang>)

Performance

With several High- definition images and various CSS functionalities and functionalities like Subdomains, the performance of the site was having an impact. This was a key challenge as anonymous users usually avoid slow-loading sites.

How this was achieved?

Achieving Multidomain multi-lingual site affected the performance of the site. In order to tune the performance so that it is fast, several models were used :

  • Boost Module - It ensured that for certain static pages, Caching was used. Every Time there was a visitor, it would load from the Caches.

  • Boost Crawler - For high traffic pages and media rich pages in the MNC ‘s website, Boost Crawler helped to create the cache page every time the first visitor visits the page. The cache is then preserved for the next visitors for that page. The cache continues to remain unless some content in edited or the cron is run. Hence the performance was really increased due to the use of Boost Crawler.

  • Image Lazyloader - Previously for the Home Banners in the MNC, all the banners images were parallelly loaded. Heche it had an impacted the loading time for the Home Banners. Image Lazyloader sequenced the loading of the banners and hence loading speed of the Home page was minimised considerably.

Sitemap XML

The Sitemap XML module was used to create the domain-wise sitemap. Hence on posting a content, the URL will be updated in the sitemap without any human intervention. (URL Pattern : http:// <domain url>/sitemap.xml)

Additional Features

New functionalities were brought in the in the interface

Clear Cache- The editor can clear the cache immediately rather than waiting for the Cron to run so that the changes he made is immediately reflected in the site

File Browser- This helped to re-use the images that has been used in the site. Hence it prevented the upload of same image multiple times.

The new website also brought in additional features link Related Content. The website had features that would allow the administrator to link content to a section / page from other sections. For example, the page on “Software Solutions” can be linked to blogs and case studies related to the service. This would be done by introducing a “Related Content” block on the page.

Oct 13 2014
Oct 13

DrupalCon Amsterdam Keynote by Dries was interesting and different.

Highlight of the keynote was to increase Community contribution.

Towards this Dries spoke about expanding the reach of Drupal to Asian countries where Language is the barrier by working with translators. Also work with local groups to strengthen Drupal presence in these countries.

The most important point that Dries spoke about was the need for increased participation from Companies using Drupal & End users using Drupal, not limiting community contributions to only Hobbyists. Opening out a chance for Hobbyist to still do interesting stuff while the new contributors could take up more of the bugs & support tasks.

The “George will Do it” attitude of FREE RIDERS will no longer be acceptable.

Dries already has this working with the Drupal.org project where Drupal Association has taken up routine tasks making responses on issues faster, while the community participation are for idenitifed more specialized efforts.

He spoke about a reward system to promote the above contribution. The reward system would include:

  • Commits linked to organizations & end users
  • Commits identifying different kinds of contributions
  • Introduction of organization pages with badges/metrics indicating participation Mockup of organization page
  • Organization points & points based Ads on Drupal Home page

Update on Drupal 8

  • As we move towards a stable release, porting Drupal7 modules to Drupal 8 becomes increasingly important.
  • Documentation requirements will also increase.
  • More on Drupal 8 features checkouthttps://www.drupal.org/drupal-8.0

Must see sessions that stand as references:

Drupal.org Infrastructure

Drupal Association support to maintain routine tasks frees up community contributions to more specialized areas.

Team is working on an Agile mode with faster turnaround on issues: Some of the recent changes include reorganizing the profile page,maintainers can give organizations credit! Watch out for more changes in the coming weeks.

Revised content strategies, checkout the Drupal Association RFP at: https://assoc.drupal.org/blog/tvn/drupal.org-content-strategy-announcing...

Jeremey and team have been freed up to work on the new testbot integrations to open to the community different environments for testing with better efficiency. Check out their session at https://amsterdam2014.drupal.org/session/modernizing-testbot-future-drupalorg-automated-testing for more details.

Another aspect that the team is working on is to move Groups.drupal.org to D7 - looking at a commons based platform. Those of you with a lot of go migration experience, specifically commons migrate watch out for tasks to contribute at: https://www.drupal.org/project/groupsdrupalorg

Met the Community

[embedded content]

TVN & Neil, from Drupal Association,

John Albin, Drupal 8 Mobile initiative lead, now Senior Front end Developer with Previous Next Australia,

Megan from Drupal Association,

David and YesCTat the sprints,

Jeremy dev-tools team member working on the testbed initiative, CTO, Singapore,

Rahul an inspiring CEO from India’s leading Drupal firms! and More… Was indeed a pleasure to meet people from different countries all unified under the Drupal umbrella.

Amsterdam City

September has the best weather. The people were extremely friendly. I enjoyed the excellent public transportation system - used the tram, metro & bus to go around the city. Not to mention a long Car to see the windmills. Some must dos are Cycling, Visit to the Museums, The Canal Cruise, Drive to see The Windmills, Eat Cheese & Chocolates :)!

Sep 28 2014
Sep 28

I am proud to receive a Grant from the Drupal Association to attend DrupalCon Amsterdam.  As a note of thanking the community, I started Day 1 here, Saturday, 27th September Volunteering to help Tote Bag and Badge Stuffing activity at Onyx Lounge at Amsterdam Rai. A team of around 15 of us from different nations were busy in the morning making the Tote Bag with all the conference material!

Want to checkout what Drupalcon Amsterdam is all about, here is the official promotional material:

Just around lunch after completing the bags, moved on to Amsterdam Central to join the sprinters at Berlage workspace (city center),Oudebrugsteeg 9, Amsterdam. I was accompanied & guided by a Pro sprinter, David, from Spain. We took a tram from RAI to Amsterdam Central. This was a spectacular ride & got a tour of the city.

Want to join and be part of the Amsterdam sprints, checkout post by Gabor at https://groups.drupal.org/node/427578.

Reached the sprinters workspace and was welcomed by YesCT, one of the organiser of the Amsterdam Sprints. I then soon joined Neil, TVN and the Drupal Association team to get started with the drupal.org sprints.

It was lovely to meet the community members in person. I am looking forward to more sprinting and fun with the Drupal community today!

Sep 18 2014
Sep 18

In a recent project I got the opportunity to tweak Drupal’s Apache solr queries.In this blog post I will present to you some of my favourites.

1. Apache Solr MultiCore Join

2. Boost Query

3. Sort Query

Note: To prepare apache solr query use hook_apachesolr_query_prepare($query)

In this hook are available the entire query object. Prepare the query by adding parameters, sorts, etc.

This hook is invoked before the query is cached. The cached query is used after the search such as for building facet and sort blocks, so parameters added during this hook may be visible to end users. This is otherwise the same as HOOK_apachesolr_query_alter(), but runs before it.

1. Apache Solr MultiCore Join

Scenarios where you need to work on documents that have  relationships and the documents have different information that can not be denormalized, scenarios where the search needs to throw results based on this relation is when we use Join. As the documents can not be denormalized, we will need to maintain multiple cores to index them.

In Drupal this could be the case when we are using Node reference or multi valued fields.

Apachesolr Syntax:

http://localhost:3033/solr/QUESTINORE/select?q={!join from=fromFieldname  to=toFieldname fromIndex=fromCoreName} fromQuery

Do it in Drupal:

$query->addFilter('_query_',  ‘{!join from=fromFieldname  to=toFieldname  fromIndex=fromCoreName} fromQuery’);

Note : The join query will executed only in "from" documents. Also in Apache Solr you can not return fields in the "from" documents to the result. The values in the second core are only used to refine the search - but are not available in the results!  

2. Boost Query

Drupal ApacheSolr module has interesting options to rank the relevancy of your results based on fields in a particular content type. eg.the field that stores the cost could be ranked higher. This results in a content getting unified ranking for all users.

But increasingly today we want to be able to rank the results not just based on generic parameters but based on profile of the user. What needs to be ranked high for one user is different from that for another user. So what we need is a sort of dynamic ranking, which can be easily achieved using Apache Solr Boost Query.

Boost Query needs dftype edismax

Apachesolr Syntax:   

http://localhost:3033/solr/QUESTINORE/select?defType=edismax&bq =field_name:value^95

Do it in Drupal:

$query->addParam('defType', 'edismax');
 $query->addParam('bq', 'field_name:value^95');

3. Sort Order, newest at the top

The Default sorting in Apache Solr is based on relevancy, to sort a result set based on the created date use boost query on the date field.

Apachesolr Syntax:

http://localhost:3033/solr/QUESTINORE/select?defType=edismax&bf=recip(ms(NOW,ds_changed),3.16e-11,1,1)^94

Do it in Drupal:

$query->addParam('defType', 'edismax');
 $query->addParam('bf','recip(ms(NOW,ds_changed),3.16e-11,1,1)^94');

Apr 21 2014
Apr 21

Apache Solr is a powerful search engine which can meet complex search requirements. While Drupal simple search needs can be met out-of-the-box, complex requirements such that involve multiple data structure with one-to-many and many-to-many relationships would need custom indexs to be built to meet the specific needs.

This project I recently worked on was one such. I found the following links helpful:

          1. How do I make a custom entity update or create automatically update the solr index?

          2. Using apachesolr to index custom data

Here’s a step-by-step process to build a custom Index in Apache Solr.

Step 1: Define a Custom index hook_entity_info_alter() is used by Modules to alter the information that defines an entity.

In our case as the information in the custom table was needed only for indexing  in Apache Solr, directly using hook_entity_info_alter() alter we defined an Index & a Bundle name for a non existing entity. Using this entity we also define a custom index.

/*
Implementation of
hook_entity_info_alter()
*/
function mymodule_entity_info_alter(&$entity_info) {
// add my custom mysql table to entity
$entity_info['index_name']= array('apachesolr' => array('index' => TRUE),'label' => 'Index Name');
$entity_info['index_name']['bundles']['bundle_name'] = array('apachesolr' => array('index' => TRUE), 'label' => 'Bundle Name');
}

Step 2: hook_apachesolr_entity_info_alter() be available to us as a custom index in the Apache Solr index settings at admin/config/search/apachesolr.

This is a hook is used to define additional  information to the custom index defined in the previous step. The additional information include a status callback, document callback & reindex callback.

Status callback:

Normally in apache solr for content types Apache Solr module maintains a table that sets the status of all nodes in the system that are indexed. This table has the fields: entity_type, entity_id, bundle, status, changed. The status field is used to track if the row needs update in Apache Solr or not.

In our case we have added a custom column to our custom table to manage the same. Using a callback we manage the status of each row that needs to be indexed.

The status callback defined is called when the custom entity needs an update of the index. Status set to 0 if it needs index & 1 if it is up to date. This information is stored. Typically apache solr automatically updates this information on node event. In the case of a custom table the status needs to be updated based on custom events.

Document callback:

Defines an array $document and helps us build the custom apache solr field index. This function gets called for every row that is getting indexed - mapping fields in our custom table to apache solr index. here we can also add additional computed fields that may be needed only at the time of search. Refer field definitions in the schema.xml that ships with Drupal's Apache Solr module before defining field types using 'ts', 'is', 'tm', etc.,

Remember while defining the document, each row must be associated with an unique id.

$document->id = $document->id.$entity->entity_id;  (the document id must be unique because this only mapping reference of apache solr indexed rows )

This document callback is called by functions related to indexing in Apache Solr listed below apachesolr_index_entity_to_documents($item, $env_id) - function that Loads entity queued for indexing and converts into one or more documents that are sent to the Apache Solr server for indexing.

apachesolr_index_entities_document($row, $entity_type, $env_id) in file apachesolr.index.inc

You need to add the attached patch to these indexing function to make custom entities work. I have also created an issue for this patch at https://drupal.org/node/2201309

Reindex  callback:

This is used to add any additional functionality at the time of reindexing.

/**
* Implementation of
* hook_apachesolr_entity_info_alter()
*/
function mymodule_apachesolr_entity_info_alter(&$entity_info) { // define custom index in entity
// REQUIRED VALUES
// myentity should be replaced with user/node/custom entity
$entity_info['index_name'] = array();
// Set this entity as indexable
$entity_info['index_name']['indexable'] = TRUE;
// Validate each entity if it can be indexed or not. Multiple callbacks are
// allowed. If one of them returns false it won't be indexed
$entity_info['index_name']['status callback'][] = 'apachesolr_index_index_name_status_callback';
// Build up a custom document.
$entity_info['index_name']['document callback'][] = 'apachesolr_index_index_name_solr_document';
// What to do when a reindex is issued. Most probably this will reset all the
// items in the index_table
$entity_info['index_name']['reindex callback'] = 'apachesolr_index_index_name_solr_reindex';
// optional values
// Index in a separate table? Useful for huge datasets.
$entity_info['index_name']['index_table'] = 'your custom table name';
}

Pages

About Drupal Sun

Drupal Sun is an Evolving Web project. It allows you to:

  • Do full-text search on all the articles in Drupal Planet (thanks to Apache Solr)
  • Facet based on tags, author, or feed
  • Flip through articles quickly (with j/k or arrow keys) to find what you're interested in
  • View the entire article text inline, or in the context of the site where it was created

See the blog post at Evolving Web

Evolving Web