gvwilson / web-tutorial

Web Programming for Data Scientists
https://gvwilson.github.io/web-tutorial/
Other
9 stars 0 forks source link
data-science javascript open-source python tutorial web-development

The Webonomicon

An Introduction to Web Programming for Weary Data Scientists

Advent 354 by Danielle Navarro
This tutorial is a short introduction to web programming using modern tools and practices for data scientists who are comfortable using Python but have never built interactive websites before. All of the material is available under [open licenses](./LICENSE.md), and contributions through our [GitHub repository][repo] are welcome. All contributors are required to respect our [Code of Conduct](./CODE_OF_CONDUCT.md). > **Please note:** this tutorial is still being outlined. > Most sections will have additional examples (and much more explanation) > before learners encounter it. > Suggestions and help are greatly appreciated.

Learner Persona

Syllabus

    1. [Introduction](./01_intro/index.md): what we will learn, how to set up, and the data we will use 1. [HTTP](./02_http/index.md): how browsers and server talk to each other 1. [A Server](./03_server/index.md): building a server with [Flask][flask] 1. [Using a Database](./04_db/index.md): getting data from [SQLite][sqlite] using [PyPika][pypika] 1. [Testing the Server](./05_test/index.md): testing the server with [pytest][pytest] 1. [Serving HTML](./06_html/index.md): generating HTML with [Jinja][jinja] templates 1. [Using Forms](./07_forms/index.md): sending data to a server 1. [An Hour of JavaScript](./08_js/index.md): variables, loops, functions, and callbacks 1. [JavaScript in the Browser](./09_browser/index.md): using the language in its native habitat 1. [Using HTMX](./10_htmx/index.md): letting the [htmx][htmx] library do the hard work 1. [Database Migration](./11_migrate/index.md): managing database schema changes 1. [Permissions](./12_perm/index.md): representing and checking who can do what 1. [Authentication](./13_auth/index.md): checking the user's identity 1. [Encryption](./14_crypt/index.md): keeping secrets safe 1. [Testing in the Browser](./15_test/index.md): using [Selenium][selenium] to test the user interface 1. [Dynamic Graphics](./16_graphics/index.md): drawing pictures with [SVG.js][svgjs] 1. [A Graphical User Interface](./17_gui/index.md): handling interactivity in the browser 1. [Accessibility](./18_access/index.md): because everyone should be comfortable 1. [Internationalization](./19_intl/index.md): because everyone should be welcome 1. [Logging and Auditing](./20_log/index.md): keeping of track of what's happened 1. [Session](./21_sessions/index.md): persistent sessions and [JWT][jwt] 1. [Designing a Workflow](./22_workflow/index.md): thinking before coding

Appendices

    1. [HTML and CSS](./98_htmlcss/index.md) 1. [Certificates](./99_cert/index.md) 1. [Bibliography](./bibliography.md) 1. [Glossary](./glossary.md) 1. [Contributing](./CONTRIBUTING.md)

Technologies

Package Purpose
Alpine.js dynamic HTML
Beautiful Soup HTML manipulation
deno JavaScript
Flask web server
Frappe Charts charts
html5validator validation
htmx interaction
httpx HTTP
Jinja2 HTML templating
Polars tabular data
PrettyTable formatting
PyPika query builder
pytest testing
Selenium testing
SQLite database
SVG.js graphics