Skip to content
SantiagoTorres edited this page Mar 5, 2013 · 2 revisions

This wiki page contains the project design as of revision 0.1

Serverside code:

## Option 1 PHP + MySQL This solution sounds effective and robust (except for the blob, that might limit us in functionality)

### MySQL database a MySQL database containing a table of bundles and a table of "bundle files" table of bundles should contain: unique_id, bundle_version, brief_description table of files should contain: bundle_id, unique_id, own_version, brief description, file_blob (forcing a 21kb file cap)

### PHP scripts the database is handled by 2 PHP elements: a consulting frontend say RFU.php that does: 1. with no arguments: display bundles and their version OR a total_bundle_version in an easy JSON 2. with a bundle identifier: display the bundle version and the files included 3. with a file identifier: display the contents on the file in order to update

the second element could be an easy and simple file uploader GUI with the following functions:

     1. add a new bundle: update total_bundle_version and add a bundle entry in the table
     2. add a new file: update total_bundle_version, update bundle_version and add a file entry to the file table
     3. update a file: update total_bundle_version, update bundle_version and replace the contents in the blob
     4. remove a bundle: update total_bundle_Version, update_bundle version, remove entry in the file table
     5. remove a file: update total_bundle_version, remove entry from bundle table and remove file entries related to that ID.

## on the client side: GIDARFUchecker.m: launches a thread and queries for the total bundle version and the bundle versions if different. then generates an update status. The update status are the following: * new bundle (bundle added) * bundle changed * bundle removed GIDARFUupdater.m: check configuration file(or whatever) for different entries and updates locally held files

         * if notify is on it should create an instance of GIDAAlertView...
         * if WIFI only is set it should be able to check which connection it is using (idk, this is possible on android)

The locally held files should be limited to:

         * GIDARFUBUNDLEVER: contains information about the total bundle version in this specific instance (might consider adding a specific hash value to the filename in case the app doesn't run inside a sandbox/chrooted environment/something like that, just in case many GIDARFU's are inside the same mobile device)
         * GIDARFUBUNDLES: contains information about the bundles and their versions in a easy-to-use json Markup.
         * GIDARFUBUNDLE_[bundle_id]: contains the name of the files included in the bundle and their specific version.
         * [file_name]: is the file itself, we might consider saving them inside a bundle_name directory, to make it human-readable

Clone this wiki locally