Difference between revisions of "Projects"

From Kiwix
Jump to navigation Jump to search
m
 
(88 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 develop and to 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>


=== New Web site ===
<translate>=== Wikipublish === <!--T:5-->
</translate>


We need to replace the current web site by a more simple and sexy one. 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.
<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>


=== Compilation Platform ===
<translate><!--T:7-->
* [http://meta.wikimedia.org/wiki/Offline_Projects/Library/Wikipublish#Volunteers Want to know more...]
* Add support of EPUB in Kiwix
</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>=== OSM === <!--T:8-->
Make a proof of concept of a ZIM file providing a map using OSM data and a tool like [http://openlayers.org/ openLayer].
</translate>


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.
<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>


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):
=== [[Linux Packaging project]] (assigned) ===
* https://developer.mozilla.org/en/Tinderbox
* https://wiki.mozilla.org/Tinderbox:Tbox3_Setup
* http://www.johnkeiser.com/mozilla/tbox3.html


We search here someone with good knowledge in compilation, scripts languages like Perl and/or bash to setup and document this platform.
<translate>=== Ambassador Program === <!--T:10-->


=== Bug fixing and new features ===
<!--T:14-->
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


=== Mediawiki ZIM building solution ===
<!--T:15-->
To do that, we should develop a set of tools:
* Advertisement Package
* Ambassador program goals
* Map base on Ushahidi to locate them
</translate>


=== Fix Mediawiki DumpHTML extension ===
<translate>==== Starter Kit (Assigned) ==== <!--T:11-->
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.


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).
<!--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>


Unfortunately, this 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.
<translate>== Video == <!--T:12-->
It would be great to have a video (screencast) presenting the software with its most important features.


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.
<!--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>


=== Sugar port ===
<translate>== See also == <!--T:13-->
 
* [[{{ll|Participate}}|Participate]]
=== Kiwix plug ===
* [[{{ll|Roadmap}}|Roadmap]]
 
* [[{{ll|Development}}|Development]]
See [[Plug solution]].
* [https://bugs.kiwix.org Kiwix bugs & feature requests]
 
* [https://secure.wikimedia.org/wikipedia/meta/wiki/Offline_Projects/Recommended_Projects#Proposed_project_ideas WMF Offline project overview]
== Open positions ==
</translate>
 
=== 6 months internship ===
We search a volunteer/intern for a duration of 6 months. This intern would help us to work on one or many of the task already listed on this page. Location is Bamako (Mali).
 
Profile:
* Engineer student or junior
* Experienced free software developer
Skills:
* English speaking (French an advantage)
* C++ / Perl / Php
* Web languages
* GNU Compilation tools

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