Difference between revisions of "Projects"

From Kiwix
Jump to navigation Jump to search
m
 
(67 intermediate revisions by 8 users not shown)
Line 1: Line 1:
The Kiwix '''volunteers program''' has for purpose to offer to motivated and talented people ways to work for Kiwix during a limited time.
{{translations}}
<translate><!--T:1-->
The Kiwix '''volunteer program''' offers talented, motivated people ways contribute to Kiwix in minor ways.  Contributors speak English, French, or German.  Technical volunteers should know JavaScript, CSS, other web languages, or C++.
</translate>


== Tasks ==
<translate>== Tasks == <!--T:2-->
</translate>


=== Kiwix for Android ===
== [https://phabricator.wikimedia.org/T73660 (re)-Introduce ZIM support in MediaWiki Book creator/OCG] ==


[[image:android.jpg|right|150px|Android logo]]
<translate><!--T:3-->
[https://www.mediawiki.org/ MediaWiki] is the wiki engine behind [https://www.wikipedia.org Wikipedia], all [https://www.wikimedia.org/ Wikimedia projects] and thousands of other Web sites. It's a cutting edge free software providing highly featured web sites that anybody can edit. MediaWiki hosts content that can be made available for offline usage through the [https://www.mediawiki.org/wiki/Extension:Collection Collection extension] (written in PHP). The Collection extension allows easy creation of collections of articles, called books; here is [https://en.wikipedia.org/w/index.php?title=Special:Book how it works on the English Wikipedia]. Once created, books can be exported into PDF format. The PDF exporting backend itself is not provided by the Collection extension. It is done with a JavaScript based solution called [https://www.mediawiki.org/wiki/Offline_content_generator OCG]. OCG is a NodeJS daemon able to transform a book definition in a PDF and it should be able to do the same in the ZIM format. The [http://www.openzim.org ZIM format] allows the storage of webpages (with images, videos, etc...) in one extremely compressed file. These pages are then available to read on most computers with [http://www.kiwix.org Kiwix]. A [https://github.com/cscott/mw-ocg-zimwriter stub of solution] has already been written and the [https://sourceforge.net/p/kiwix/other/ci/master/tree/mwoffliner/ MWOffline] is already functional. This [https://phabricator.wikimedia.org/T73660 task] is mostly about merging them.
</translate>


Always more people use [https://secure.wikimedia.org/wikipedia/en/wiki/Smartphone smartophones] as medium for their digital life. This is especially the case in emerging countries which are targeted by Kiwix. We think [https://secure.wikimedia.org/wikipedia/en/wiki/Android_%28operating_system%29 Android] will be the most important mobile platform in the next years, especially for the cheapest devices. Android is in addition, [http://www.fsf.org/news/2010-05-app-store-compliance to the opposite of the Apple app. store], open to free softwares. Consequently our next big step, is to port Kiwix to Android.
=== [[phpzim]] (assigned) ===


We do not want to start an other software which would generate a lot of additional code to develop and maintain. So, current Kiwix code base has to be reused and ported. Kiwix runs currently with the help of [https://developer.mozilla.org/fr/xulrunner Xulrunner], but it can also runs perfectly using Firefox. [https://developer.mozilla.org/en/getting_started_with_xulrunner#Alternative.3a_Use_Firefox3_-app_to_run_XUL_apps Firefox can since version 3 is able to launch third party software], like Kiwix. [https://wiki.mozilla.org/Fennec Fennec], Firefox for mobiles, was launched a few month ago for Android, so we hope that Kiwix could be ported to Android using Fennec or something similar (see [http://joliclic.free.fr/blog/index.php?category/mozilla this example]).
== Promotional video (assigned) ==
Look [[Video|here]] for more details.


We need for this task someone with good knowledges in C++, compilation and with know-how in porting C++ softwares to Android. Someone with enough motivation to build a prototype of XUL (with custom C++ XPCOM components) application running on Android could also match the requirements.
<translate>=== Testing platform === <!--T:4-->
We need a solution to automatically test Kiwix. We currently have nothing... so we will start from scratch!
</translate>


=== Sugar port ===
<translate>=== Wikipublish === <!--T:5-->
[[File:Xo.jpg|right|150px|XO computer]]
</translate>


[http://www.sugarlabs.org/ Sugar] is a Desktop environment thought for kids. It's especially known to be provided in [http://laptop.org/en/laptop/ XO computers] of the [http://one.laptop.org/ One Laptop Per Child] (olpc) project. Because Kiwix is developed on GNU/Linux like Sugar, there is no principle problem to run Kiwix on Sugar... but they are still things to do.
<translate><!--T:6-->
Create a publication platform like a online Web site similar to iTunes which would provide a list of available content to download in ZIM or EPUB formats. It would also show previews of content before downloading.
</translate>


The first difficulty is that Kiwix should be compiled statically (in a Sugar activity), which is currently not fully finished for GNU/Linux... although is already works for MS Windows and MacOSX.
<translate><!--T:7-->
* [http://meta.wikimedia.org/wiki/Offline_Projects/Library/Wikipublish#Volunteers Want to know more...]
* Add support of EPUB in Kiwix
</translate>


The second difficulty is to integrate Kiwix in Sugar, that means:
<translate>=== OSM === <!--T:8-->
* Redesign the User Interface with XUL and CSS
Make a proof of concept of a ZIM file providing a map using OSM data and a tool like [http://openlayers.org/ openLayer].
* Create the activity
</translate>
* Deal with the journal and such specific Sugar things


For that task we need a developer with Know-How both with Sugar and GNU Autotools.
<translate>=== Improve P2P support === <!--T:9-->
* Fix Mirrorbrain to [http://mirrorbrain.org/issues/issue92 integrate torrent links in mirrorbrain]
* Fix Mirrorbrain to [http://mirrorbrain.org/issues/issue83 support fallback torrent trackers in .torrent files]
* Add a way to exchange library and content on a local network (for example, using "bonjour" & BitTorrent DHT)
</translate>


=== Collect informations about our audience ===
=== [[Linux Packaging project]] (assigned) ===


As Kiwix grows more in popularity it would be really nice to tell the stories of the organizations that are using it. If we know who's using it then we can ask those people to let us know how we can make it better. It would also allow us to better understand the reach that our offline projects and how fast we are improving us.
<translate>=== Ambassador Program === <!--T:10-->


Currently with think in the following directions:
<!--T:14-->
* Get more informations about the downloads and develop [[KPIs]]
Create an '''ambassador program'''. '''Ambassadors''' would be expert users of Kiwix and would be able to help others by:
* Setup a system to allow user to give us a feedback (see [http://sourceforge.net/mailarchive/message.php?msg_id=27686926 Tomasz's email])
* Spreading content
* Improve/simplify bug reporting and feature requesting (being able to leave an email adress without registering, simplier).
* Organizing conferences
* Running advertisement
* Acting as a local representative


=== New Web site ===
<!--T:15-->
<gallery>
To do that, we should develop a set of tools:
File:Kiwix.org2 mockup1.png
* Advertisement Package
File:Kiwix.org2 mockup2.png
* Ambassador program goals
</gallery>
* Map base on Ushahidi to locate them
</translate>


We need to replace the current web site by a more simple and fancy one. The current one is too complicated for the average customer and mix informations for devs and end users. In addition it does not provide some features which are essentials like a simple an intuitive way to search over the ZIM library or a simple way to give a feedback (bug report or feature request). So there is a lot of improvement potential in both content and
<translate>==== Starter Kit (Assigned) ==== <!--T:11-->
visuals.
Perhaps a nice kit would help. You know, like for organizing Linux installation parties[1] or Mozilla's event kits[2] etc., that encourages people, and provides step-by-step guidance and advice, to go and install Kiwix with a relevant offline Wikipedia file in their local no-Internet (or restricted/expensive Internet) school, college, community center, etc.


This new one should be based on Mediawiki and we already have a design. The wiki part, like we know it, would be still accessible but not push on the front of the Web site. So we need someone we good PHP & Web languages knowledges to do that.
<!--T:16-->
Would anyone be interested in working on that?  WMF can contribute funding for some materials -- a Kiwix quick-start guide or cheatsheet, stickers, T-shirts.
[1] http://ladypine.org/installfest.html, http://www.wikihow.com/Arrange-Linux-Install-Party
[2] https://wiki.mozilla.org/Webmaker/Teach/WebmakingResources
</translate>


See also http://paulgu.com/wiki/Drop_Down_Menu_Series
<translate>== Video == <!--T:12-->
It would be great to have a video (screencast) presenting the software with its most important features.


=== Compilation Platform ===
<!--T:17-->
Here is a proposition:
* Presentation slide of the video with slide and authors
* Presentation of the context (Online Wikipedia put offline of a DVD)
* Presentation of the principle of Kiwix and ZIM
* Starting Kiwix
* Open file
* Indexing file
* surfing
* searching
* special features: fullscreen, switch language, changing font size, going to a random page, etc.
* Finish (present the available ZIM files and how to download them)
</translate>


Kiwix is currently ported to 3 different platforms: MS Windows, Apple MacOSX and GNU/Linux. In addition, and this has to be kept in mind, they are many GNU/Linux distributions and also two architectures per platform. So we speak here of 10->20 files we have to prepare each time we release a new version of Kiwix.
<translate>== See also == <!--T:13-->
 
* [[{{ll|Participate}}|Participate]]
We currently do that manually and because we do not have a lot of packagers, most of the work is done by developers... by hand. We support always more platforms, so this takes always more time and consequently brakes the whole release management. In addition, doing that manually is a big source of errors.
* [[{{ll|Roadmap}}|Roadmap]]
 
* [[{{ll|Development}}|Development]]
So we search someone to build a global software solution to fix that issue. This solution should allow to build all this files with only a few clicks or commands. This Solution should be fully documented and as cheap as possible. We think this should use virtual machines to avoid the need of a lot of expensive hardware. Our first researches were leading to Mozilla Tinderbox which seems to be the best alternative (but if you have a better idea, we are ready to discuss it):
* [https://bugs.kiwix.org Kiwix bugs & feature requests]
* https://developer.mozilla.org/en/Tinderbox
* [https://secure.wikimedia.org/wikipedia/meta/wiki/Offline_Projects/Recommended_Projects#Proposed_project_ideas WMF Offline project overview]
* https://wiki.mozilla.org/Tinderbox:Tbox3_Setup
</translate>
* http://www.johnkeiser.com/mozilla/tbox3.html
 
But, maybe [http://trac.buildbot.net/ BuildBot] or [http://jenkins-ci.org/ Jenkins] could also do the job!
 
We search here someone with good knowledge in compilation, scripts languages like Perl and/or bash to setup and document this platform.
 
=== Mediawiki DumpHTML extension work ===
 
The [http://www.mediawiki.org/wiki/Extension:DumpHTML Mediawiki DumpHTML extension] is the solution to export hte dynamic generated HTML pages in a set of static HTML/Media files. This extension is the best way to get a good set of HTML pages from a Mediawiki (in comparison with a Web site mirroring tool for example).
 
==== Workpackage1: Revamping and fixing bugs ====
 
Unfortunately, the DumpHTML extension is not correctly maintained and with the time [https://bugzilla.wikimedia.org/buglist.cgi?query_format=advanced&list_id=2671&component=DumpHTML&resolution=---&product=MediaWiki%20extensions many issues were discovered]. Currently, the extension is not really usable without fixing/tweaking the code.
 
The purpose of this work package is to fix the most critical bugs that everyone having a Mediawiki would be able to simply get a HTML dumps of his content and consequently easily generate a ZIM file afterwards
 
After the rewamping, the result should be perfect in HTML similar to what dumpHTML.pl does.
 
Delivarables:
* Revamping dumpHTML and fixing bugs (80-120 hours)
 
==== Workpackage2: phpzim creation an integration in DumpHTML extension ====
 
phpzim would be a new php module allowing to create/write and read ZIM file directly in PHP. This would be a binding of the zimlib, like pyzim in Python. With this library done, we will be able to create ZIM file directly from the DumpHTML.
 
To be able to get a ZIM file, the user will have to call dumpHTML.php and specify that he wants a ZIM file output (not a HTML dump) also some other meta informations like title, creator, etc.
 
So the user will need a system access where the Mediawiki instance runs and also to install phpzim (should be packaged).
 
Deliverables:
* phpzim (40 hours)
* updated dumpHTML (20 hours)
 
==== Workpackage3: Integrating Collection and DumpHTML extensions and new features ====
 
By integrating the DumpHTML and the Collection extension we want to give to everyone the capacity to easily create small ZIMs from the Wikipedia user interface with following advantages:
* exactly the same rendering as online
* no external dependency to install for the Mediawiki admin
* rendering done by MediaWiki (as fast as online browsing)
 
In addition we want to implement a few additional features (see the list of deliverables).
 
Deliverables:
* Book and DumpHTML integration (30 hours)
* DumpHTML parallel processing (15 hours)
* Build selection based on list of titles (20 hours)
* Create an offline skin for mobiles to make dumps for mobiles (15 hours)
* Make offline skin to avoid pictures (5 hours)
 
=== Kiwix plug ===
[[Image:Nimbus_n_iPhone.JPG|right|thumb|]]
 
See [[Plug solution]].

Latest revision as of 06:50, 29 November 2022

Other languages:
English • ‎español • ‎français • ‎magyar

The Kiwix volunteer program offers talented, motivated people ways contribute to Kiwix in minor ways. Contributors speak English, French, or German. Technical volunteers should know JavaScript, CSS, other web languages, or C++.

Tasks

(re)-Introduce ZIM support in MediaWiki Book creator/OCG

MediaWiki is the wiki engine behind Wikipedia, all Wikimedia projects and thousands of other Web sites. It's a cutting edge free software providing highly featured web sites that anybody can edit. MediaWiki hosts content that can be made available for offline usage through the Collection extension (written in PHP). The Collection extension allows easy creation of collections of articles, called books; here is how it works on the English Wikipedia. Once created, books can be exported into PDF format. The PDF exporting backend itself is not provided by the Collection extension. It is done with a JavaScript based solution called OCG. OCG is a NodeJS daemon able to transform a book definition in a PDF and it should be able to do the same in the ZIM format. The ZIM format allows the storage of webpages (with images, videos, etc...) in one extremely compressed file. These pages are then available to read on most computers with Kiwix. A stub of solution has already been written and the MWOffline is already functional. This task is mostly about merging them.

phpzim (assigned)

Promotional video (assigned)

Look here for more details.

Testing platform

We need a solution to automatically test Kiwix. We currently have nothing... so we will start from scratch!

Wikipublish

Create a publication platform like a online Web site similar to iTunes which would provide a list of available content to download in ZIM or EPUB formats. It would also show previews of content before downloading.

OSM

Make a proof of concept of a ZIM file providing a map using OSM data and a tool like openLayer.

Improve P2P support

Linux Packaging project (assigned)

Ambassador Program

Create an ambassador program. Ambassadors would be expert users of Kiwix and would be able to help others by:

  • Spreading content
  • Organizing conferences
  • Running advertisement
  • Acting as a local representative

To do that, we should develop a set of tools:

  • Advertisement Package
  • Ambassador program goals
  • Map base on Ushahidi to locate them

Starter Kit (Assigned)

Perhaps a nice kit would help. You know, like for organizing Linux installation parties[1] or Mozilla's event kits[2] etc., that encourages people, and provides step-by-step guidance and advice, to go and install Kiwix with a relevant offline Wikipedia file in their local no-Internet (or restricted/expensive Internet) school, college, community center, etc.

Would anyone be interested in working on that? WMF can contribute funding for some materials -- a Kiwix quick-start guide or cheatsheet, stickers, T-shirts. [1] http://ladypine.org/installfest.html, http://www.wikihow.com/Arrange-Linux-Install-Party [2] https://wiki.mozilla.org/Webmaker/Teach/WebmakingResources

Video

It would be great to have a video (screencast) presenting the software with its most important features.

Here is a proposition:

  • Presentation slide of the video with slide and authors
  • Presentation of the context (Online Wikipedia put offline of a DVD)
  • Presentation of the principle of Kiwix and ZIM
  • Starting Kiwix
  • Open file
  • Indexing file
  • surfing
  • searching
  • special features: fullscreen, switch language, changing font size, going to a random page, etc.
  • Finish (present the available ZIM files and how to download them)

See also