Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
req:app_store [2010/06/17 18:36]
glenn Added Gav's comment's regarding Drupal, Launchpad
req:app_store [2010/12/18 17:35] (current)
Line 5: Line 5:
  
 ===== Background ===== ===== Background =====
-The design and implementation plan for a Sahana App Store is being done in conjunction with a Google Summer of Code 2010 project for an Agasti Module Manager.  It is not expected that the GSoC effort will deliver an actual App Store implementation during the summer, but simply provide a direction.+The design and implementation plan for a Sahana App Store is being done in conjunction with a Google Summer of Code 2010 project for an Agasti Module Manager.  It is not expected that the GSoC effort will deliver an actual App Store implementation during the summer, but provide a direction and perhaps some experimental prototypes.
  
-The extent to which the App Store roadmap discussed here is product-specific (e.g., Agasti) will have to be defined, as will the evolution of Module Managers to support it.  The server-side of the store can in theory be implemented in any convenient language and framework, separate from those used in Sahana-Eden (Python/Web2Py) and Sahana-Agasti (PHP/ framework TBD).+The extent to which the App Store roadmap discussed here is product-specific (e.g., Agasti) will have to be defined, as will the evolution of Module Managers to support it.  The server-side of the store can in theory be implemented in any convenient language and framework, separate from those used in Sahana-Eden (Python/Web2Py) and Sahana-Agasti (PHP/recently-chosen Symfony).
  
 Ideally, an App Store could be built in such a way that it is generic and should work with both Agasti, Eden, and (further on) mobile components.  The modules will be cataloged referencing the platform and version, which will make finding compatible modules easy from a version of Agasti or Eden.  The system will basically deliver some compressed package and the respective Sahana version be responsible of installing it.  Ideally, an App Store could be built in such a way that it is generic and should work with both Agasti, Eden, and (further on) mobile components.  The modules will be cataloged referencing the platform and version, which will make finding compatible modules easy from a version of Agasti or Eden.  The system will basically deliver some compressed package and the respective Sahana version be responsible of installing it. 
  
-===== Features and Architecture =====+===== Features and Architecture Supporting Sahana Modules =====
  
 A Sahana App Store could broadly emulate the Android Marketplace and iPhone App Store.  Desirable features include:  A Sahana App Store could broadly emulate the Android Marketplace and iPhone App Store.  Desirable features include: 
Line 28: Line 28:
   * the server that will host the app store centrally.  Its functionally should be pretty much independent of framework, version, or implementation type.  It should be to be able to support multiple versions of Sahana.   * the server that will host the app store centrally.  Its functionally should be pretty much independent of framework, version, or implementation type.  It should be to be able to support multiple versions of Sahana.
   * the client libraries (specific to Agasti, Eden, etc.) that will install/uninstall the apps and otherwise interact with the store.   * the client libraries (specific to Agasti, Eden, etc.) that will install/uninstall the apps and otherwise interact with the store.
 +
 +===== Eventual Support For Additional Store Offerings =====
 +After modules are well-supported, other potential offerings include:
 +
 +  * GUI themes
 +  * Language packs
 +  * Database initial content (e.g., geographic place names and locations.  Likely implemented by SQL scripting)
 +  * Specialized tools (e.g., to quickly configure an instance for a particular type of disaster)
 +  * Mobile apps
 +  * T-shirts and other swag?
  
 ===== Policy and Process for App Store Contributions ===== ===== Policy and Process for App Store Contributions =====
Line 57: Line 67:
 Looking at Drupal modules, there are two main ecosystems of ecommerce store modules, "ubercart" and "e-commerce" These can handle free software distribution, but only as zero-cost catalog items within a paid/shopping cart context.  A little awkward, and evidently not capable of automatic versioning/updating.  (Nor does it appear that base Drupal itself has that, although there is a "drush" module that does some of that, as well as a proposed 2009 SoC student project "Automated Drupal Package Management Module".)  There are some modules that seem to do versioning ("project*" and "storm") at the file/media level, but not so much at the GUI.  It appears there is some work on App Store modules specifically targeted at cell phones. Looking at Drupal modules, there are two main ecosystems of ecommerce store modules, "ubercart" and "e-commerce" These can handle free software distribution, but only as zero-cost catalog items within a paid/shopping cart context.  A little awkward, and evidently not capable of automatic versioning/updating.  (Nor does it appear that base Drupal itself has that, although there is a "drush" module that does some of that, as well as a proposed 2009 SoC student project "Automated Drupal Package Management Module".)  There are some modules that seem to do versioning ("project*" and "storm") at the file/media level, but not so much at the GUI.  It appears there is some work on App Store modules specifically targeted at cell phones.
  
-The general rap on Drupal seems to be that it's very flexible, but requires knowledgeable developers in order to make use of that flexibility.  There is some expressions of hope that 0.7x would help in the crafting of versions as easy as Wordpress to setup and customize.  An example would be www.drupalgardens.org, that generates a hosted microblogging site based on 7.x alpha.  It incorporates a WYSIWYG theme editor.  Hosting is free until year's end, then either ads appear, or you pay, or you migrate the site to your own box.  But the purpose is limited to blogging.+The general rap on Drupal seems to be that it's very flexible, but requires knowledgeable developers in order to make use of that flexibility.  There is some expressions of hope that 7.would help in the crafting of versions as easy as Wordpress to setup and customize.  An example would be www.drupalgardens.org, that generates a hosted microblogging site based on 7.x alpha.  It incorporates a WYSIWYG theme editor.  Hosting is free until year's end, then either ads appear, or you pay, or you migrate the site to your own box.  But the purpose is limited to blogging.
  
 One possible roll-your-own Drupal implementation approach to an App Store would be to create a custom 'App' content type that extends Drupal's default node type.  Then, one or more controlled taxonomies could be created - one, for example, may contain version numbers.  Each time a different version of a module is uploaded, a new App node is create with a different version from the controlled taxonomy.  This way the Store could support multiple versions of a module targeted at different revisions of Sahana Agasti or Eden, or any future products the Foundation may have. One possible roll-your-own Drupal implementation approach to an App Store would be to create a custom 'App' content type that extends Drupal's default node type.  Then, one or more controlled taxonomies could be created - one, for example, may contain version numbers.  Each time a different version of a module is uploaded, a new App node is create with a different version from the controlled taxonomy.  This way the Store could support multiple versions of a module targeted at different revisions of Sahana Agasti or Eden, or any future products the Foundation may have.
Line 66: Line 76:
  
 This approach could be viewed as a complement to the App Store rather than an alternative.  Launchpad makes sense for development and initial hosting, as eventually Sahana modules can be packaged for Ubuntu and made available through apt-get as well.  The App Store concept is over and above this and presents a more user-friendly approach, whereas apt-get integration through LP is more for the serious developer or Sahana administrator. This approach could be viewed as a complement to the App Store rather than an alternative.  Launchpad makes sense for development and initial hosting, as eventually Sahana modules can be packaged for Ubuntu and made available through apt-get as well.  The App Store concept is over and above this and presents a more user-friendly approach, whereas apt-get integration through LP is more for the serious developer or Sahana administrator.
 +
 +===== Initial Experimentation =====
 +In June, 2010, GSoC student Kusum Kumar Madarasu, working on the Agasti Module Manager project, started learning about Drupal 6/7 and its modules of potential pertinence to an App Store.  He first considered a Drupal 6 + Ubercart architecture with Acquia Prosper theme.  The current prototyping direction drops Ubercart, in favor of a native Drupal custom node approach.
  
 ===== Conjectured Timeframe ===== ===== Conjectured Timeframe =====
Line 72: Line 85:
  
 //Summer 2010// //Summer 2010//
-  - Complete stand-alone Agasti Module Mangager, with some awareness of App Store issues.  This will work with the current version of Agasti.  (The code logic will not be expected to forward port easily to a new Agasti framework, though some of the HTML content may). +  - Complete stand-alone Agasti Module Mangager, with some awareness of App Store issues.  This will work with the current version of Agasti.  (The code logic will not be expected to forward port easily to the newly-chosen Symfony framework, though some of the HTML content may). 
-  - Develop design and implementation plan for App Store.+  - Develop design and implementation plan for App Store, with experimental prototypes.
  
 //Fall 2010// //Fall 2010//
-  - Begin App Store implementation (if developers available).+  - Based on findings, move to real App Store implementation (if developers available).
   - Revise Agasti Module Manager as needed to interact with App Store.   - Revise Agasti Module Manager as needed to interact with App Store.
-  - If new Agasti framework determined, begin to develop Module Manager for it.+  - Begin to develop Module Manager for Symfony framework.
   - Test.   - Test.
  
Line 85: Line 98:
   - Launch.   - Launch.
  
-===== Agasti - For More =====+===== Agasti - For Much More =====
  
-See ideas under [[dev:agasti_module_manager | Agasti Module Manager]]+See ideas, links under [[dev:agasti_module_manager | Agasti Module Manager]]

QR Code
QR Code req:app_store (generated for current page)