1. Web Application Development

Web Application Development

CIS 526 Course Textbook

Nathan Bean

Kansas State University

© 2020

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

8.0.0

Last modified by: Russell Feldhausen Aug 10, 2023

CIS 526 | CC 515
Web Development



      • 0. Course Information
        • 1.Course Introduction
        • 2.Navigating Canvas
        • 3.Where to Find Help
        • 4.What You'll Learn
        • 5.Course Textbooks
        • 6.Spring 2025 Syllabus
      • 1. The Document Object Model
        • 1. Introduction
        • 2. Document Object Model
        • 3. CSS and the DOM
        • 4. JavaScript and the DOM
        • 5. JavaScript Events
        • 6. The DOM and External Resource Loading
        • 7. Summary
      • 2. Hyper-Text Transfer Protocol
        • 1. Introduction
        • 2. Browser Requests
        • 3. Request Format
        • 4. Request Methods
        • 5. URIs and URLs
        • 6. Request Headers
        • 7. Request Body
        • 8. Response Format
        • 9. Status Codes
        • 10. Response Headers
        • 11. Response Body
        • 12. HTTP 2.0
        • 13. Statelessness and Scaling
        • 14. Summary
      • 3. Asynchronous JavaScript
        • 1.Introduction
        • 2. Concurrency Approaches
        • 3. Concurrency Challenges
        • 4. Asynchronous Programming
        • 5. Web Workers
        • 6. Callbacks
        • 7. Promises
        • 8. Async and Await
        • 9. Summary
      • 4. Introduction to Node
        • 1. Introduction
        • 2. Event Loop & Console
        • 3. Asynchronous Functions
        • 4. Modules
        • 5. Packages
        • 6. Dependencies
        • 7. Git
        • 8. Summary
      • 5. Basic Web Servers
        • 1. Introduction
        • 2. HTTP in Node
        • 3. Request Handling
        • 4. The Importance of Being Async
        • 5. Caching for the Win
        • 6. Index Pages
        • 7. Partial Downloads
      • 6. Dynamic Web Servers
        • 1. Introduction
        • 2. CGI Scripts
        • 3. Server Pages
        • 4. Custom Servers
        • 5. Query and Hash Strings
        • 6. Form Encoding
        • 7. Request Body
        • 8. Cookies
        • 9. Sessions
        • 10. Template Rendering
        • 11. Script Injection
        • 12. Full Stack Development
        • 13. Summary
      • 7. Persistent Storage
        • 1. Introduction
        • 2. Data Serialization
        • 3. Databases
        • 4. Relational Databases
        • 5. SQL Injection
        • 6. Object-Relational Mapping
      • 8. Routing
        • 1. Introduction
        • 2. Request Routing
        • 2. Resources
        • 4. Request Revisted
        • 5. REST
        • 6. Routers
        • 7. APIs
        • 8. Web Hooks
        • 9. Summary
      • 9. Authentication
        • 1. Introduction
        • 2. HTTP Authentication
        • 3. Password Authentication
        • 4. Stronger Passwords
        • 5. Single Sign On
        • 6. CAS
        • 7. SAML
        • 8. JSON Web Tokens
        • 9. OAuth
        • 10. Summary
      • 10. Dynamic Web Frameworks
        • 1. Introduction
        • 2. Web Frameworks
        • 3. Web Framework Characteristics
        • 4. Single Page Apps
        • 5. Progressive Web Apps
      • A. Hyper-Text Markup Language
        • 1. Introduction
        • 2. HTML Element Structure
        • 3. HTML Document Structure
        • 4. Inline vs. Block Elements
        • 5. Tables
        • 6. Forms
        • 7. Common HTML Elements
      • B. Cascading Style Sheets
        • 1. Introduction
        • 2. CSS Rules
        • 3. CSS Selectors
        • 4. Applying CSS Rules
        • 5. CSS Cascade
        • 6. CSS Specificity
        • 7. CSS Units
        • 8. CSS Functions
        • 9. CSS Colors
        • 10. CSS and Text
        • 11. CSS Box Model
        • 12. CSS Positioning
        • 13. CSS Layouts
        • 14. Responsive Web Design
      • C. JavaScript
        • 1. Introduction
        • 2. Basic Syntax
        • 3. JavaScript Functions
        • 4. Arrays - Lists by Another Name
        • 5. Objects and Classes
        • 6. Attaching Scripts
        • 7. The Document Object Model
        • 8. Strict Mode
        • 9. Regular Expressions
        • 10. JSON
        • 11. AJAX
      • X. Example Projects
        • 1. Express Starter Project
          • 1. GitHub Codespace
          • 2. Express Starter
          • 3. Convert to ES Modules
          • 4. Debugging & Logging
          • 5. Request Logging
          • 6. Other Libraries
          • 7. Environment
          • 8. OpenAPI Documentation
          • 9. JSDoc Documentation
          • 10. Linting & Formatting
          • 11. Summary
        • 2. Adding a Database
          • 1. Sequelize
          • 2. Migrations
          • 3. Seeds
          • 4. Models
          • 5. Documenting Models
          • 6. Automation
          • 7. Another Table
        • 3. RESTful API
          • 1. API Design
          • 2. Unit Testing
          • 3. Code Coverage
          • 4. Other Tests
          • 5. Testing Roles
          • 6. Retrieve All
          • 7. Retrieve One
          • 8. Create
          • 9. Testing Create
          • 10. Update
          • 11. Delete
        • 4. Authentication
          • 1. Bypass Auth
          • 2. Cookie Sessions
          • 3. JSON Web Token
          • 4. Auth Routing
          • 5. CAS Authentication
          • 6. New Users
          • 7. Testing Authentication
          • 8. Role-Based Authorization
          • 9. Updating Tests
          • 10. Testing Roles
          • 11. Users API Updates
        • 5. Vue.js Starter Project
          • 1. Vue Starter
          • 2. Exploring Vue
          • 3. PrimeVue
          • 4. Routing
          • 5. Tailwind
          • 6. Dark Mode
          • 7. Icons
          • 8. API Proxy
          • 9. Authentication
          • 10. Route Guards
          • 11. Accessing API
        • 6. Vue.js CRUD App
          • 1. Roles View
          • 2. Users Table
          • 3. Edit User
          • 4. Edit Roles
          • 5. New User
          • 6. Delete User
        • 7. Advanced Topics
          • 1. Pinia
          • 2. Reusing Components
          • 3. Preparing for Deployment
          • 4. Dockerfile
          • 5. GitHub Actions
          • 6. Docker Compose
          • 7. External Database
        • 8. Errata
      • X. Milestones
        • 1. Express Starter Project
        • 2. Add a Database
        • 3. RESTful API
        • 4. Authentication
        • 5. Vue.js Starter Project
        • 6. Vue.js CRUD App
        • 7. Advanced Topics
      • Y. Announcements
        • Spring '25 Week 8
        • Spring '25 Week 9
        • Spring '25 Week 10
        • Spring '25 Week 11
        • Spring '25 Week 12
        • Spring '25 Week 13
        • Spring '25 Week 14
        • Spring '25 Week 15

        •  

        Built using Hugo and Hugo Relearn Theme.

        Creative Commons License
        This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.