Wikimedia Hackathon BPHC 2016

Background
BITS Pilani, Hyderabad Campus has a rapidly growing culture of innovation. Through student-led clubs such as CRUx and associations such as the Computer Science Association, many programming workshops on are held on a weekly basis. Apart from this, independent Student Mentorshop Programs are organised to improve the techincal skills of the students. The campus also maintains an open source GitLab repository of software projects created by the students.

Currently, the open source culture of the campus is in its infancy. Despite this, the college has had active participation in the Google Summer of Code and GSoC 2016 saw a total of 7 selections from the campus. Yet, the number people of applying for the GSoC is less than it could be due to a lack of awareness about what the GSoC is. Through this hackathon, we want to increase the number of students taking part in open source development. We will help the participants every step along the way from setting up the build environment to filing bug reports and writing documentation.

The program will run from 24 September to 25 September. We are planning to keep two parallel hackathons:


 * MediaWiki Hackathon


 * PyWiki Bot Hackathon

Added Benefit
Are you willing to apply for Google Summer of Code (GSoC) but don't know how to start?

Well, that's problem everyone faces at the onset of joining the open source communities.

Attending this workshop would give a clearer picture to anyone who's willing to apply to the open source scholarship programs like Google Summer of Code (GSoC)and/or Outreachy but lacks direction or information. This workshop will leave you with a better understanding of how you may proceed with contributing to an organization of your choice, thus significantly boosting the probability of you getting selected! \o/\o/

Facilitators

 * Soni (Local Organiser, Not mentor)
 * Tony Thomas
 * Abdeali JK
 * Srijan Agarwal
 * Abhinand N
 * Devi Krishnan

Registration
Fill this Google form to register yourself for the workshop. Since we have limited slots available, we'll keep the event limited to the registered students.

MediaWiki Hackathon
To make sure all attendees are at the same phase, please ensure that you have the following setup in your machine:
 * 1) Any working Linux environment, with LAMP server installed. You can find the installation steps for LAMP in Ubuntu here
 * 2) Any powerful PHP IDE, PHPstorm recommended. You can find the instructions here.
 * 3) An account in Wikitech, Gerrit, Wikimedia Phabricator, and Github
 * 4) Try cloning and setting up Gerrit in your machine following the instructions given here
 * 5) Try connecting with #wikimedia-dev on IRC freenode channel
 * 6) Important: We are expecting the participants to have a clone of MediaWiki-core downloaded and installed in their machine before hand, so that we can start early with the contribution phase. You can find the detailed instructions on how to setup development environment for Mediawiki in the Gerrit/Tutorial

In case you do not have any prior know-how of PHP, Version control or web applications : You are welcome to try setting up a simple registration and login web application in PHP beforehand, in your machine. You can find sample code for the same here. You will have to setup LAMP or similar stack in your machine to test the code locally.

PyWikiBot Hackathon

 * 1) Any working Linux environment with Python 2.7 and pip installed. If Windows, install Python using Anaconda.
 * 2) An account in Wikipedia, Wikitech, and PAWS
 * 3) Fundamental knowledge of Python (if-else, loops, functions, lists, dictionaries, tuples, operators)
 * 4) Basic knowledge of IPython notebooks/Jupyter notebooks is a plus
 * 5) Understanding of Categories, Pages, etc. in Mediawiki
 * 6) Important: We are expecting the participants to have a clone of MediaWiki-core downloaded and installed in their machine before hand, so that we can start early with the contribution phase. You can find the detailed instructions on how to setup development environment for Mediawiki in the Gerrit/Tutorial

Why Should You Attend?

 * 1) Reading through the large open-source code base and contributing as code: Increasing their technical and code scripting skills, solving simple to complex real-time problems existing in Mediawiki software.
 * 2) Motivated students reaching out and getting into internship opportunities like Google Summer of Code and Outreachy: Along with building a strong hold in technical stuff, internship programs like GSoC and Outreachy allow its interns to work on major problems, proposing and implementing their solution under expert mentorships. The selected students get a considerable stipend and its a major addition to the institutional record too.
 * 3) Active community engagement and other opportunities The workshop would add to the technical know-how of the participants while working closely with a worldwide Wikimedia community, which is the fun part.

FAQ

 * What you need to know
 * You need to have some sort of prior experience developing stuff (web apps, mobile apps, data mungers, anything at all!) or using Python (for scripting, bot building etc). There are a variety of things you can do (CSS/JS hacks, webapps that use the API, Mobile apps, data mining) that pretty much anyone with some developer experience is bound to find something fun to do. This is a hackathon, and not a workshop.
 * Knowledge of Free Software License, comfortable using any Online Project hosting websites (like Github) since we would want you make the code you write for the hack freely available, online.
 * What language can I use
 * For MediaWiki hackathon, any programming language you are comfortable with and can make sense of the MediaWiki code base. Life would get easier if you have some prior programming experience in PHP since most of the MediaWiki code is written in PHP
 * For PyWikiBot, Python 2.7 is needed.
 * How can I prepare for the hackathon
 * Read through links in Resources, check out the Examples.
 * Feel free to ask questions! Contact us.
 * What qualifies me to come
 * Show us some code you have written, tell us what you know, tell us why you love hacking (and Wikipedia) in general, and you'll get the pass :)
 * Please sign up here.
 * How to spread the word
 * Pass on the word to your fellow geek friends.
 * Use #MediaWikiHackathon on Twitter.