Giter Club home page Giter Club logo

iiab-menu's Introduction

Sharing the World's Free Knowledge

Internet-in-a-Box (IIAB)

Internet-in-a-Box (IIAB) is a “learning hotspot” that brings the Internet's crown jewels (Wikipedia in any language, thousands of Khan Academy videos, zoomable OpenStreetMap, electronic books, WordPress journaling, “Toys from Trash” electronics projects, ETC) to those without Internet.

You can build your own tiny, affordable server (an offline digital library) for your school, your medical clinic, your prison, your region and/or your very own family — accessible with any nearby smartphone, tablet or laptop.

Internet-in-a-Box gives you the DIY tools to:

  1. Download then drag-and-drop to arrange the very best of the World’s Free Knowledge.
  2. Choose among 30+ powerful educational apps for your school or learning/teaching community, optionally with a complete LMS (learning management system).
  3. Exchange local/indigenous knowledge with nearby communities, using our Manage Content interface and possible mesh networking.

FYI this community product is enabled by professional volunteers working side-by-side with schools, clinics and libraries around the world. Thank you for being a part of our http://OFF.NETWORK grassroots technology movement!

Installation

Install Internet-in-a-Box (IIAB) from: download.iiab.io

Please see FAQ.IIAB.IO which has 40+ questions and answers to help you along the way (e.g. “Is a quick installation possible?”) as you put together the “local learning hotspot” most suitable for your own teaching/learning community. Here are 2 ways to install IIAB:

Our HOW-TO videos can be very helpful and the Installation wiki page has more intricate details e.g. if you're trying to install Internet-in-a-Box (IIAB) onto a another Linux that has not yet been tried.

See our Tech Docs Wiki for more about the underlying nuts and bolts.

After you've installed the software, you should add content, which can of course take time when downloading multi-gigabyte Content Packs!

Finally, you can customize your Internet-in-a-Box home page (typically http://box or http://box.lan) using our drag-and-drop Admin Console (http://box.lan/admin) — to arrange Content Packs and IIAB Apps (services) for your local community's needs.

Community

Global community updates and videos are regularly posted to: @internet_in_box

Internet-in-a-Box (IIAB) greatly welcomes contributions from educators, librarians and IT/UX/QA people of all kinds!

If you would like to volunteer, please make contact after looking over “How can I help?” at: FAQ.IIAB.IO

To learn more about our open community architecture for “offline” learning, check out “What technical documentation exists?” FYI we use Ansible to install, deploy, configure and manage the various software components.

Thank you for helping us enable offline access to the Internet's free/open knowledge jewels, as well as “Sneakernet-of-Alexandria” distribution of local/indigenous content, when mass media channels do not serve grassroots voices.

Versions

Pre-releases of Internet-in-a-Box (IIAB) undergo continuous QA / continuous integration / continuous deployment and are strongly recommended!

Install our latest pre-release using the 1-line installer at: download.iiab.io

You can also consider earlier official releases at: github.com/iiab/iiab/releases

For much older versions, see: github.com/xsce, schoolserver.org

iiab-menu's People

Contributors

floydianslips avatar holta avatar tim-moody avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

iiab-menu's Issues

Redevelopment Plans

For the benefit of others who may be considering rewriting all or part of this repo without consulting its author and to record my thoughts, here are some ideas I hope to implement in the coming months.

A. Overall Look and Feel

The current use of bright colors, comic sans header, and treasure chest logo was aimed at school kids, especially in the primary grades. In fact the green background color was matched to the OLPC XO. As IIAB has moved beyond a school server to a medical reference appliance for users on smart phones this has become less than desired.

B. Menu Features for Desktop and Mobile

  1. Support for multiple tabs
  2. Configurable amount of detail or verbosity for menu items
  3. Language selection similar to South Asia medical version
  4. Dynamic menu rendering on front end including runtime substitutions for host and other parameters
  5. A feedback mechanism

C. Add a distinct mobile layout with the following additional characteristics:

  1. No logo
  2. Just Internet in a Box text in header
  3. Simple, modern font
  4. Menu item logos to appear in circles, much like photos in many apps
  5. Add a gear or 3 line icon to allow custom settings, like language, verbosity, etc. and perhaps access to help.

D. Menu Definitions

  1. Currently the description is a single field. Add description 1, 2, 3 to allow for different amounts of text for different users. These should be separate paragraphs or other markup to discourage the need for adding spacing within fields.
  2. Create conversion application to build new json definitions from current ones.
  3. Verbosity may be set in menu.json, separately for desktop and mobile, and by individual users on mobile up to and including a minimal display of icon and title or just tile.
  4. Add more substitution strings like ##HOST##, such as ##ARTICLES## - Number of articles in a zim and other parameters readable from content metadata to make it unnecesary to hard code these values in menu defintions.
  5. Remove APK links from zim definitions and add separate item type for links to APKs.
  6. Add new type for Kolibri.

E. Integration with Admin Console

  1. Move array and other runtime parameters to an external json file, such as menu.json, that can be written by a management app.
  2. Add ability to edit menu definitions via a form a la OER2GO.
  3. Support limited rich text such as bolding, italics, etc.
  4. Rework 'extra_html' to support links without html or minimally with some flavor of Markdown.
  5. Try to eliminate html and definitely javascript from menu definitions.
  6. Add ability to include and reorder menu items via a drag and drop form a la OER2GO.
  7. Support versioning and local versions of definitions.
  8. Automatically populate menu.json with references for downloaded or copied content.
  9. Support showing the total disk space for items on a menu.

F. Future

  1. Architect in such a way that it can be integrated with the Napster of Alexandria online catalog integration application.
  2. Community contributed menu item lists
  3. Community contributed menu definitions

Menu Definition Types RFC

Different types of menu defs are distinguished by the value of the intended_use property. The property name was selected to be in sync with Kiwix and the agreements regarding metadata, though I'm not sure anyone else uses it. The list of types has evolved and could now be extended and rationalized.

The purpose of this field to to tell the dynamic menuing system how to generated the link, so we need a unique value for each unique rule. The intention is to describe navigation in a generic way that holds true across deployments or at least those that follow our conventions.

Current Improved Meaning
html module Content served by the web server and residing in the modules directory
webroot webroot or app Content served by the web server, but in its own directory
info info No link, just text and icon
zim kiwix A zim file served by kiwix-serve
kalite kalite Content served by kalite-serve
calibre calibre Content served by Calibre
osm osm The original iiab osm module. Probably could be handled by webroot.
Possible Additions
NA download apks, other software

We could also introduce a sub type, such that kiwix, kalite, etc are all 'service' with the name of the service as a sub type, but it adds complexity to both the json (for an editor) and the javascript (for a developer).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.