Page MenuHomePhabricator

Proposal: Add a "hierarchy" type to the Cargo extension
Closed, DeclinedPublic



Name : AMOWOGBAJE Gideon
Time zone : UTC +1
Email :
IRC username : goldengide
Gerrit : Goldengide1
Location : Ile-Ife, Nigeria
Working hours: 15:00 UTC - 20:00 UTC(Sunday) and 19:00 UTC - 01:00 UTC (every other days)


Cargo is an extension to MediaWiki that provides a lightweight way to store and query the data contained within the calls to templates, such as infoboxes.
This project is aimed at providing a lightweight way to store and query the data contained within the calls to templates such as infoboxes.
In my words the purpose of this project is to make search experience on mediawiki more awesome. Users will be able to query, store query and can even export the result to formats including pngs. jsons, csv and barchart.

After reviewing the code for cargo extension. I believe the project will focus on the following list

  1. Defining a user interface for the extension
  2. Choice of the concepts and approach to use for implementation of project.
  3. Implementation of search and query functionality with PHP and SQL

Possible Mentors: Nischay( @Nischayn22 ), Yaron Koren( @Yaron_Koren ), Tobias Oetterer ( @Oetterer )


Currently applied to fix the bug T127928.


  1. Discussion with mentors on other tools that needs to be added to my knowledge repository for the project.
  2. Discuss available implementations to be to ensure maximum efficiency with mentors
  3. Add support for declaring hierarchy fields
  4. Add support for querying hierarchy fields, using a new Cargo keyword, "WITHIN".
  5. Add support for such fields within Cargo's Special:Drilldown interface
  6. Add support for hierarchy fields in the Page Forms extension
  7. Also make hierarchy fields easy to create in Page Forms' helper pages

Proposed Timetable

WeekTimelineTasks to be completed
April 3 - May 4Solve more issues and also make research on how to optimize SQL query for fast run time
May 4 - May 29Communicate with mentors and socialize with the GSOC participants and get familiar with IRC channel and also contribute to questions.
1May 30 - June 3Work on implementing the database schema for the cargo database.
2June 4 - June 10Add support for declaring and querying hierarchy fields and also for the new Cargo keyword 'WITHIN'.
3June 11 - June 19Perform test, perform code refactoring, incorporate feedbacks from Mentors, make submission ready for first phase evaluation & write documentation of the Project so far.
4June 20 - June 26Phase 1 Evaluation.
5June 26 - June 30Get familiar with the Drill down analysis. Make research and write code to implement the drill down functionality.
6July 2 - July 8Improve on the existing SQL query to optmize the query for general hierarchical field.
7July 9 - July 15Add support for hierarchy fields in the Page Forms extension to recognize the right input type('tree')
8July 16 - July 23Perform test recursively to ensure an error-free project, incorporate mentor's feedback, refactor code, dress up submission for the second phase and update documentation for project.
9July 25 - July 28Phase 2 Evaluation
10July 25 - July 29Add support for hierarchy field and its ease of use in Create Template page, incorporate feedbacks from mentors and perform documentation.
11July 30 - August 5Add support for hierarchy field in Special:CreateTemplate page, incorporate feedbacks from mentors and update documentation for project.
11August 6 - August 12Add support for hierarchy field in Special:CreateClass page, incorporate feedbacks from mentors and update documentation for project.
12August 13 - August 20Perform final testing, finish up project early enough before deadline..
13August 21 - August 29Final Evaluation


I plan to communicate progress by discussing tasks and getting feedback on Phabricator, also I plan to setup IRC on my android.
I will also be actively using Gmail for sharing work status and related documents(design) with my mentors.
Weekly Project report will be updated in Project Progress page
For version control, I use git. I plan to publish source code on GitHub and get feedback on the same, I also plan to be online 24/7 but will be consistently available from 19.00 UTC to 12:00 UTC
Also other mediums and tools encouraged by my mentors will be set up

About me

I am a 23 years old student from Obafemi Awolowo University, Ile-Ife. Nigeria. I am attending an extra semester of a B.Sc. Computer Engineering degree at the University of Obafemi Awolowo University.
In my free time I enjoy writing lyrics, solving mathematical problems, brainstorming and coming up with cool things to implement with my PHP

Why contribute in Wikimedia?
I am contributing in Wikimedia because I want to take my programming skills further to a higher level and in doing so have an impact on someone's life.

Why I am the right person for this project?

  1. The fact that successful completion of this project needs the tested knowledge of SQL and PHP cannot be over emphasized. I know PHP and SQL and how to use them present information in a cool way.
  2. I am willing to give my all to this project.
    • After reviewing the code on my PC I saw the file structures of the code and I know I am up to learn something more.
    • Most of my projects are yet to be live on the internet but of recent I wrote a basic CRUD application to manage my church bio-data information. I added some functions to clean the data and structure it after importing it to my database table from csv format and later added a function to export the information in a structured format first to csv file format then to json, txt and tsv.
    • I also added another function to export phone numbers to a json/csv/tsv/txt file such that the application automatically generate phone numbers in a format that a bulk SMS application can relate with and its api can accept as an input parameter. I also did the same emails but only separated each emails with a comma. When I went through the code I saw that I will have fun doing this project.
  3. I will having a lot of time. I will not be offering much course in my final semester.


Open Source

I have also been able to review some codes and I hope to fix a big after the pressure of the exam is off
Will fix the bug mentioned in the deliverable section after my exams.

Free time

  1. Android Dpi Helper is an helper plugin in PHP that helps to automatically re-size png images to different sizes xhdpi, hdpi, to ldpi on Github. I wrote the code during my spare time. I plan to make a friend write the same algorithm in python.
  2. SQL Query generator: though this code was not published but I still like to talk about it. It is a function that generates an SQL query for inserting to a table by taking an array as input. The array keys serves as the table column while their corresponding values are the insert values for their corresponding columns.
  3. Pascal Triangle Generator: I wrote this code to help my younger brother with his assignment for solving binomial expansion problem so instead of writing it down he typed the number of the power on the mini application


Working as Web Developer for iQube Labs Nigeria.


  1. Medifix
    • Medifix is a website that provides IT services to improve healthcare in Nigeria
    • Fixed some bugs in the website and updated it from the correction of omission of full stop to fixing animations gone wrong.
  2. Redbank
    • Redbank is a product of Medifix. It is a health application that helps to find the nearest blood bank around you especially in the case of emergency. The website explains better.
    • Added the functionality that enables the web app version of the application to select states and generate its corresponding local government after which the application won the third place for the Aso Villa Demo Day Hackathon 2016. -Also corrected some obscured mistakes on the website of recent. No matter how little a change is it is worth it.

Other Info

Programming Languages: PHP, SQL, HTML, CSS and JS.

PHP: Laravel, Slim, CakePHP and CodeIgniter
CSS: CSS Bootstrap, LESS, and SASS
JS: Node Js, Jquery library and UIs.

Tools: Git, Github, Bitbucket, Gerrit.

Other commitments
My Semester examination ends on April 13, so I will have enough time to work on this project.

Event Timeline

Aklapper changed the task status from Open to Stalled.Mar 11 2017, 8:43 PM

Hi @Goldengide1, thanks for taking the time to report this!
Unfortunately this report lacks some information. If you this is about a bug and you have time and can still reproduce the problem, please add a more complete description to this report (a list of steps to reproduce which leave no room for interpretation what to do, describing actual results and expected results after performing the steps to reproduce, attaching or linking to a public testcase, browser information, MediaWiki version information, etc).
If this is about Google Summer of Code or Outreachy, please follow and edit this task's description.

Goldengide1 renamed this task from FirstTimer to Proposal: Add a "hierarchy" type to the Cargo extension.Mar 22 2017, 11:28 PM
Goldengide1 renamed this task from FirstTimer to Proposal: Add a "hierarchy" type to the Cargo extension.
Goldengide1 changed the task status from Stalled to Open.Mar 22 2017, 11:36 PM
Goldengide1 removed Goldengide1 as the assignee of this task.
Goldengide1 triaged this task as Medium priority.

Just a reminder that today is the last day to submit this application to in order for it to be eligible.

@srishakatux @Aklapper @Yaron_Koren @Nischayn22 @Oetterer , I have submitted a final copy of proposal for this project on GSOC Dashboard. This is the link to the docs file:
Though it is just three hours to go any comments will be responded to speedily

As mentors will soon be reviewing applications, if your proposal is complete, move it to the submitted column. Thanks!

This comment was removed by Goldengide1.
Goldengide1 raised the priority of this task from Medium to Needs Triage.Apr 15 2017, 6:24 AM
Goldengide1 updated the task description. (Show Details)