Africa Wikimedia Technical Community/Project Scope

African Wikimedia Developers Project

 (AWMD)  Home | Project | Team | Drop us a message |

Problem
We wish to build a team of Wikimedia volunteer developers from Africa due to the following problems faced in our continent;
 * There are very few developers from Africa in the Wikimedia Foundation (movement). We wish to increase the numbers to fulfil the movements vision.
 * Volunteer developers to add more features on MediaWiki projects and its extensions including APIs etc.. from Africa and in addition, develop tools/projects that solve common problems within the African context to promote the movement’s activities in a technical approach. For example ……..
 * Avoid waiting on a small skewed group of developers to solve the many tech problems in the movement especially peculiar problems pertaining to volunteers from our terrain.
 * Lack of participation from African volunteers in tech inclined Global events in the movement such as Google Summer of Code, Google Code-In, Outreach program for women etc...

Proposed Solution
We are currently a team of two ready to work with very experienced minds both in and out of the movement to make this idea a realised one. We intend to recruit volunteer developers and use the opportunity to champion the cause of the movement.

The plan so far is getting the following;
 * A mailing list of volunteer developers in Africa to share ideas and topics of discussion with others to get them interested.
 * Tap into affiliates of the WMF and user groups of different movements (GDG, Python group, Linux group etc...) in each country to see if we could get some people interested in contributing to mediawiki. We believe it is reasonable in this sense as it's often easy for developers already contributing in the open stream to move to similar new projects.
 * Use word of mouth in university institutions (to the science students/programming students/computer science) and see if we could get them interested in the movement's activities and to contribute (this would be done per country and stats will be shared).
 * Train prospective groups of developers in the select countries and motivate their continued efforts through the mailing list.
 * Organize a once a year meeting/hackathon to enhance and showcase their works.
 * Per country, we would keep the energy active by nominating some volunteers to build developer communities in their various communities and bringing all these communities together, we would have a large community in Africa which are developer based.

Goals/Objectives
Have a community of developers from Africa.


 * Achieve a total of 20 active developers across the continent.
 * Participation of at least 5 individuals in the Summer of Code (GSoC) for 2018
 * Create a solution to at least one of the major technical concern from Africa.
 * Participate in solving concerns from the community wish list.
 * Organize at least one continental hackathon.

Project Significance

 * This would benefit the African community in that they would be able to play around with MediaWiki and its extension (they learning how MediaWiki and development in the Foundation/movement works). Getting a developer feel of Wikimedia projects and maybe start thinking of a project to help the African community and the movement as a whole. For a start we will be working on projects in the mainstream and/or on existing projects, fixing bugs and helping to build a growing ecosystem. However we look up to starting some projects in the future and solving real issues that pertains to the continent.


 * With an African team of developers, we could come up with projects that could solve common problems within the continent. These projects will go a long way to solving our common problems.


 * This will increase the level of awareness of the movement's activities in Africa and get more people involved in volunteering in community projects from Africa leading to an increase in the number of not only the editors but developers from Africa.


 * Getting Africans folks to participate in global programs which will benefit them and the Foundation as they will build tools to solve problems and real world tasks (enriching their career path) as developers. Programs such as Outreach for women (no participant from Africa), GCI (no participant from Africa) and GSoC (only 1 participant from Africa in 2016). In addition, it will groom developers with real skills within the open movement and aid the learning of the use of a completely new platform.


 * In a nutshell, our prime or primary objective is getting volunteer developers in the movement from Africa (active ones to work on Wikimedia projects and African related projects geared towards the movement's goals).

Training Schedule
We intend to start and end trainings within the durations of March - June (4months). This will include in country trainings for at least 3 countries but preferably 4 countries. Plan A Twice in a month but held every other month. This leaves a month of planning and securing of logistics in between for each batch of events to be held at each location. Plan B One event per country each month. Countries Proposed countries below:

Phase 1

 * Ghana - We settled on Ghana because there is a User Group and OFWA to support this activity in the country. It’s a strong country when it comes to Wikimedia involvement on the African continent and we are likely to use the leverage already with partnering institutions to enhance this cause.


 * Côte D’ivoire - Côte D’ivoire is a strong country in the movement with an interest in computer science or programming. We are very much aware about the enthusiasm for developer related programs with Google and other notable companies in the country. We wish to leverage their strengths and interests while roping in the usergroup to use the opportunity to strengthen their ties and announce their presence.


 * Nigeria - A very vibrant community in the West African sub-region and activities there will pull the crowds and creative massive awareness about Wikipedia and the developer opportunities for volunteers.


 * Tanzania - We have just started a growing community in the country and majority of the members are computer science students, plus we already have a partnership with a hub that is willing to give us their space, audience and support for the project. The hub is linked with the government and creates strong ties to champion this cause.

Phase 2

 * South Africa - Has the only chapter on the continent and working with them will bring the kind of people we envisage as developers for the continent. Currently there are a couple we know who are really doing amazing on the mediawiki and will be great to rope them in.


 * Botswana*-


 * Kenya* -


 * Cameroon*-

Day 1

 * Session 1: Introduction to Git, Github, Gerrit and installation of Mediawiki.
 * Welcome and Icebreaker - 9:00am - 9:20am
 * Introduction of Wikimedia Projects - 9:20am - 9:40am
 * Introduction to Git/Github and Gerrit - 9:40am - 10:40am  -- 10:40am - 11:00am
 * Gerrit Tutorials for installation of MediaWiki on Local Env.: - 11:00am - 12:30pm
 * https://www.mediawiki.org/wiki/Gerrit/Tutorial (Gerrit Tutorials to setup mediawiki)  -- 12:30pm - 1:10pm
 * Energizer - 1:10pm - 1:15pm
 * Why volunteer as a developer 1? - 1:15pm - 1:40pm
 * Installation of MediaWiki extension onto MediaWiki and how to use these extensions. (the above two points are working hand-in-hand since in the Gerrit tutorials, installation of mediawiki is done) - 1:40pm - 2:40pm  -- 2:40 pm - 3:00pm ===== Session 2: How to use IRC for communication with other Wikimedia developers =====
 * Introduction into IRC and IRC commands - 3:20pm - 4:30pm
 * https://en.wikipedia.org/wiki/Wikipedia:IRC/Tutorial (Use of IRC - tutorials)

Day 2

 * Welcome - 09:00am - 09:10am ===== Session 3: Hands on how to build extensions on MediaWiki & hacking Example ext =====
 * Example extension into MediaWiki tutorial / exercise - 09:10am - 11:10am
 * https://www.mediawiki.org/wiki/Manual:Developing_extensions (Developing an extension)  -- 11:10am - 11:30am
 * https://www.mediawiki.org/wiki/How_to_become_a_MediaWiki_hacker/Extension_Writing_Tutorial (Hacking the example extension)  - 11:30am - 12:30am  -- 12:30pm - 1:10pm ===== Session 4: How to use Wikimedia Phabricator as a developer =====
 * How to use Phabricator (file bugs, solve issues, etc…) - 1:10pm - 2:30pm
 * https://phabricator.wikimedia.org (Issue tracker)           - 2:30pm - 3:00pm
 * Why volunteer as a developer 2? - 3:00pm - 3:40pm
 * Wrap up & Closure - 3:40pm - 4:00pm

The above bullets should cover at least 85% of what developers should know before working on programming related projects in the Wikimedia Foundation. Note: We won’t teach them programming since they will have to learn that on their own. We will only tell them the list of programming languages they are suppose to know so that they can use it to contribute on Wikimedia projects. Programming Languages used in the Wikimedia Foundation The Wikimedia Foundation uses various technologies on their projects but there are core languages that a developer must know to contribute to MediaWiki and other Wikimedia projects. Below is a list of the most used languages in the Wikimedia Foundation.
 * PHP and Hack (PHP is the most recommended)
 * JavaScript, JSON and jQuery
 * SQL for the query language
 * MariaDB/MySQL as database management system

Target Groups/Mode of Recruitment
We intend to communicate through already existing developer groups and communities, such as:
 * Google Developer Groups
 * Linux User Groups
 * Mozilla Clubs
 * Universities/Higher Education Institutions
 * Freelance Developers
 * Members of the open source community

Continental Events

 * Solving real problems in Africa with Wikimedia Resources for the movement and of benefit to Africans or participants themselves - Regional conference (Year end 2017)
 * Outreach for Women - October 2017
 * Google Code-In program - December - February (2017/2018)
 * Hackathon before, after or around Wikimania in capetown - 2018
 * Participating in solving some of the problems communicated on the wish list. 2018
 * Summer of code - 2018