Difference between revisions of "Projects"

From Kiwix
Jump to navigation Jump to search
m (Reverted edits by Mbcrq6fhj (talk) to last revision by Macofe)
(81 intermediate revisions by 7 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 '''volunteers program''' offers motivated and talented people ways to work for Kiwix during a limited time. Contributors can speak English, French, or German.  Technical volunteers should know JavaScript, CSS, or 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 other Web sites. It's a cutting edge free software providing highly featured web sites that anybody can edit. MediaWiki hosted content 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 to easily create collection/selection of articles: so 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 in 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 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 to store web pages (with images, videos, etc...) in one extremely compressed file. These pages are then available to read on most computers with a reader like [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 test automatically Kiwix. We have currently nothing... so we 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, a Web site online similar to iTunes which would provide the list of available contents to download in ZIM, EPUB, .... also offer to see the book before downloading it.
</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>


=== New Web site ===
=== [[Linux Packaging project]] (assigned) ===


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>=== Ambassador Program === <!--T:10-->


=== Compilation Platform ===
<!--T:14-->
Create an '''ambassador program'''. '''Ambassadors''' would be special people especially aware about Kiwix and able to help others:
* Spread contents
* Make conferences
* Make advertisement
* Local representative


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.
<!--T:15-->
To do that, we should develop a set of tools:
* Advertisement Package
* Ambassador program definition
* Map base on Ushahidi to locate them
</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>==== 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.


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):
<!--T:16-->
* https://developer.mozilla.org/en/Tinderbox
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.
* https://wiki.mozilla.org/Tinderbox:Tbox3_Setup
[1] http://ladypine.org/installfest.html, http://www.wikihow.com/Arrange-Linux-Install-Party
* http://www.johnkeiser.com/mozilla/tbox3.html
[2] https://wiki.mozilla.org/Webmaker/Teach/WebmakingResources
</translate>


But, maybe [http://trac.buildbot.net/ BuildBot] or [http://jenkins-ci.org/ Jenkins] could also do the job!
<translate>== Video == <!--T:12-->
It would be great to have a video (screencast) presenting the software with its most important features.


We search here someone with good knowledge in compilation, scripts languages like Perl and/or bash to setup and document this 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, font bigger/smaller, random page, etc.
* Finish (present the ZIM availables and how to download them)
</translate>


=== Bug fixing and new features ===
<translate>== See also == <!--T:13-->
 
* [[{{ll|Participate}}|Participate]]
=== Mediawiki ZIM building solution ===
* [[{{ll|Roadmap}}|Roadmap]]
 
* [[{{ll|Development}}|Development]]
=== Fix Mediawiki DumpHTML extension ===
* [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]
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).
</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.
 
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.
 
=== Kiwix plug ===
 
See [[Plug solution]].
 
== Open positions ==
 
=== 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

Revision as of 18:48, 19 January 2018

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

The Kiwix volunteers program offers motivated and talented people ways to work for Kiwix during a limited time. Contributors can speak English, French, or German. Technical volunteers should know JavaScript, CSS, or 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 other Web sites. It's a cutting edge free software providing highly featured web sites that anybody can edit. MediaWiki hosted content can be made available for offline usage through the Collection extension (written in PHP). The Collection extension allows to easily create collection/selection of articles: so called books ; here is how it works on the English Wikipedia. Once created, books can be exported in PDF format. The PDF exporting backend itself is not provided by the Collection extension, it's 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 to store web pages (with images, videos, etc...) in one extremely compressed file. These pages are then available to read on most computers with a reader like 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 test automatically Kiwix. We have currently nothing... so we start from scratch!

Wikipublish

Create a publication platform, a Web site online similar to iTunes which would provide the list of available contents to download in ZIM, EPUB, .... also offer to see the book before downloading it.

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 special people especially aware about Kiwix and able to help others:

  • Spread contents
  • Make conferences
  • Make advertisement
  • Local representative

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

  • Advertisement Package
  • Ambassador program definition
  • 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, font bigger/smaller, random page, etc.
  • Finish (present the ZIM availables and how to download them)

See also