Project

offroad

0.0
No commit activity in last 3 years
No release in over 3 years
Offroad manages offline instances of a Rails app on computers without Internet access. The online and offline instances can communicate via mirror files, transported by the user via thumbdrive, burned CD, etc.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

 Project Readme

NOTE: This gem is a work in progress. It does work, but it’s not especially convenient, yet. Better documentation and scripts will follow in time.

NOTE: Currently the gem is only compatible with Rails 2.

Overview¶ ↑

This gem allows users without Internet access to still use your app. It requires that your application can be thought of in the following way:

Your site is broken down into a set of “groups” or “organizations”. Each group has their own distinct set of records, which are editable by only a distinct set of a users. Besides that, there are global records that can only be edited by overall site administrators, though they can possibly be viewed by regular users.

In order to make offline use of your app possible, Offroad will generate an installer bundle, which is an OS-specific executable that can install Ruby, Rails, and also a launcher which controls a local instance of WEBrick and manages imports and exports. The installer and launcher will be visually labelled everywhere with the name of the Rails app itself, making its function obvious to users. This launcher can generate up-mirror files, which are transported on a USB thumbdrive or some other medium to an online system, where they can be uploaded to the main app site. After having done an upload, the user is prompted to download a down-mirror file which contains any changes to the global records, and bring this back to the offline system, which completes the sneakernet round-trip.

Rather than sending all data, only globally accessible records and updates to the app itself are transferred in the down-mirror (except for the first down-mirror, which also contains the initial set of records for the group). Furthermore, the offline version of the app is considered be the absolutely canonical source of that group’s records; really, this is not a “sync”, it’s a “mirror”. This means that no-one on the online site can make changes to an offline group’s records, not even the administrator; this is enforced by Offroad at a low level.