Client/Server Architecture: An approach to computing where a server hosts, delivers and manages resources and fulfills requests by clients. In web application development, clients are usually web browsers or other web applications, and a web application is the server.
CRUD: Create/Retrieve/Update/Delete (CRUD) are the four main functions of persistent storage. Web applications usually support these operations when dealing with storage of data, and there are corresponding HTTP request methods for each as well.
CSS: Cascading Style Sheets (CSS) is a language that is used to apply style to an HTML document. It is one of the main technologies that powers the web, along with HTML and Javascript.
Framework: A web application framework (commonly shortened to framework) provides a standard way to build web applications, including conventions for organizing code, helpers for common development tasks, and handles automating a lot of the overhead associated with developing web applications (like HTTP requests/responses, routing, templating, etc). The framework we are using in this workshop, Flask, is a server side (or back-end) web application framework, which means that it runs on a web server. There are also client side (or front-end) web application frameworks that run entirely in the web browser and are used to create single page applications. These are typically Javascript-based. Examples of front-end frameworks are: React, Angular, Vue.
HTML: HyperText Markup Language (HTML) is the standard markup language for documents displayed in web browsers. It defines the structure of the document, while visual style is handled by CSS. It is one of the main technologies that powers the web, along with CSS and Javascript.
HTTP: HyperText Transfer Protocol (HTTP) is the foundation for data exchange on the web, and was designed for communication between web clients (browsers) and web servers.
Javascript: Javascript (JS) is the scripting language for the web, and can be executed by web browsers. It is commonly used as a client side language within web browsers to create dynamic web content (for example, when something changes on a web page without reloading the whole page). It also can be used as a server side language too with technologies like Node.js. Javascript is one of the main technologies that powers the web, along with HTML and CSS.
Model: The data model in a web application that uses an object relational mapper is a representation within code of the structure of a database table. This helps the object relational mapper understand the underlying structure to communicate with the database. It also allows us to interact with data from a database using built-in data types within our programming language (Python in the case of this workshop).
Persistence Layer: An application layer that enables the storage (or persistence) of data. Most persistence layers will make use of a database or other storage system.
Refactoring: The process of revisiting a piece of code and editing it to make it more readable, efficient, or otherwise improve it in some way.
Relational Database: A relational database management system (RDBMS or relational database) is a database that stores data in a structured format using tables, rows and columns. Examples of relational databases include: MySQL, Postgresql, SQLite, or Microsoft Access.
Route: In a web application, a route is a mechanism where HTTP requests are directed to the code that handles them. It commonly ties a URI to a particular function/method in an application.
Object Relational Mapper: An object relational mapper (ORM) is a code library that automates the transfer of data between a relational database table into objects that are commonly used within code.
SQL: Structured Query Language (SQL - pronounced either spelled out “S-Q-L”, or “sequel”) is a language designed to interact with a relational database. If you learn SQL, you’ll be able to interact with most relational databases.
Templates: A system that allows for the embedding of variables and other control structures from programming languages (if statements, for loops, etc) within HTML pages. This is how we get data from our web application into our HTML page.
URI: Uniform Resource Identifiers (URIs) are identifiers of a particular resource, like a web page.
URL: Uniform Resource Locators (URLs aka web addresses) are special types of URIs that also tell you how to locate the resource. They will typically include the protocol at the beginning (for example the http:// or https:// part).
Web Application: Web applications are computer applications that run on a web server and are typically accessed over the internet using a web browser. The user interface is typically built with HTML, CSS and Javascript, while the server can be built with any server side programming language (such as Python).