**This is a proposal for outreachy(Round-11) to add ZIM support to OCG.**
= Proposal=
**Public URL: **T73660
== Name and contact information ==
**Name: **Adisha Porwal
**Email: **porwaladisha@gmail.com
**Irc Nick:** adisha
**Mediawiki User:** Adishaporwal
**Location: **India
**Time Zone: **UTC+5:30
**Typical working hours: **5:00 PM to 12:30 AM (Indian Standard Time)
==== Internet Presence ====
**Github Profile: ** [[ https://github.com/adishap/ | adishap ]]
**LinkedIn Profile: ** [[ https://in.linkedin.com/pub/adisha-porwal/8a/458/30a | Adisha Porwal ]]
**Twitter : ** [[ https://twitter.com/AdishaPorwal | @AdishaPorwal ]]
== Synopsis ==
Mediawiki is the wiki engine behind Wikipedia, all Wikimedia projects and thousands other Web sites.Mediawiki hosted content can be made available for offline usage through the Collection extension (written in PHP). The [[ https://www.mediawiki.org/wiki/Extension:Collection | Collection ]] extension allows to easily create collection/selection of articles: so called books ; One time created, books can be exported in the PDF format. The PDF exporting backend itself is not provided by the Collection extension, it's done with a JavaScript based solution called [[ https://www.mediawiki.org/wiki/Offline_content_generator | Offline Content Generator ]](OCG). Presently,OCG only supports PDF format.This project will provide functionality to support [[ http://www.openzim.org/wiki/ZIM_file_format | ZIM format ]] to OCG. The ZIM file format allows to store web pages (with images, videos, etc...) in one extremely compressed file.
=== Skills ===
# Node.JS
# HTML
# PHP
# packaging
=== How it will benefit MediaWiki or Wikimedia projects? ===
# Mediawiki hosted content can be availed offline in ZIM format to read everywhere with a reader like Kiwix.
# the project will also help to integrate the functionalities of OCG and [[ https://wikitech.wikimedia.org/wiki/Nova_Resource:Mwoffliner | MWOffliner ]]
=== Possible Mentors ===
# [[ https://phabricator.wikimedia.org/p/cscott/ | C. Scott Ananian ]]
# [[ https://phabricator.wikimedia.org/p/Kelson/ | Kelson ]]
== Deliverables ==
# OCG will be able to produce metadata about ResourceLoader modules ** (Milestone 1) **
# Modules related to stylesheets and javascript to be downloaded by 'mw-ocg-bundler' ** (Milestone 2) **
# Code for conversion of bundle into HTML tree ** (Milestone 3) **
# Invoke 'zimwriterfs' to create the ZIM file ** (Milestone 4) **
# Create a Debian package of zimwriterfs ** (Milestone 5) **
== Schedule ==
**Before 17 November (Envision Phase)**
- Remain in constant touch with mentor(s) and community.
- Getting myself familiarize with development environment.
- Getting myself familiarize with working of Node.Js and packaging.
- Study required docs.
- Fix some bugs along the way and get my hands dirty with code.
**17-November-2015 to 6 December 2015 (Community bonding period) **
- Discussion on workflow for development phase with mentors and community
- Get myself familiar with architecture and implementation of OCG and MWOffliner
**7 December 2015
**Actual Coding period begins
**7 December 2015 to 12 December 2015 - __Milestone 1__**
- Send request to API sandbox to get metadata related to css/js dependencies.
**13 December 2015 to 27 December 2015 - __Milestone 2__**
- Download the correct CSS/Javascript modules necessary for each page.
**28 December 2015 to 15 January 2016 - __Milestone 3__**
- Transform the bundles genrated by OCG into standalone HTML tree.
**16 January 2016 to 20 January 2016**
- Test the portion of project completed and Documentation for Milestones achieved
- Getting my self familiar with working of MWOffliner
**20 January 2016 to 26 January 2016**
- Invoke zimwriterfs using OCG
- Discuss with mentor(s) with the future work on related milestone
**26 January 2016**
Mid Term Evaluation
**27 January 2016 to 3 February 2016 - __Milestone 4__**
- Convert HTML tree to ZIM format using zimwriterfs
**4 February 2016 to 22 February 2016 - __Milestone 5__ **
- Getting my self familiar with packaging
- Create Debian package of zimwriterfs
**23 February 2016 to 29 February 2016**
- Code Review by me and mentors
- Inact information from code review
- Conduct several tests
- Document the project
**1 March 2016 to 7 March 2016**
- A buffer period required for final polishing of work.
**7 March 2016**
Firm Pen Down
== Participation ==
==== Communication of progress ====
- **IRC channel**: I'll stay online on IRC at #kiwix, #mediawiki-parsoid, #wikimedia-dev in freenode, in my working hours.
- **Email**: I will report my progress using mails weekly.
- The project report will be updated on the [[ https://www.mediawiki.org/wiki/User:Adishaporwal | sub-namespace ]] of my user page.
==== Where I would turn for help? ====
- Solve by myself
- Seek help from community
==== Source Code ====
- Source code will be pushed on a gerrit.
= About Me =
I am Adisha Porwal, doing Masters in Computer Science from [[ http://iips.edu.in/ | IIPS-DAVV ]].I am enthusiastic and active member of [[ http://iips.edu.in/dc | Development Center ]] of my college.
My interest is to learn and explore more about web development.I want to be the part of organisation which is used by most people.
I love coding and experienced with python, php, javascript, CSS, mysql, MVC architectures and I always do keep working on some project, here's my Github profile.
I promise to work for atleast 40 hours a week.
== Current Experience with Mediawiki ==
- Have set-up the development environment of core , OCG and MWOffliner.
- Basic familiarity of code and code conventions.
- Understood the process of submitting a patch and review (phabricator, gerrit and git).
==== Microtasks and Bugs====
- Currently working on OCG should download resourceLoader js/css dependencies (T114788)
- Search input cut off in noJS mode (T98829)
- Empty message on watchlists is not center aligned (T103727)
== Past Experience ==
=== FOSS Projects ===
My first encounter with FOSS was Linux. As a FOSS user, I use Ubuntu 14.04 as my operating system, Mozzila Firefox for browsing and PHP, Python and other open source languages for development.
However, as a open source contributor , I began with Mediawiki few months ago and submitted few patches in extension MobileFrontend and mw-ocg-bundler.
=== Other Projects ===
- Alumni Portal for institute ([[ https://github.com/adishap/alumniportal | Github Link ]])
- Complaint Management System for a organisation ([[ https://github.com/adishap/complaint_box | Github Link ]])
- Team and Score Management System for a college Event ([[ https://github.com/AkankshaRathore/Event-Result-View | Github Link ]])
== Other Information ==
**Do you meet the eligibility requirements outlined?:** Yes
**Preferred pronoun:** she
**Education:** Student at [[ http://iips.edu.in/ | International Institute of Professional Studies,DAVV ]] Graduating in December 2016
**How did you hear about this program:** A friend who participated in Outreachy (round 9) and GSoC 2015