Page MenuHomePhabricator

Proposal: Improve the interface of Special:ViewData in the Cargo extension
Closed, DeclinedPublic


Profile Information

Name: Opara Prosper Nudubuisi
IRC nickname: prosper_
Location: Imo, Nigeria.
Typical working hours: 2 PM to 2 AM (WAT +1)


MediaWiki Cargo extension ViewData page is a special page that provides a form user interface for performing cargo queries and secondly, to provide a more query results when the user(wiki user) clicks the "More results". This project aims to improve the user inferface of the form by:

  • Including a auto completion and dropdown features to the input fields
  • Including form validation
  • rename the page to Special:CargoQuery

Mentor(s): @Yaron_Koren @Nikhil-nk

Project Timeline

May 6 - May 27Community Bonding Period. Study the UI of related software like phpmyadmin and the Semantic MediaWiki to get design inspiration, then I'll move forward to design prototypes using the Figma prototyping software
May 28 - June 12Select a mentor preferred prototype from my stack of prototypes, start working on adding form validation features to the Special:ViewData page
June 13 - June 18Round 1 test: Write PHP Unit Test for testing the new codes for the form validation feature and debug to remove appropriate bugs
June 19 - June 23Write documentation for codes that pass Unit Test using PHPDocs
June 24 - June 28Round I evaluation
June 29 - July 14Start working on adding form auto-completion feature to the page, add drop downs to improve the UX while using the page for Cargo queries
July 15 - July 22Round 2 Test: Write PHP Unit Test for auto-completion codes and drop down features and debug to remove the appropriate bugs
July 23 - July 27Round II evaluation
July 28 - August 1Write documentation for codes that pass PHP Unit Test Using PHPDocs
August 2 - August 12Improve code quality, readabilty, Improve UI based on mentor feedback
August 13 - August 24Final Code testing (Manual and Automated) to ensure nothing is broken, debugging documentation to ensure readability and ensure easy understanding of the codebase
August 25 - August 26Rename the Special:ViewData page to Special:CargoQuery
August 27 - September 3Mentors Submit Final Evaluations
September 4Final results announced


  • Conduct detailed study of existing UI (phpmyadmin and Semantic MediaWiki) to produce best possible UI for the project
  • Produce UI prototypes based on my study
  • Add requested features:
    • Form Validation
    • Auto Completion
    • Drop Downs
    • Rename the ViewData page to CargoQuery
  • Write Unit Test codes to ensure good quality and nothing gets broken
  • Add code documentation for future reference


  • I will manage my codes on GitHub and work with Git, I'd be working with two branches- Master and CargoQueryPatch. New codes will be uploaded to the CargoQueryPatch branch frequently and I will merge only reviewed/approved and tested codes to the master branch.
  • I will be online on IRC in my working hours ( 2:00 PM to 2:00 AM WAT +1) to collaborate with the mentors.
  • I will use Phabricator for managing bugs and subtasks.
  • I will be available in non-working hours through my Google mail account.

About Me

I'm currently an undergraduate student pursuing a bachelor of technology degree in Surveying and Geoinformatics at the Federal university of technology Owerri, Nigeria. I am some one who is really passionate about technolgy and bringing it closer to my mates in Africa, who are somewhat losing out due to the many challenges we face in Africa. I'm a GitHub Education Campus Expert, I lead an open source community in the state my campus is located (Imo state) by name Open Source Community Africa - imo Chapter (oscaimo on twitter) and i have organized and spoken at workshops on and off-campus around topics like "Introduction to Git and GitHub", "Understanding Open Source License". Being a lover of open source, open knowledge, I started a community i called "freeCodeAcademy" for sharing coding knowledge for free and advocating for the culture of information sharing and mentorship to beginners within the community.

How did you hear about this program?

I learnt about Google Summer of Code through Open Source Community Africa during GSOC 2018 and was really excited about contributing to open source. But i couldn't contribute then, because i was relatively new to programming, but i made up my mind to participate come GSOC 2019.

Will you have any other time commitments, such as school work, another job, planned vacation, etc, during the duration of the program?

my only engagement during the program is my school work, which last for 3-4 hrs daily, and will also end by 15th June, after our semester examination. My end of semester examination will not affect my participation as I already i'm preparing now for the examination (and truthfully, no one reads the whole 24hrs a day).

What does making this project happen mean to you?

Working on this project will be a dream come true for me because, i was not able to participate in GSOC 2018 due to my large skill gap (which i have since being filling up to e able to participate in GSOC 2019).
Secondly, I have had some initial challenge applying for GSOC 2019 (which i promptly communicated to one of the mentors for this project), working on this project will really be phenomenal psychologically for me and reinforce the belief that i can overcome all challenges and win! in me.

Past Experience

I have built web applications using HTML, CSS, JavaScript (JQuery inclusive) and PHP and host the source code on GitHub, I also used Git for version control. The links to some of my projects reflecting the above listed Web Technologies include:

microtask attempted

Any Other Info

My MediaWiki User account: Prosper Opara

Event Timeline

If you would like us to consider your proposal for review, please move it to the submitted column on Google-Summer-of-Code (2019) board.

@JayCzar thanks for helping me move my proposal to the submitted column, I truly appreciate that :)

Also, thanks @AdityaJ :)

(look for next steps in the email you'll receive shortly with an option to request for a debrief on why your proposal was not accepted)