Name: Edidiong Asikpo
IRC handle: Didicodes
Location: Lagos, Nigeria
Time Zone: (UTC + 01:00) West Central Africa
Typical working hours: 11 AM - 8 PM (UTC + 01:00) West Central Africa
Proposal for https://phabricator.wikimedia.org/T215682
The MediaWiki action API is a web service that allows access to some wiki-features like authentication, page operations, and search. It can provide meta information about the wiki and the logged-in user. Several Wikimedia projects make use of this API.
As of now, there are ~128 pages on the Action API on MediaWiki.org. Our team did a little research on the state of the docs and documented a few problems and recommendations for the next steps. One of the issues we decided to address was inconsistency. For example, some pages had the automated API docs embedded; some didn’t, some pages had code samples, some didn’t, etc.
As a first step, we designed a documentation template and used it to re-write top 20 viewed pages of the API. But, we realized we could not improve 128 pages all by ourselves, and opened it to new Wikimedia contributors for help. Our Outreachy intern Marty Hernandez Avedon put in a lot of good work in the project in Round 17 and improved the next ~20 pages and brought this project in good shape!
The goal of this project in Round 18 would be to improve documentation of ~20 top 70 most viewed MediaWiki Action API pages on-wiki using the documentation template. If there is more time, then the next part of the project could be developing one or two demo apps around the use of Action APIs.
A good documentation is the key to a great experience when consuming an API. As described in the summary above, a good amount of work has already been done to some MediaWiki Action APIs. In order to ensure consistency in all the 128 pages on the Action API on MediaWiki.org, all other pages need to be improved using the documentation template.
This will help developers (newbies and experts) to quickly understand the value and usage of the Action APIs. The benefits of this project will not only enable consumer satisfaction but also increase the adoption of MediaWiki Action APIs.
Have you contacted your mentors already?
Yes, I have contacted both mentors.
- 2 to 3 sample codes and improved API documentation weekly.
- Weekly updates about my progress on the original phabricator task tracking the progress for this project and on my wiki user page.
- Biweekly blog posts about the internship on my blog.
- Build a demo app, create a tutorial for the demo app and include it in the tutorials section of API:Main_page. My ideas for the Action API demo app tutorials can be found here
- Regular communication with my mentors and other community members at WMF.
|March 26th to May 6th||During this period, I intend to continue contributing to tasks on MediaWiki and also improve my skills in Python and the Flask framework. My progress on this can be tracked here|
|May 7th to May 19th||Community bonding period - Aside from implementing all the guidelines on the MediaWiki Outreachy/Participants#Community_bonding_period page, I will also use the Massviews Analysis to find out the API pages I am going to suppose to improve during the internship. With this, I can add the pages to a spreadsheet and the original phabricator task tracking the progress for this project. I will also be researching on these API pages and update the spreadsheet with useful links and information that I will use when I start improving the API documentation.|
|May 20th to July 21st||Week 1 to Week 9 - I intend to specifically focus on writing sample codes and improving API documentation. To do this, I will create different branches from my forked MediaWiki-Action-API-Code-Samples repository for each module and send pull requests for 2 to 3 modules per week and improve their respective documentation pages and continuously update my progress here.|
|July 22nd to August 11th||Week 10 to week 12 - Create a demo app, and start drafting a tutorial for the demo app.|
|August 12th to August 18th||Week 13 - Complete the tutorial for the demo app and include it in the tutorials section of API: Main_page|
|August 19th to August 20th||Finalize, review, organize, and document any necessary changes.|
- I would continue to communicate with Srishti on Zulip and Srodlund via email. I will host all sample codes and demo app on Github, in a fork of the MediaWiki-API-Sample-codes repository.
- I will ask for help on the Wikimedia Developer Support forum
- I will be available on IRC during non-working hours to make some contributions to other MediaWiki projects.
My coding journey did not start on my first day of school as an undergraduate studying Computer Science at Renaissance University, Nigeria. Rather, it started when I interned at Start Innovation Hub. In Nigeria, 300 level undergraduates in the science department usually go for an Industrial Training at any company of their choice. During my time, I went to Start Innovation Hub and worked as a student intern learning how to develop android applications, I started off with building the smallest things but it was so exciting that I could build the things that I saw every day in different apps on my phone. I would always say to myself “oh yeah so this is that feature I saw on Facebook the other time”. Each day , I learned something new and my love for programming grew stronger. So even though I studied computer science for 4 years, it is safe for me to say I have two years of experience in software development because it all started in 2017 when I interned at Start Innovation Hub.
When I went back to school, everything became clearer for me, I quickly understood the programming languages and every other topic I was taught in school but I couldn't really focus on android development as much as I wanted to because I had to work on my seminar, final year project and other activities in school. However, I studied hard and graduated last year with First Class Honours. After graduation, I decided to start learning python because I loved the fact that the programming language could be used to implement and build a lot of things, I learned from ebooks, pdf, online tutorials and eventually bought a course on Udemy late last year. This is the link to the certificate.
Early this year, I got a scholarship from Facebook to study Data Science on Datacamp for a year and so far I have completed a few courses. The certificates can be found here and here. I love technology because I believe technology has the ability to automate and solve a lot of problems affecting the world generally. I have a knack for learning new things, challenging myself, solving problems and collaborating with people.
Aside from coding, I am really passionate about encouraging people to learn how to code and I also love organizing meetups to give people the opportunity to learn, network and connect with other developers.
How did I hear about outreachy?
I heard about the outreachy program on Facebook, I saw it on a post made by an open source advocate on my timeline. It looked interesting so I asked him for more explanations then clicked on the link, read about it and decided to apply for it.
Will I have any other time commitments, such as school work, another job, planned vacation, etc, during the duration of the program?
No. I will not have any other commitments during the duration of the program.
We advise all candidates eligible for Google Summer of Code and Outreachy to apply for both programs. Are you planning to apply to both programs and, if so, with what organization(s)?
I am not eligible to apply for the Google Summer of Code program.
What does making this project happen mean to me?
Developers want to integrate as quickly as possible to move forward in their software development, meaning they should immediately understand the value and usage of an API. As a developer, I know the importance of a good documentation and how it helps to speed up my development process.
A few months back, I had a conviction that writing codes and solving problems reaches its full potential when you also have the ability to enlighten others about it through writing. One of my goals this year is to become a really clear and concise writer and working on this project will help me achieve that goal and also help in improving my programming skills.
Personally, I have always been fascinated by the efforts undertaken by the Wikimedia Foundation to provide free and quality information to the world. Wikipedia has always been one of the best sources of acquiring any information I was looking for while I was younger and contributing to one of Wikipedia's sister projects (MediaWiki) would mean a lot to me because I will be contributing my fair share to providing information to different people in the world.
I have 2 years of experience as a software developer. I am most familiar with Java, Python, HTML, and CSS.
I joined the Wikimedia community in 2018 as an outreachy applicant for the project “Documentation improvements to the top 50 most viewed API pages on the MediaWiki Action API”. Even though I didn't get selected as an intern, everything I learned during the application process improved my skills as a developer. I am now a member of the Africa-Wikimedia-Developers and have been working together with the user group lead for Nigeria to build a stronger developer community in Nigeria for Wikimedia. I have also made contributions to different projects in the community.
Outreachy Round 17
- Improved the documentation for API:Purge following the documentation template
- Improved the documentation for API:Account_Creation following the documentation template
- Improved the documentation for API:Random following the documentation template
Outreachy Round 18
- Improved the documentation for API:Rollback following the documentation template
- Improved the documentation for API:Embeddedin following the documentation template
- I wrote sample codes to demonstrate the use of API:Links module to identify red links on the given page.
Update the screenshots for the "Huggle" software in the user manual on mediawiki.org T181946
To work on this task, I had to update obsolete screenshots and also improve the documentation of the Huggle software in the user manual on mediawiki.org.
The whole process of working on this task gave me an opportunity to learn how to upload pictures to Wikimedia Commons, add the uploaded pictures to a page, learn how to use the Huggle software and also apply the knowledge I had learned from working on the microtask of this project .
Huggle's Queue - Approved
Huggle's System menu - Approved
Huggle's Menu toolbar - Approved
Huggle's Help menu - Approved
Huggle's User menu - Approved
Huggle's Closing - Approved
Huggle's Go To menu - Approved
Húggle's Log - Approved
Huggle's Editor and Article History - Approved
Huggle's DIff - Approved
Huggle's Page menu - Approved
Create and write a documentation page about Mentions provided by MediaWiki's Echo extension T181611
I created a documentation page about the Mentions notification - Work in progress
This task gave me an opportunity to do a lot of reasearch and learn a lot about writing an entirely new documentation. However, I discovered a bug in the noticification tool and I reported it.
APISite and DataSite method docstrings should include a link to the corresponding mw:API help T100521
I modified the docstring of APISite methods in category.py - Not merged
Fix common typos in code T201491
- Fixed typo 'completeed' in ExtJSBase - Merged
Convert HTTP links to MediaWiki.org to HTTPS T189687 - Merged
I changed HTTP links to mediawiki.org to HTTPS. This task was a great way to learn more about gerrit. I have uploaded around 38 patches on Gerrit for this task, and all 38 patches has been merged into Wikimedia repository.
Africa Wikimedia Developers
Populate the contributors.json file in the awmd-stats tool with contributors details T202230: I added my name, username, and country to the awmd-stats Merged
This was the first time I used Gerrit so I learned how to create a patch, make changes to the patch, make comments, etc.
Open Data Kit
ODK Collect is an android app for filling out forms. It's been used to collect billions of data points in challenging environments around the world.
Eager to give open source contribution a try in 2018, this was the first time I made an open source contribution. I wrote codes that made the ODK Collect app support escaping markdown characters using a backslash. I used Java and regular expressions (Regex) to work on this. I was so excited when my commits were merged to the ODK’s main repository. This is the link to the contribution I made in the ODK Collect app.
When I worked on this, my intention was to build a demo app for API:Prefixsearch. After submitting it to the mentor for review, she made me understand that demo apps require the use of multiple API modules to come in action. However, this app displays a prefix search of a page title, the app also enables a user to click on these page titles which were displayed and read the contents of the page. Working on this taught me about the flask framework and its integrations. This is the link to the repository.
This repository describes my journey to learn how to create web applications with Python and the Flask framework. The Flask Mega tutorial contains 23 chapters, each of which clearly explains how to work with python and flask. At the end of the tutorial, I was able to create a blog. This is the link to the repository.
ToDo List Web App:
This app was built with Python and Django. Just like any other ToDo List app, a user can add items to the ToDo-List, cross off the items when it has been completed, uncross the item if it was mistakenly crossed off and also delete the items on the ToDo-list. Working on this app thought me a lot about the MVC(Model View Controller) framework, utilizing repository pattern and the using the Django framework. This is the link to the repository.
A python app that sends a GET request to the dad jokes API. A user types in a topic and the app displays jokes related to that topic. This was the first time I worked with APIs in python and it was really insightful for me. This is the link to the repository.
This app helps patients remember to take their medication and provides tracking for the intake of the prescribed medication. I learned alot about using implementing background jobs and notifications when I worked on this app. This is the link to the repository.
An android CRUD app. The app can be used to add, delete, update names of guests in a restaurant. Working on this taught me a lot about the CRUD function and how it can be used as a user interface to databases. This is the link to the repository.
This was an assignment I worked on during my internship. I built a currency converter app that converts Nigerian currency to that of 20 other different countries. I had to query an API in order to make it work. This is the link to the repository.
A weather app built during my participation in the Udacity scholarship, This project was the last app to build to finish up the course. It is an android that uses the Open Weather API to display the weather details in a particular location. To display the locations, I integrated google map API. The fact that this was the last project to work on before getting the Udacity certificate, I had to implement and apply everything I had learned throughout the course. It was challenging at first but as I progressed, everything became clearer and interesting. This is the link to the repository.
I created this repository to teach people how to use material design using the android studio IDE at a tech event. This is the link to the repository.