1 An Overview Course on Web Systems
A class on Web Systems can 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.
This still leaves much leeway in the choice of subject matter however the course description emphasizes current practices and trends. Current trends emphasize the front end (browser) as much as the back end (server) of web development hence in this class will cover the following subjects:
Web Sites from simple pages, to elaborate static sites via static site generators, to traditional server rendered sites, to web applications built with React interacting with a server via a JSON based API.
Server Technologies: Web servers (NGINX, Apache), Node.js and the Express.js microframework and its ecosystem, templating systems such as Handlebars or Nunjucks, data stores, etc…
Networking and a bit of Web Security: TCP/IP, HTTP(S), switches, routers, middleboxes, proxies, caches, CDNs. TLS, encryption, secure hashes, protection of passwords, OWASP cheat sheets.
Tools and Deployment Architectures: Git, Webpack, Babel, etc… Virtual Machines, Containers, Reverse Proxies, Load balancers, Micro-services architectures.
By the end of the course the students will have created two websites that they can add to their portfolio one would be a example static web site at the level (or hopefully exceeding that of the Professors own web site) and a dynamic web application at the level or exceeding one of the Professors example applications, e.g., windsurf log or network visualizer.
What this course will not cover: PHP, server side Java, Ruby, or Perl. Students may optionally use Python and a Python micro server framework such as Flask for their projects but this is not required.
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. See the topic pages in the menu to the left for the readings on each topic. Both professor and students will be presenting this material in class.
3 Tentative Schedule
- Node.js, templates, static site generators (MetalSmith). Project: moderate size static website of students choosing. Suggestion: student resume/portfolio site.
- Server Side and Networking: Express.js, asynchronous programming, Requests, HTTP, Cookies and sessions, datastores. Project work: final project planning and approval.
- Web Applications with React: React and its ecosystem, web developer security, design and build outline multi-member web application with security, email verification, lost password, user management. Project: final project work.
|9/17||5||templates and static site generators|
|10/1||7||Server side TBD|
|10/8||8||Server side TBD|
|10/15||9||Server side TBD|
|11/5||12||Multi-user site Server and Security TBD|
|11/12||13||Multi-user site Server and Security TBD|
|11/19||14||Multi-user site Server and Security TBD|
|12/3||16||Multi-user site Server and Security TBD|
|12/10||17||Final Exam Week|