HydroShare Apps

What are web apps?

Apps are the software tools that allow you to visualize, analyze, and work with resources (data and models) in HydroShare.  Apps are hosted on separate web servers from the HydroShare website (www.hydroshare.org) and access HydroShare resources using web services via the REST applications programmers interface (API). This is a loose coupling that makes HydroShare extensible.  Just as anyone can write a program for a desktop computer, anyone can set up a server to support an app.  The HydroShare team, and others in the CUAHSI community have set up several apps that provide visualization and analysis capability for HydroShare resources, with more to come.  A number of apps originated from the National Water Center Summer Institute that CUAHSI organizes and these enhance access to data from the NOAA National Water Model.  Apps approved by the HydroShare development team are accessible from apps.hydroshare.org the page accessed by clicking the "Apps" link in the main navigation bar at the top of the HydroShare web page.

How can I find and use Apps in HydroShare

Click on the "Apps" link in the main navigation bar at the top of the HydroShare web page.  This will take you to apps.hydroshare.org that holds apps approved by the HydroShare development team.  You need to have a HydroShare account to access Apps, because they are set up to save results that you want stored back to HydroShare in your account.  Click on each App icon to open it and learn about it or explore the descriptions of Apps in these pages.  You can also in the Discover page find and filter on App instances to locate any Apps that any users have made available to you in HydroShare.

What is the web app resource type?

The web app resource type is used to match an App (on a separate server) with the types of resources (and files in resources) it can act on.  The metadata for an app instance describes the app and to sets the permissions (who is given access to the app) and the types of resources it can act on.  For users with access to an app, when they are on a resource of the type the app can open, it appears in the Open with button and web apps tab of the resource.  Clicking these launches the app on its separate website, and after authorization accesses the resource files with the app, resulting in the app performing its actions on the resource.

How can I develop web apps?

If you are a web developer you can use any web server to set up an app by programming it to interact with HydroShare resources using the REST API.  The majority of HydroShare apps have been developed using the Tethys platform, but there are apps hosted at NCSA developed using CyberGIS and Jupyter Notebook technology and the SWATShare Apps hosted at Purdue are developed using PHP.  Tethys is a Python/Django based web development platform that can be used to develop and host water resources web applications or web apps. It includes a suite of free and open source software (FOSS) that has been carefully selected to address the unique development needs of water resources web apps. Tethys web apps are developed using a Python software development kit (SDK) which includes programmatic links to each software component. Tethys Platform is powered by the Django Python web framework giving it a solid web foundation with excellent security and performance.  Learn more at: http://www.tethysplatform.org/