├── 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 |
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 |
--------------------------------------------------------------------------------