GSoC 2018 - Week - 11

Ankit Jain
Ankit Jain DevOps Engineer @Razorpay | CommunityBridge Mentee @Keptn | @Drupal GSoC Alum | #GitHubCampusExpert Alum | GCI & GSoC'19 Mentor @Drupal | Speaker | Writer

GSoC 2018 - Week - 11

Welcome to my Google Summer of Code 2018 week 11 summary update of Project Affiliates Connect. Learn more about my previous update in Week 10 and in my archive. GSoC (Google Summer of Code) is a global program focused on bringing more student developers into open source software development. Students work with an open source organization on a 3-month programming project during their break from school.


Some of the tasks accomplished in this week are -

  • As products are stored in the custom content entity ‘affiliates_product’. Drupal views module allows administrators and site designers to create, manage, and display lists of content. I used views to show the products data along with sorting/filtering and it works perfectly, There is no need to configure anything programmatically. We can also display the products in Blocks. Users can design the views as per their choice.

  • Searching feature to search the products is one of the important functionality that site admin requires. Drupal Search API module provides the powerful search functionality through indexing of products in the database. Search API module uses Apache Solr to improve performance. I used Search API database to implement the search technique. It’s working good too. Link of a demo video - Video

  • Drupal contrib module entity_browser is a great utility to provide a generic entity browser/picker/selector. Our module comes with the ‘Affiliates Product Entity Browser’ which has two main features-

1. It lets users select/pick the products through an entity_browser view functionality. Entity Browser uses View to display the list of entity data in the form of a table and expose search, sort, and other filters.

2. In the above point, we cover the products that the user has already imported to the database. Now the questions arise, what about the products that are not imported in the site database? Either the user has to first import the products before creating the node/content or anything. Ahh, that’s bad. So, Here we have a solution for the above problem, Along with the selection of products from the database, Our module comes with the Live Search feature, It lets the user search the products directly from the external vendors using Native API. In this way, A user can select/pick the appropriate product without going anywhere and can also change the data of the selected product. Link to the demo video - Video

-  Live Search feature is also provided separately to search the products from the vendors and import them in the site database. Link to the patch - #2987416

Week 11 - Goals

  • I am working on the product comparison feature. Product comparison is the side by side comparison of products data.

  • I will work on improving the performance of the Node Scrapper. I have exposed the API of the Nodes Scrapper which is called by Feeds module sequentially which resultant in low performance. 

  • I will also work on cloaking feature. Cloaking feature is almost complete, but to make sure that any crawler or bots won’t able to detect the redirected URL, It is necessary to identify whether the request is made through valid user or any bots.


Improving the performance of the Node Scrapper is really difficult as Feeds module workflow is sequential, If I make the workflow somehow parallel can really help to improve the performance issue. It would be great if community members can help me out by giving better suggestions for it. I am looking for the solutions of above-stated problems.

comments powered by Disqus