1 A Course on Web Systems
A graduate class on Web Systems could cover an unlimited amount of material, this particular class is being taught at California State University East Bay and the catalog description is:
Current practices and trends in software design, development, and deployment of web-based systems, with particular emphasis on e-commerce. Projects incorporating the latest technologies and techniques used by the Internet community. Review of literature.
The undergraduate level course on Website Development that I teach is a prerequisite to this course however there is much variation in what one might encounter in an undergraduate website development course. I will assume that a students undergraduate web development course covered at least:
- HTML fundamentals, but not necessarily newer HTML5 structuring elements.
- CSS fundamentals, but not necessarily newer layout techniques such as Flexbox and Grid.
- Static websites and classic server side rendering and form processing
This course will emphasize modern secure multi-user web applications with sophisticated browser user interfaces based on a modern front end framework such as React that interact with servers through data centric machine to machine interfaces such as REST or GraphQL utilizing JSON.
Subjects to be covered will include:
- Modern HTML5, SVG, and Markdown
- Modern CSS including Flexbox and Grid, as well as a look at CSS Frameworks.
- A modern frontend end framework: React and its ecosystem.
- Web applications built with React interacting with a server via a JSON based API.
- Networking, HTTP(S) 1.1, 2.0, Cookies, Sessions, caches, CDNs
- Backend (server side) implementation via Node.js/Express, a bit of web security: TLS, encryption, secure hashes, protection of passwords, OWASP cheat sheets
- Tools and Deployment Architectures**: Git, Bundlers, Babel, etc…
Subjects not covered:
- Other server side environments such as Flask, Django, PHP, Wordpress.
- Static site generators and templates. This is well covered in the undergraduate course.
- Classic HTML form processing and server page rendering (covered in the undergraduate course)
- Relational databases and object relational mappers (ORM). The university has separate courses on relational databases.
- Cloud computing, containers, virtualization, etc… are covered in other university courses.
2 Books and Such
There will be required weekly readings based on the topics. These are all currently freely available from sources on the web.
3 Tentative Schedule Fall 2019
- CSS Layout Techniques: Flexbox and Grid
- React for Front End
- Server Side and Networking: Express.js, Requests, HTTP, Cookies and sessions, datastores.
- Website security
- Full Stack Application Development, Multi-user website.
|08/19||1||Short week no Monday class, late start no Wednesday class|
|08/26||2||Intro, Git, GitHub, Markdown, HTML, CSS|
|09/02||3||HW#1 Due, Labor day, no Monday class, JS 1 & 2, JS Objects, JS DOM, CSS Selectors|
|09/09||4||JS DOM, SVG, SVG DOM, DOM Events, Cascade, CSS Layout/Float, HW#2 Due (Wed)|
|09/16||5||CSS Flexbox, CSS Grid, JS Functions, Node.js and NPM HW#3 Due (Wed)|
|09/23||6||JS This, JS Modules, React, Async JS I, JS Classes, HW#4 Due (Wed)|
|09/30||7||React class components, Midterm #1 (10/02/2019)|
|10/07||8||Networking (Eth, IP, TCP, DNS), HTTP, Web Servers|
|10/14||9||JS Promises, Async/Await, Fetch/AJAX|
|10/28||11||HTTP Cookies, Sessions|
|11/04||12||Server Testing, Midterm #2 (11/06/2019)|
|11/11||13||Multi-user app design, TBD|
|11/18||14||Multi-user app design and development, TBD|
|12/02||16||Multi-user app design and development, TBD|
|12/09||17||Final Exam week|