Web Authoring Software Stack

Tethys Platform is used to develop web apps using Python as the primary scripting language. However, to use Tethys most effectively, one must have a basic understanding of a series of web authoring technologies and resources described in this unit. Once again, you don't need to be an expert at each of these technologies, but you need to have a basic understanding of what each component does and these tools integrate in a web environment. More specifically, you need to know enough about each component to know what questions to ask what to google when you get stuck.

We suggest you study each of the components in the order listed below. For each component, please feel free to search for and study other resources. These are simply ones that we have found to be useful.

HTML

HTML = Hyptertext Markup Language. This is the backbone of all webpages. Bone up on HTML. There are literally thousands of sites out there with inforamtion on HTML coding. We recommend this:

http://www.w3schools.com/html/default.asp

Each unit is relatively concise and you can change the code and experiment with the results.

CSS

CSS = Cascading Style Sheets. CSS allows you to change the look and formatting of your website in a quick and efficient manner.

http://www.w3schools.com/css/default.asp

Javascript

Javascript is the main scripting language for web pages. It makes your HTML do things dynamically. Javascript runs on the "client" side (on the computer accessing the website) as opposed to server-side code such as PHP, ASP, and Python in a Tethys environment.

http://www.w3schools.com/js/default.asp

While Tethys is based primarily on the Python language, you will occasionally need to use a little Javascript if you want to make your Tethys app more powerful. And anyone doing web authoring should have a basic understanding of Javascript.

JQuery

JQuery is a widely used Javascript library. It can save you a lot of programming effort (why reinvent the wheel?) and it is used in Tethys.

http://www.w3schools.com/jquery/default.asp

Ajax

Ajax is another extension to Javascript that makes web pages more responsive. Specifically, it allows you to add behaviors to your web page that can be executed without reloading the page.

https://www.w3schools.com/js/js_ajax_intro.asp

Bootstrap

Bootstrap is a collection of CSS styles that were originally developed by some developers working for Twitter.

http://www.w3schools.com/bootstrap/default.asp

Bootstrap has become widely used and is a component of Tethys. It was also used to develop the website you are currently reading!

JSON

JSON = Javascript Object Notation. JSON is used to store and transfer Javascript objects in a generic format that can easily be read and interpreted. You can easily import JSON objects in Python. There is a special form of JSON for spatial objects called GeoJSON.

http://www.w3schools.com/json/default.asp

Django

Django is a Python-based web development framework. It allows you to rapidly create dynamic websites while doing much of the heavy lifting for you. For example, Django handles user authentication (managing user accounts and passwords). Tethys is based on Django, so it helps to be familiar with the way Django works. Click on this link:

https://www.djangoproject.com/

and go to the documentation section and read some of the introductory material and maybe do some tutorials.

BYU Hydroinformatics Group

Brigham Young University
Dept. of Civil and Environmental Engineering