Page MenuHomePhabricator

Proposal: MediaWiki Action API: Documentation improvements to the top 50 most viewed API pages on-wiki - Outreachy-17
Closed, DeclinedPublic

Description

Proposal for https://phabricator.wikimedia.org/T204612
I have collected some resources that I think will be helpful during this project here

Profile Information

Name: Edidiong Asikpo
IRC handle: Didicodes
Email: edidiongasikpo@gmail.com
Location: Akwa Ibom, Nigeria
Time Zone: (UTC + 01:00) West Central Africa
Typical working hours: 7PM -12 PM (UTC + 01:00) West Central Africa
User Page: https://www.mediawiki.org/wiki/User:Didicodes

Synopsis

The MediaWiki Action API is a web service that allows access to some wiki-features. Some of the current uses of the MediaWiki Action API include: monitoring a MediaWiki installation, creating a bot to maintain a MediaWiki installation and logging into a wiki, accessing data, and posting changes by making HTTP requests to the web service.
The documentation of the MediaWiki Action API serves as a guide for anyone who is looking for more in-depth information about the API. It guides developers on how to integrate the API in their apps or websites explaining and providing code examples for many common integration use cases like authentication, page operations, search, etc. Source MediaWiki API:Main_page

Mentors

@srishakatux @srodlund

Deliverables

  • Write weekly reports
  • Blog posts on my progress every two weeks.
  • Regular communication with my mentors and other community members at WMF.
  • Build a Demo App for API:Categorymembers
  • Successfully improve the Top 30 most viewed MediaWiki Action API
Summary

Most API pages take a longer time to improve and as such I intend to work with one difficult and one easy API documentation every week starting from the 30th most viewed MediaWiki Action API to the 50th) The reason why I want because the top most viewed pages need more expertise because it is viewed most by the world. Each week I will work on one difficult API page and one simple API page

Timeline

Note: The most viewed API pages is not constant that why I decided to indicate it with figures. When the internship starts I will update these figures to actually API pages.

16th November - 3rd December

  • Community bonding period.
  • Study the API pages that have already been improved and integrated(This will help me gain more knowledge).
  • Study the Top 30 API pages and start writing sample codes for every page that requires sample codes(I am doing this because I realized that writing the codes took a longer time than improving the documentation itself for me, I believe this will make working on the pages easier when the internship starts).
  • Complete a python course I started on udemy here to give me a better understanding of making simple and complex HTTP requests to APIs using Python
  • Read related API documentation
  • Start working on the API:Categorymembers Demo App

Week 1 (4th December, - 10th December)

  • Create a sandbox page for the most viewed API number 30 and 29
  • Look for similar API pages, compare, review and improve.
  • Browse about the API’s to get more information
  • Run the API example link already available on postman if it gives an error message on the web browser, then write the sample codes
  • Format codes using pylint
  • Make a pull request to git repository and wait for a review
  • After the codes has been merged and Sandbox documentation has been accepted, I will copy the contents of my sandbox page and then paste it on the original API page.

Week 2 (11th December - 17th December)

  • Create a sandbox page for API pages 28 and 27
  • Repeat the same process as week 1

Week 3 (18th December - 24th December)

  • Create a sandbox page for API pages 26 and 25
  • Repeat the same process as week 1

Week 4 (25th December - 31st December)

  • Create a sandbox page for API pages 24 and 23
  • Repeat the same process as week 1

Week 5 (1st January - 7th January)

  • Create a sandbox page for API pages 22 and 21
  • Repeat the same process as week 1

Week 6 (8th January - 14th January)

  • Create a sandbox page for API pages 20 and 19
  • Repeat the same process as week 1

Week 7 (15th January - 21st January)

  • Create a sandbox page for API pages 18 and 17
  • Repeat the same process as week 1

Week 8 (22nd January - 28th January)

  • Create a sandbox page for API pages 16 and 15
  • Repeat the same process as week 1

Week 9 (29th January - 4th February)

  • Create a sandbox page for ALL pages 14 and 13
  • Repeat the same process as week 1

Week 10 (5th February - 11th February)

  • Create a sandbox page for API pages 12 and 11
  • Repeat the same process as week 1

Week 11 (12 February - 18th February)
*Create a sandbox page for API pages 10 and 9

Week 12 (19th February - 25th February )

  • Create a sandbox page for API pages 2 and 1
  • Repeat the same process as week 1

Week 13 (26th February - 4th March)

  • Give final touch to the top 30 most viewed MedaiWiki Action API pages
  • Give final touch to Demo App
  • A blog post for my complete journey.

5th March and later

  • Celebrations
  • Start code-based contributions in WMF. Explore other projects on WMF to contribute to.
  • Be an active member of the community.
  • Participate in future programs as a volunteer.

Participation

  • I will make a publish my source codes to the already existing MediaWiki-API-Sample-codes repository on GitHub. Codes will be uploaded to the edyasikpo branch on Github periodically and will be merged with the master branch once review and testing are done by the mentor.
  • I will be online on Zulip in my working hours 10 AM - 12 PM (UTC+01:00) West Central Africa to collaborate with the mentors.
  • I will communicate my progress daily or weekly (as need be) with my mentor on Zulip
  • I will use Phabricator or GitHub for managing bugs and subtasks.
  • I will be available in Gmail and the IRC channel to be contacted when needed in the non-working hours.

About Me

I am a fresh graduate from the Department of Computer Science, Renaissance University, Nigeria. I am a keen observer and I love to learn new things and work in collaboration with people. This will be my first participation in the Outreachy Programme.

  • How did I hear about outreachy?

I heard about the outreachy program on social media(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?

Yes, the Compulsory NYSC for all graduates in NIgeria. I will still be avaliable to work on the project from 7pm -12pm

  • What does making this project happen mean to me?

I am particularly interested in this project because of all the amazing information I have gotten from the free encyclopedia (Wikipedia). Wikipedia has always been one of the best sources of acquiring any information I was looking for since I was younger, I literally always found almost everything I needed and it got me wondering how the owners of Wikipedia could achieve this. So it would basically be an honor for me to contribute and help more people in the world get the correct information they are all searching for. The fact that the codes or documentation I contribute would be merged someday and thousands of people all over the world would use it is the most exciting part of this journey.

Past Experience

I have experience in working with android development with proof here. I am familiar with GitHub, link to proof here. Skill sets include Python, HTML, CSS, Java, XML, I am also a lead for Facebook Developer Circles in Uyo, Nigeria with proof here
I started contributing to an open source organization named Open data Kit early this year. ODK is an Android app for filling out forms. It's been used to collect billions of data points in challenging environments around the world. Contribute and make the world a better place! I solved some code based issues in Java and XML, the links to those are -

Open Data Kit
MediaWiki

I joined the MediaWiki Community on the 20th of September, 2018 and I am an active member of the MediaWiki community, view profile here For this project, it was important for me to understand;

  • The meaning of the MediaWiki Account API,
  • How to edit wiki pages,
  • How to use or write Templates,
  • How to use Phabricator,
  • Write codes in python,
  • How to translate pages.

In order to understand the above-mentioned skills, micro tasks were provided. The links below show the microtasks I was able to complete;

Microtask Completed

Event Timeline

@srishakatux This is my first draft for the Outreachy proposal. Please review.

(There is no need to ping me - I don't mentor, and I already get many notifications every day. :) I wish good luck and success!)

(There is no need to ping me - I don't mentor, and I already get many notifications every day. :)

My Apologies!

I wish good luck and success!)

Thank you!

@Didicodes Thanks for submitting your proposal :-) Neat! Here is the first round of feedback for you:

I have collected some resources that I think will be helpful during this project here

I don't have access to this document right now :-/

Synopsis

The MediaWiki Action API is a web service that allows access to some wiki-features. Some of the current uses of the MediaWiki Action API include: monitoring a MediaWiki installation, creating a bot to maintain a MediaWiki installation and logging into a wiki, accessing data, and posting changes by making HTTP requests to the web service.
The documentation of the MediaWiki Action API serves as a guide for anyone who is looking for more in-depth information about the API. It guides developers on how to integrate the API in their apps or websites explaining and providing code examples for many common integration use cases like authentication, page operations, search, etc.

Most of the information in this section comes from https://www.mediawiki.org/wiki/API:Main_page. You could either provide a link to the API:Main_page as a reference or re-write some of the text so that it is not called stealing information :)

Deliverables

  • Write weekly reports
  • Blog posts on my progress every two weeks.
  • Regular communication with my mentors and other community members at WMF.
  • Build a Demo App for API:Categorymembers

If I get this right, the demo app you are referring to is mentioned here. If so, then it is not just about building demo app for API:Category members module but there is more to it..Also, the demo app does not necessarily have to be about the one we talked about, it could be anything else that you want to build :)

Summary

I intend to use the bottom-up approach to work on this project (i.e starting from the 30th most viewed MediaWiki Action API to the 1st) The reason why I want to do this is because the top most viewed pages need more expertise because it is viewed most by the world. So using the bottom-up approach would equip me enough knowledge to tackle the most viewed pages such as the API:main page, API:query, API:Web API’s hub, etc.

I like this approach that you've mentioned :) To balance out, you could also choose to work on one complicated and one easy module to work on simultaneously. Just to be clear top twenty pages were developed before the Outreachy kick-off. So then this Outreachy project would be about improving pages that are in between 30-50 in the list of most viewed pages.

  1. Research and Investigation:
    • First, I will go through all the API pages that have already been improved by the Mediawiki team and look for the one which is almost similar to the page I want to work on. For example, when I was working on the Account_creation API, I used the Login API page for reference since both pages had similar contents.
    • Secondly, I would browse about the API: the meaning, usage, etc. For example when I worked on API:purge, I had to understand the definition of the word purge, how it differed from delete and how it could be used. Also, when I worked on the Account_creation API, I researched about other companies Account_creation API to get a better understanding; some of these companies include paypal link here, Oracle apps: here, Instagram: here

See massview analysis of all pages under MediaWiki Action API here that will be helpful in your research.

  1. Coding:
    • I noticed most of the contents of the page I was supposed to improve had a lot of API’s so I learned how to use http requests and API’s to communicate with websites using the icanhazdadjoke.com API link here: https://icanhazdadjoke.com/api and the MediaWiki API link here. I was able to successfully communicate with the API link here, doing this gave me a clearer picture of what I was supposed to do.
    • I copy the link to the API page and run it on postman(Postman always produce the correct result.) I noticed that whenever I clicked on most example links on API pages it returned back an error "code": "mustpostparams", especially with API pages whose examples required a post request.

This looks like the process you followed while learning how to interact with the API and does not need to be included here. You could perhaps include some of the useful links in a resources section.

Timeline

Note: The most viewed API pages is not constant that why I decided to indicate it with figures. When the internship starts I will update these figures to actually API pages.

See, the link for the pageviews tool above.

Week 1 (4th December, - 10th December)

  • Create a sandbox page for the most viewed API number 30 and 29
  • Look for similar API pages, compare, review and improve.
  • Browse about the API’s to get more information
  • Run the API example link already available on postman if it gives an error message on the web browser, then write the sample codes
  • Format codes using pylint
  • Make a pull request to git repository and wait for a review
  • After the codes has been merged and Sandbox documentation has been accepted, I will copy the contents of my sandbox page and then paste it on the original API page.

The content you've added in all the weekly sections above is same. You can say that you will repeat the same process every week and then get rid of all similar sections.

Thank you for the feedback @srishakatux! Working on the requested changes now

@Didicodes Thanks for submitting your proposal :-) Neat! Here is the first round of feedback for you:

I have collected some resources that I think will be helpful during this project here

I don't have access to this document right now :-/

I just granted you access!