Wikimedia uses Bitergia's analytics tool for the technical community metrics. This tool provides useful information and is convenient for community managers who are familiar with its every know-how. However, this tool is cumbersome to use for others (e.g., sponsorship committee reviewers, event organizers, etc.) as it requires too many steps to obtain statistics for a topic and there is a bit of learning curve to get comfortable with the tool.
AWMD stats tool generates monthly statistics of technical contributors to Wikimedia projects from Africa. Seeking inspiration from this tool, the goal of this project is to design and develop a proof of concept that demonstrates what an extended version of AWMD tool for use by others in the Wikimedia movement would look like. See #28 on Github.
This project is about developing a tool that gives a sneak peek into a developer’s contributions on Wikimedia platforms: Gerrit, Phabricator and Github. The first version of this tool will:
- Allow uploading data which might be a list of users with their Wikitech/Gerrit, MediaWiki/Phabricator, and Github usernames in a CSV format.
- Fetch users contributions within a specific timeframe from Gerrit, Phabricator and Github via corresponding APIs. The initial focus could be on the quantitative data and to focus on minimal criteria (e.g., for Gerrit, it could be just obtaining a number of patches merged on Gerrit for a user). Pulling data from Github might be a tough nut to crack because of various reasons, and we might be ignoring it in the first version.
- Present the information in a list and/or graphical view format with the ability to sort the data by the most active user.
This tool will be hosted on Toolforge, and you will be designing, developing and deploying it from scratch :)
Basic familiarity with Python and Web APIs
- Write a program in Python to fetch for a user number of patches merged within a specific timeframe on Gerrit. Host the code in a repository on Github. Anyone can work on this task. When you've finished, add a link to your repo in a comment on this Phabricator task.
- Task Statistics: Write a program to fetch all tasks a given user is subscribed to in Phabricator (Maniphest). Prepare a list of all such tasks for a given Month of an year and summarize the findings by creating a "tasks subscribed to vs time" table or histogram. For example for the January Month, there would be a table as follows:
User Stats: Srishti +------+---------------+ | Week | Subscription | +----------------------+ | 1 | 11 | | 2 | 13 | | 3 | 21 | | 4 | 32 | +------+---------------+
It is not necessary to use this exact table format. You can use the Conduit API for this purpose (See https://phabricator.wikimedia.org/conduit/)
- UX Research and Design Mockups: Even though, coming up with a UX and mockup at an early stage of the project is aggressive, it can be interesting to follow some design thinking and identify UX around some elements (landing pages, search functionality, and time duration filtering etc.) For this particular microtask, create a preliminary mockup for the first few screens (2-3) of this application/tool while identifying a use case and user-flow which they fulfill. Example use-case: How would a user of this tool search for a given developer and how can 3-4 key stats for the developer (commits vs time, Phabricator tasks commented on vs time) be summarized? What would be shown on the screen if one of these stats have to be explored further Bly clicking them? Do not create high-fidelity mockups - just wireframes. Some tools that can be used are: Pen and paper, Evolus Pencil (https://pencil.evolus.vn/) , quickMockup (https://jdittrich.github.io/quickMockup/)
Note: The above UX task will not be reviewed right now and is intended to go in the students’ proposal directly for a later evaluation. If you need guidance on it, reach out to @Tuxology on Zulip
Get in touch with mentors on Zulip
As a question in the topic Phab:T202233 Developer metrics tool under https://wikimedia.zulipchat.com/#narrow/stream/180873-gsoc19-outreachy18