User:Martyav

Marty Hernandez Avedon (he/they), Outreachy Winter 2018 Intern and Contributor at Mediawiki

Contributions * Github * Blog

= Internship Project = Improve top 50 viewed pages of the MediaWiki Action API & create a demo app to educate users

MediaWiki is the software many popular wikis run on, including the English Wikipedia. However, the documentation for using our numerous web APIs is inconsistent from article to article, and sometimes article content is incomplete or unclear.

Because MediaWiki-based projects have high visibility and are frequently used by educational programs, the documentation improvements on the top 50 pages will be very useful both to developers and site maintainers of MediaWiki-based sites, and to student who use the APIs to learn practical web development skills.

= Bio = I'm a software developer from New York City.

I attended Pursuit (formerly known as C4Q) from 2016-2017, after teaching myself how to program with Python, and some basic web development skills.

Upon graduating from Pursuit 10 months later, I worked on some iOS apps, tutored, and taught myself Java and C#.

In 2018, I apprenticed at Microsoft, on Azure team.

Prior to coding, I used to write short web articles and do print design for local businesses and nonprofits.

= Activity =

Articles
I have a spreadsheet of articles to work on during the internship here. As of 07 December 2018, it lists 44 articles. Some are overview pages or tutorials and don't quite fit the template model. However, they are listed due to their high importance or page ranking.

Articles in the sheet are listed roughly in order of amount of work anticipated, from least to most.

App
Part of my Outreachy project involves creating a web app to demo how to make requests, parse JSON, and display images/text from the API. Such an app is aimed at helping beginner programmers, and people new to the API. Below is some brainstorming:


 * 1) Featured article multiple choice quiz. The first line from a random featured article is displayed, with the title and image obscured. The correct title, and 3 incorrect titles from related articles, are displayed on screen. The user clicks, touches, or types their choice. If they are confused (not all featured articles have great first lines), they can ask for a hint, and get the second line. After they choose, the title and image are revealed, and they can click on any of the titles on screen to visit the page.
 * 2) Match game. Display images and titles from 5 random articles. Make the user match them by dragging them together, or by typing into a field (if the titles are numbered 1 to 5, and the images are labeled A-E, the user types 1A to match title 1 with image A). Correct matches snap together and are added to a list. When all matches are correctly made, the user can visit the articles.
 * 3) Distance from philosophy. 97% of all articles link to the philosophy article. Display a (social media?) preview of a random article and make the user guess how far the article is from philosophy. After they guess, display the true distance, according to a web crawler. Display the articles and their images along the way in a list view (table view)

Adding a simple search and display feature to any of these apps would demonstrate basic functionality in a straightforward way for coders who need to cut to the chase. The game section would demonstrate more complicated features. We could also have a sign up and POST request feature to demonstrate this important functionality, but it might encourage (accidental or purposeful) wiki vandalism, so it needs to point to a page that people can use as a playground.

Language support

While most of the sample code hits the English Wikipedia, there is no reason why our app should be English-only. We should allow users to select their language so they can view articles from Wikis other than Wikipedia.en. We can reduce translation issues in the UI by sticking to icons and clear affordances, with text not from API hits kept to a minimum. Documentation for the apps should be translation tagged.