├── index.htmlf ├── rachel-index.php └── README.md /index.htmlf: -------------------------------------------------------------------------------- 1 | rachel-index.php -------------------------------------------------------------------------------- /rachel-index.php: -------------------------------------------------------------------------------- 1 | 7 | 8 |
9 | 10 | 13 | 19 | 20 | 25 | 26 | 27 | 28 | 29 | 30 |

Module Title

31 | 32 | 33 |

This is a wonderful module that will make the world a better place.

34 | 35 | 40 | 45 | 46 | 47 |
48 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # module-template 2 | 3 | A template for putting together RACHEL modules. 4 | 5 | ## So you want to make a RACHEL module? 6 | 7 | Great! There are people all around the world using RACHEL right now, and 8 | your work will benefit them directly. The good news is that it's easy 9 | to do, and there are people happy to help bring your content to 10 | [our repository](http://dev.worldpossible.org/cgi/rachelmods.pl). 11 | 12 | ## What is a RACHEL module? 13 | 14 | A RACHEL module is just an offline website. Most often it is a simple directory 15 | of HTML files, images, videos, and other related resources. The only strict 16 | requirements are that it functions without an internet connection, and that 17 | it includes [a special **rachel-index.php** file that can be included in the 18 | RACHEL index](http://dev.worldpossible.org/cgi/sample_wrap.php?moddir=en-ebooks). 19 | This PHP file is easy to make using the template we provide in this repository. 20 | 21 | It is also possible for RACHEL modules to be based on the ZIM file format, 22 | or to include PHP code and SQLite database files, which are covered in 23 | **Advanced Module Creation** below. 24 | 25 | ## What makes a great RACHEL module? 26 | 27 | The best RACHEL modules provide [a friendly interface and enticing presentation 28 | of unique educational content](http://dev.worldpossible.org/mods/en-ebooks/index.html). 29 | The target audience is mostly children, people who are less familiar with 30 | technology, and teachers and instructors with limited time, so usability and 31 | engagement are of utmost importance. The best content in the world won't make a 32 | difference if people aren't excited and able to use it! 33 | 34 | To that end, some recommendations: 35 | 36 | * Provide an browsable index of content, preferably organized into 37 | useful categories. 38 | 39 | * Add search capabilities using RACHEL search. Make the search available 40 | from every page. 41 | 42 | * Use simple, low-overhead HTML, css, and javascript. Aim for compatability 43 | with old, limited systems: many RACHEL users are on older browsers, slow 44 | processors, and small screens. Avoid Flash, and use 45 | [video.js](http://videojs.com/) for embeded video. 46 | 47 | * Compress images, audio, and video to minimum size while retaining 48 | usability. Not only does it save storage space but it reduces server, network, 49 | and client load - all of which tend to be in short supply. Think of the 50 | internet in 1999. 51 | 52 | This is particularly important for video - 53 | [here are our recommendations](../../wiki/Video-Quality-Guide). 54 | 55 | ## What licenses are appropriate? 56 | 57 | Content submitted to RACHEL must either be in the public domain or under an 58 | open license such as Creative Commons, GPL, etc. Whatever the license, please 59 | follow all the terms, and include a viewable copy in the module itself. 60 | As a courtesy, please provide attribution even if it is not required. 61 | 62 | Please do not submit content that is not licensed for redistribution as we will 63 | have to remove it. If you find any RACHEL content that you believe is not 64 | properly licensed, please LET US KNOW. 65 | 66 | ## How do I get started? 67 | 68 | First: download this repository from github. 69 | 70 | `git clone https://github.com/rachelproject/module-template.git` 71 | 72 | Inside you'll find the **rachel-index.php** template. This is the piece of PHP 73 | that gets included on the front page of RACHEL. As a bare minimum, this is the 74 | only part you have to do. If you don't fill out the rachel-index.php template, 75 | it can't be displayed in RACHEL. Don't worry -- if you've ever edited HTML 76 | before it's very easy. Just open the file in a text editor and follow the 77 | instructions in the comments there. 78 | 79 | You'll need to rename your directory from module-template to whatever name 80 | you want for your module. By convention, the name must start with the two 81 | letter language code and a hyphen. Thus we have 82 | [en-wikipedia](http://dev.worldpossible.org/cgi/viewmod.pl?module_id=20) and 83 | [fr-wikipedia](http://dev.worldpossible.org/cgi/viewmod.pl?module_id=77) 84 | for English and French, respectively. The name must be unique, so check 85 | [our module repository](http://dev.worldpossible.org/cgi/rachelmods.pl) first. 86 | 87 | *That's it for now - but read on if you want to get fancy.* 88 | 89 | ## Advanced Module Creation 90 | 91 | ### PHP/SQLite Modules 92 | 93 | Since the RACHEL system comes with PHP and SQLite installed, there is really 94 | no limit to how creative you can get. You can create fully feautred dynamic 95 | websites with any feature you like, as long as it can run offline. We will 96 | leave the actual development up to you, but here are some examples: 97 | 98 | * [World Map](http://dev.worldpossible.org/cgi/viewmod.pl?module_id=100) -- 99 | uses [Leaflet](http://leafletjs.com/) to provide dynamic mapping and a 100 | custom Ajax/PHP/SQLite city search feature. 101 | 102 | * [wikiHow](http://dev.worldpossible.org/cgi/viewmod.pl?module_id=102) -- 103 | uses a custom Ajax/PHP/SQLite for search suggestions and results. 104 | 105 | * [File Share](http://dev.worldpossible.org/cgi/viewmod.pl?module_id=60) -- 106 | a simple file upload program so non-technical people can put their own 107 | files on RACHEL. 108 | 109 | ### Zim-based modules 110 | 111 | One of the more advanced types of modules you can build is based off 112 | of a [ZIM file](https://en.wikipedia.org/wiki/ZIM_\(file_format\)). These 113 | are pre-packaged websites in a compressed, searchable format. They are 114 | accessed using a program called [Kiwix](http://wiki.kiwix.org/wiki/Software), 115 | which is included as part of the RACHEL build. All you have to do is put 116 | the contents of the ZIM file in the right place in your module directory: 117 | 118 | * All related zim files go in the subdirectory **data/content** 119 | -- a single offline website can contain one or many ZIM files, 120 | for example: wiki.zim, wiki.zima, wiki.zimb, etc. 121 | 122 | * The ZIM's index must go in the subdirectory **data/index** 123 | -- the index will be a directory named something like wiki.idx 124 | 125 | This loosely mirrors the directory structure of ZIM packages anyway. You can 126 | download and refer to one of the existing ZIM-based RACHEL modules like 127 | [Wikipedia for Schools](http://dev.worldpossible.org/cgi/viewmod.pl?module_id=50) to see this in action. It also demonstrates how to connect your 128 | rachel-index.php to the built-in Kiwix search. 129 | 130 | You can find [a full listing of ZIM files here](http://wiki.kiwix.org/wiki/Content_in_all_languages). Be sure to download the "Pre-indexed" versions. You can 131 | discard everything except for what's in data/content and data/index. The RACHEL system 132 | already has the Kiwix software, and will automatically build library files as 133 | needed. 134 | 135 | ## RACHEL Search 136 | 137 | There are custom tools for spidering your module's content and building an 138 | efficient search index. These tools are unfortunately not on github yet, 139 | nor are they documented, but you can take a look at and possibly copy them 140 | from the search directory on the 141 | [wikiHow](http://dev.worldpossible.org/cgi/viewmod.pl?module_id=102) module. 142 | 143 | *To be documented and published* 144 | --------------------------------------------------------------------------------