Page MenuHomePhabricator

Proposal: Improving ~20 documentation pages to help MediaWiki users to gain mastery of the value and usage of the Mediawiki Action API - Outreachy 18
Closed, DeclinedPublic

Description

Profile Information

Name: Edidiong Asikpo
Github: https://github.com/Edyasikpo
Blog: https://medium.com/@EdidiongAsikpo
IRC handle: Didicodes
Resume: https://bit.ly/2OeORKn
Location: Lagos, Nigeria
Time Zone: (UTC + 01:00) West Central Africa
Typical working hours: 11 AM - 8 PM (UTC + 01:00) West Central Africa


Synopsis

Proposal for https://phabricator.wikimedia.org/T215682

Summary

From the project description on Outreachy,

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.

Benefits

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.


Mentors

Srishti Sethi (@srishakatux) and Sarah Rodlund(@srodlund)

Have you contacted your mentors already?
Yes, I have contacted both mentors.


Deliverables


Timeline

PeriodTask
March 26th to May 6thDuring 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 19thCommunity 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 21stWeek 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 11thWeek 10 to week 12 - Create a demo app, and start drafting a tutorial for the demo app.
August 12th to August 18thWeek 13 - Complete the tutorial for the demo app and include it in the tutorials section of API: Main_page
August 19th to August 20thFinalize, review, organize, and document any necessary changes.

Participation

  • 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.

About Me

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.


Past Experience

I have 2 years of experience as a software developer. I am most familiar with Java, Python, HTML, and CSS.

Wikimedia

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.

MicroTasks

Outreachy Round 17

Outreachy Round 18

  • I wrote sample codes to demonstrate the use of API:Links module to identify red links on the given page.

Documentation

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

Aside from improving the documentation, I also added the Outdated template to Manual:Huggle/List_builder and Manual:Huggle/Requests_view and removed both pages from the index page. - Approved

Improve docstrings to the Pywikibot library T118423
I modified the docstrings of specialbots.py - Merged
Working on this task made me learn how to write docstrings using the epytext format.

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

Mediawiki General

Fix common typos in code T201491

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

Doc for javascript functions needs proper indentation T218281: I re-arranged the comment indentation in FormWizard Merged
Rearranging the indentation in FormWizard was quite easy. However, another requirement to successfully complete the task was to also test the javascript file to ensure that no errors were produced because of the changes. So I installed Node.js and npm, downloaded some other dependencies, read about grunt and eventually tested the file successfully.

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 Source

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.

Other Projects

Python

Article Finder:
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.

Microblog:
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.

Dad Jokes:
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.

Android

Med Manager:
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.

WaitList:
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.

Currency Converter:
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.

Sunshine:
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.

MaterialDesignCodelap:
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.

Event Timeline

Didicodes renamed this task from Improving ~20 documentation pages to help the users of the MediaWiki have a smoother experience when learning how to use our APIs - Outreachy 18 to Proposal: Improving ~20 documentation pages to help the users of the MediaWiki have a smoother experience when learning how to use our APIs - Outreachy 18 .Mar 10 2019, 7:00 PM
Didicodes updated the task description. (Show Details)
Didicodes renamed this task from Proposal: Improving ~20 documentation pages to help the users of the MediaWiki have a smoother experience when learning how to use our APIs - Outreachy 18 to Proposal: Improving ~20 documentation pages to help MediaWiki users have a smoother experience when learning how to use our APIs - Outreachy 18 .Mar 10 2019, 8:03 PM
Didicodes updated the task description. (Show Details)
Didicodes renamed this task from Proposal: Improving ~20 documentation pages to help MediaWiki users have a smoother experience when learning how to use our APIs - Outreachy 18 to Proposal: Improving ~20 documentation pages to help MediaWiki users to quickly understand the value and usage of the Mediawiki Action API - Outreachy 18 .Mar 19 2019, 12:14 AM
Didicodes updated the task description. (Show Details)

Hello, @srishakatux my first draft is ready. Please review!

@Didicodes Your proposal looks good to me! I only have one minor suggestion:

You can consider dividing the microtasks you contributed to the API documentation project in Round 17 and 18 in different sections for clarity. :) Also, make the same change in your application on the Outreachy site.

Whenever you are ready, you can submit your proposal on the Outreachy site and move it to the "Proposals Submitted" column on the Outreachy (Round 18) workboard in Phabricator.

Thank you for your feedback @srishakatux. I will make the changes.

Didicodes updated the task description. (Show Details)
Didicodes renamed this task from Proposal: Improving ~20 documentation pages to help MediaWiki users to quickly understand the value and usage of the Mediawiki Action API - Outreachy 18 to Proposal: Improving ~20 documentation pages to help MediaWiki users to gain mastery of the value and usage of the Mediawiki Action API - Outreachy 18.Mar 25 2019, 11:13 PM

sorry for moving your task by mistake :)

sorry for moving your task by mistake :)

No worries :)

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