Skip to main content

GSoC’17 Coding period | Week #1 | Drupal




The Coding phase of Google Summer of Code 2017 kicked off the previous week on May 30th, 16:00 UTC, marking the conclusion of the one-month long Community Bonding period. As stated earlier in my previous post, the Community Bonding term proffered the selected students an opportunity to build a rapport with their community, helping them in interacting with the respective mentors and fellow developers.

Presently, I am working on porting the UC Wish list module to Drupal 8, under the guidance of Naveen Valecha, which would specifically allow customers to create and administer personalized wish lists of products in their Ubercart store, thereby enabling potential customers to get a better understanding by referring to those wishlists. During the community bonding phase, I had been asked to create a Plan issue for tracking the status of the port and sub-issues of the project goals, by my mentor. As per the implementation, for the first phase/month of the coding period, I plan to successfully port the following sub-modules:
Therefore, briefly stating the work done the earlier week:
  • Learnt the implementation Form API for the creation, submission & validation of forms (eg:- wish list email) and Search API for executing a functional and effective search.
  • Learnt the employment of the Database API to provide a structured interface for the dynamic construction of queries to implement the second sub-module port and to check whether a wish list is private.
  • Conversion of D7 Hook functions to D8 APIs involving Routes, to define the path to Controllers (page callbacks in D7) or to create tabs and/or contextual links. This was done by creating the corresponding YAML files required and converting the D7 hook_menu() implementations by defining the routes in YAML format, through the routing.yml file.

  • Directory structure:

  • Learnt the verification procedure for email address of an user through the Data Common API.
  • Created a basic controller for the module for converting page/access callbacks for routes, to proper Controller classes. Also, learnt about the creation and application of YAML files and blogged about it.
As stated above, I was able to get a significant understanding of the project and the sub-modules considered for the initial phase. Moreover, I also came across some vital changes in D8 in contrast to its previous functionalities.
  • The .info files in D7 are replaced by .info.yml files. The .info files contained the basic information regarding the respective module.
  • The D7 variables have been converted to the D8 state system. The previous versions had variable_get and variable_set functions to store variables and their default configurations. They are, at present removed from D8 and replaced by the Configuration API.
  • Symfony framework  is used in D8 in the Controller file.. It has MVC architecture. This makes the code easy to maintain, scale, and reuse.
Summing up, these were some of the objectives and concepts learnt during the first week of coding phase in GSoC’17. Hope to learn many more new concepts in the coming weeks for successful completion of the port.

Cheers!

Comments

Popular posts from this blog

GSoC'17 | Drupal

This year I had the utmost opportunity of getting selected for the prestigious Google Summer of Code 2017, as a part of Drupal, the open source organisation to which I contribute. Drupal, is a free and open source content-management framework written in PHP and distributed under the GNU General Public License, provides a back-end framework for at least 2.2% of all Web sites worldwide – ranging from personal blogs to corporate, political, and government sites. Systems also use Drupal for knowledge management and for business collaboration. The Google Summer of Code, often abbreviated to GSoC, is an international annual program, first held from May to August 2005, in which Google awards stipends, which depends on place of university of the student, to all students who successfully complete a requested free and open-source software coding project during the summer. The program is open to university students aged 18 or over. Students contact the mentor organization

GSoC’17 Coding period | Week #11 | Uc wishlist

  Another week has reached its aftermath and the third phase of the coding regime is about to conclude with the onset of the Final Evaluations for Google Summer of Code 2017. The time spent so far during the previous months have been a great learning experience with Drupal, with the timely help provided for the project by my mentor Naveen Valecha . Coming to the present scenario, the majority of the port concerning the Uc Wishlist has been completed, save for some technical fixes and implementation requirements regarding the port of the final sub-module ‘Add user wish list settings’. Other than that, I would put up the alpha release of the module as soon as the current code gets reviewed. Additionally, I would propose few functional tests as per instructions from the mentor and reviews from the developers. Moreover, my code for the previous ports have been committed to the Drupal Core by my mentor and the current status of the code could be found here . S

GSoC’17 Coding period | Week #2 | Drupal

Google Summer of Code 2017 has entered yet another week and with the conclusion of week 2 of the Coding Phase, things in general have become much more elaborative, as well as exciting ! The previous week was significantly noteworthy in terms of the intricacies and topics dealt with for the  objectives undertaken for the first phase. I was also able to manage time better to focus more towards my project, and the implementation in particular. In the previous blogpost , I had mentioned about the port objectives decided with regard to the first phase of the coding regime. As planned earlier, my main intent for the week was to port the functionality ‘Add administrator wish list settings’. The port of this sub-module encapsulated the completion of the following objectives: Configuring the wish list settings by administrator: This feature allows the administrator to implement crucial settings related to any wish list for authenticated users.  Man