===Profile Information
Name: Opara Prosper Nudubuisi
IRC nickname: prosper_
GitHub: https://github.com/OPARA-PROSPER
Location: Imo, Nigeria.
Typical working hours: 2 PM to 2 AM (WAT +1)
===Synopsis
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
| **Period** | **Task** |
|------------|------------|
| May 6 - May 27 | **Community 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 12 | Select a mentor preferred prototype from my stack of prototypes, start working on adding form validation features to the Special:ViewData page |
| June 13 - June 18 | **Round 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 23 | Write documentation for codes that pass Unit Test using PHPDocs |
| June 24 - June 28 | **Round I evaluation** |
| June 29 - July 14 | Start 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 22 | **Round 2 Test:** Write PHP Unit Test for auto-completion codes and drop down features and debug to remove the appropriate bugs |
| July 23 - July 27 | **Round II evaluation** |
| July 28 - August 1 | Write documentation for codes that pass PHP Unit Test Using PHPDocs |
| August 2 - August 12 | Improve code quality, readabilty, Improve UI based on mentor feedback |
| August 13 - August 24 | Final 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 26 | Rename the Special:ViewData page to Special:CargoQuery |
| August 27 - September 3 | Mentors Submit Final Evaluations |
| September 4 | Final results announced |
===Deliverables
- 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
===Participation
- 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:
- Address Book App: https://github.com/OPARA-PROSPER/addressBook
- Student Assignment management Platform: https://github.com/OPARA-PROSPER/php_SAMS
- Currency Converter App: https://github.com/OPARA-PROSPER/ALC_Currency_Converter
===microtask attempted
Describe any open source projects you have contributed to as a user and contributor (include links). If you have already written a feature or bugfix for a Wikimedia technology such as MediaWiki, link to it here; we will give strong preference to candidates who have done so
===Any Other Info
My MediaWiki User account: [Prosper Opara](https://www.mediawiki.org/wiki/User:Prosper_Opara)