| 79 | |
| 80 | === Web-based GUI for GRASS GIS === |
| 81 | |
| 82 | * This idea will consist in building a web application "WebGRASS" which allows to run GRASS modules on modern browsers. |
| 83 | * The user interface for WebGRASS will be built using [http://www.webtoolkit.eu/wt Wt], Web Toolkit. |
| 84 | * WT provides C++ API and python bindings (available on [https://github.com/wdu/pywt github]) for developing web widgets. |
| 85 | * Each grass module is described by an XML file generated the module's ''--interface-description'' parameter, the xml file is then parsed to generate the Module Form interface. |
| 86 | * Parsing of the xml file and generating tokens is already available in GRASS GIS. |
| 87 | * The main User Interface will be composed by: |
| 88 | * Auth-module (user log-in) |
| 89 | * mapset-location wizard |
| 90 | * map canvas (based on openlayers) |
| 91 | * menu bar with same layout of grass desktop |
| 92 | * toolbar with: |
| 93 | - pan |
| 94 | - query |
| 95 | - zoom in - out - to bbox - to layer - to region |
| 96 | - save to img mapcanvas |
| 97 | - save display extent to region |
| 98 | * Command line prompt (a GRASS shell based on IPython Notebook) |
| 99 | * Security concerns |
| 100 | * By default Web-GRASS is designed to allow access to trusted users. |
| 101 | * Each user will be an UNIX user on the server with his own home. |
| 102 | * The web-grass UI interface will be accessible through an opportune registration/auth/login framework. |
| 103 | * The communication over the network will be encrypted using HTTPS. |
| 104 | * The imput parameters will be parsed and sanitized, this will be part of the UI itself, based on the [http://grass.osgeo.org/programming7/gislib_cmdline_parsing.html GRASS command-line parsing] |
| 105 | * Will be choice of deployment team to decide to adopt any 'Extra security layer'. This can be achieved using tools like: |
| 106 | * [https://www.docker.io/ docker] |
| 107 | * [https://linuxcontainers.org/ lxc] |
| 108 | * [http://supervisord.org/ supervisors] |
| 109 | * [http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.cmds/doc/aixcmds5/ulimit.htm ulimit] |
| 110 | * Discussion on the grass-dev mailing-list [http://lists.osgeo.org/pipermail/grass-dev/2014-March/067665.html GRASS GIS Web UI] |
| 111 | * Detailed [http://www.google-melange.com/gsoc/proposal/public/google/gsoc2014/massimo_di_stefano/5685265389584384 Idea description] |
| 112 | * [wiki:GSoC/2014/WebGRASS page for more broad idea description including alternatives] (unfinished) |
| 113 | * Language requirements: C++, Python |
| 114 | * Mentor: Mohammed Rashad |
| 115 | * Co-Mentor: KS Rajan |
| 116 | * Sample !PyWt implementation to call GRASS commands from a !PyWt web UI by [http://wiki.osgeo.org/wiki/User:Epifanio Massimo Di Stefano] |
| 117 | * Test page was provided (not available now) |
| 118 | * [https://github.com/epifanio/wgrass source code] |