**This is a proposal for outreachy(Round-11) to add ZIM support to OCG.**
**Public URL: **T73660
== Name and contact information ==
**Name: **Adisha Porwal
**IRC Nick:** adisha
**Mediawiki User:** Adishaporwal
**Time Zone: **UTC+5:30
**Typical working hours: **3: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 ==
=== Skills ===
# Debian 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. Any visitor will be able to build its own collection of article for offline usage, even with many hundreds of articles.
# The project will also help to integrate the functionalities of OCG and [[ https://wikitech.wikimedia.org/wiki/Nova_Resource:Mwoffliner | MWOffliner ]]sourceforge.net/p/kiwix/other/ci/master/tree/mwoffliner/ | MWOffliner ]], an already existing standalone solution to export Mediawiki content to ZIM.
=== Possible Mentors ===
# [[ https://phabricator.wikimedia.org/p/cscott/ | C. Scott Ananian ]]
# [[ https://phabricator.wikimedia.org/p/Kelson/ | Kelson ]]
== Milestones and Deliverables ==
| **Milestone ** | **Description** | **Duration** | **Deliverable**
| -------------------------- | -------------------------- | -------------------- | ------------------
| Milestone 1 | Envision Phase | Before 17 November 2015 | Development environment setup
| Milestone 2 | Community Bonding Period | 17 November - 7 December 2015 | WorkFlow of project
| Milestone 4 | Generation of standalone HTML tree on filesystem | 10 December 2015 - 27 December 2015 | Standalone HTML tree generation code
| Milestone 6 | ZIM file generation (zimwriterfs integration) | 16 January 2016 -3 February 2016 | ability to convert HTML tree to ZIM format
| Milestone 7 | Debian Package creation for zimwriterfs | 4 Febuary 2016 - 25 February 2016 | Debian package of zimwriterfs
| Milestone 8 | Final Code Review and Documentation | 26 February 2016 - 7 March 2016 | Source code, Project Report
== Schedule ==
**Before 17 November - __Milestone 1__**
- Remain in constant touch with mentor(s) and community.
- Getting myself familiar with development environment.
- Getting myself familiar 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 - __Milestone 2__**
- Discuss, prepare and finalize 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 9 December 2015 - __Milestone 3__**
This Milestone can be achieved in following steps:
1.1 - A "do nothing" stage in mw-ocg-bundler, protected by a command-line flag, to new code.
1.2 - Turn on this flag when running tests.
Add code to the stage to download the set of modules required for each page in the collection, and save it to 'modulesDb'.
3.1 - Add the list of modules to get the list of *unique* modules required to download.
3.2 - To the above list, add the list of "default modules" required on every page to this set.
Download this list of modules obtained above from resourceLoader
Step first and second is tried to achieve in the [[ https://gerrit.wikimedia.org/r/247614 | patch ]].
It is also a microtask for project, So, it is expected to be done before that. If completed, will begin with research on implementation of milestone 4.
**10 December 2015 to 27 December 2015 - __Milestone 4__**
**28 December 2015 to 15 January 2016 - __Milestone 5__**
- Rewrite/clean HTML to work offline properly.
**16 January 2016 to 20 January 2016**
- Test the portion of project completed.
- Document the achieved milestones.
- Get familiar with working of MWOffliner.
**20 January 2016 to 26 January 2016**
- Invoke 'zimwriterfs' (console tool to create ZIM files from a locally stored directory containing an HTML tree) using OCG.
- Discuss with mentor(s) about the future work on related milestone.
**26 January 2016**
Mid Term Evaluation
**27 January 2016 to 3 February 2016 - __Milestone 6__**
- Convert HTML tree to ZIM format using 'zimwriterfs'.
**4 February 2016 to 22 February 2016 - __Milestone 7__ **
- Get familiar with packaging.
- Create dDebian package of zimwriterfs as it is required for easy/controled installation of zimwriterfsin production.
**23 February 2016 to 29 February 2016 - __Milestone 8__ **
- 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 shall keep mentors updated of my regular work through direct updates via emails.
- The project progress will be updated weekly on the [[ https://www.mediawiki.org/wiki/User:Adishaporwal | sub-namespace ]] of my user page.
- **Mailing List**: I will use it to communicate progress regularly.
- **Blog** : I shall keep my blog updated with regular updates of my work, ideas and helpful posts.
==== Where I would turn for help? ====
**Search by myself**
- Self-research (initially) through available documentation, articles, blog posts and forums.
**Seek help from community**
- Ask the community at IRC channel for help.
- Post queries to the relevant mailing lists or through direct emails to the mentor and related developers.
==== Source Code ====
- Source code will be pushed to gGerrit.
= About Me =
I am Adisha Porwal, a fifth year student of an integrated masters program at [[ http://iips.edu.in/ | IIPS-DAVV ]] with computer science major.
I am enthusiastic and active member of [[ http://iips.edu.in/dc | Development Center ]] (DC), a part of my college. Development Center aims at bringing people closer to open source technologies. As a DC member, I have taken workshops on Python, HTML, CSS for college students and went to village for making the girls aware of computer basics.
For contributing to open source world, version control systems are something one should be aware of. I am familiar with git internals. For my projects, I use GithubHub to version control and share my code with the world. While contributing for Wikimedia, I got aware of Gerrit code review system.
During Outreachy internship, I promise to work for at least 40 hours a week. I may have to take holiday for 5 days in February but it is not yet decided. I got aware of Gerrit code review systemIf I will take break than I will compensate the time lost and work during the period in other weeks.
During outreachy internship, I promise to work for at least 40 hours a week.I may have to take holiday for 5 days in February but it is not yet decided. If I will take break than I will compensate the time lost and work during the period in other weeks.
== Current Experience with Mediawiki ==
I really enjoy contributing to MediaWiki. The support from community made my contributions possible. Throughout the time period of making my intial contributions, I have learnt something new every day and sure will learn something new in future also.
Till now I have:
- Set-up the development environment of MediaWiki core, OCG, MWOffliner and zZimwriterfs.
- Basic familiarity with code and coding conventions.
- Understood the process of submitting a patch and review(p (Phabricator, gGerrit and gitGit).
==== Microtasks and Bugs====
- Currently working on T114788: OCG should download resourceLoader js/css dependencies.
- T98829: Search input cut off in noNode.JS mode(merged).
- T103727: Empty message on watchlists is not center aligned (merged).
== Past Experience ==
=== FOSS Projects ===
My first encounter with FOSS was Linux.
As being a FOSS user and a huge fan of FOSS, I use Ubuntu 14.04 as my operating system, Mozilla Firefox for browsing, VLC for media files, PHP, Python and other open source languages for programming and Wikipedia for reading about anything new.
However, I am a newbie to Open source community and this is my first-hand effort to contribution in a FOSS and really excited about it. I began with MediaWiki few months ago and submitted some 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 an organisation ([[ https://github.com/adishap/complaint_box | GithHub Link ]])
- Team and Score Management System for a college event ([[ https://github.com/AkankshaRathore/Event-Result-View | GithHub Link ]])
My more work can be found at my [[ https://github.com/adishap/ | githGitHub profile ]].
== 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:** From a friend [[ http://exploreshaifali.github.io | Shaifali Agarwal]], who was past intern of Outreachy (round 9) and GSoC 2015.