CSCI-232 Client-side Development

This course covers the design and development of rich reactive web UI's using front-end JavaScript frameworks such as Bootstrap, Angular.js, React.js and Vue.js.




Assignments
Students are expected to demonstrate their software solution to the homework assignments to the class at the beginning of lecture on the dates specified below.

Date Assignment Due Lecture Required Reading
01/08 Introduction to Vue and the Toolchain

Vite
Introduction
Quickstart (up to Using Vue from CDN)
Creating an Application
01/13 A1. Live Demo
A1. Create a New Vue SPA
A1. Create and Test a Production Build
A1. Create a GitHub Distribution Repo A1. Hosting an App on Digital Ocean
Component Basics Demo Component Basics Demo Code
Component Basics Demo Code (Github)

Props, Fallthrough Attr, Class & Styles Demo Props, Fallthrough Attr, Class & Styles Demo Code (Github)
Single File Component
SFC Syntax Specification
Component Registration

Component Basics

Props
Fallthrough Attributes
Class and Style Bindings

01/20 A2. Live Demo
A2. Description and Grading Rubric

Setting Up A New Clean Vue Project
Deploying a New App
Slots Demo Slots Demo Code (Github)

<component> Demo <component> Demo Code (Github)

Reactivity
Reactivity Demo Code (Github)

Slots

<component> <KeepAlive>

Reactivity Fundamentals
ref() reactive()

Computed Properties computed()

Watchers watch()
01/27 A3. Description and Grading Rubric 🌨 ️ 🌨 ️ 🌨 ️
A2 student demos
02/03 A4. Description and Grading Rubric A3 student demos

Template syntax, lists, events, forms Demo Demo Code (Github)

Component v-model Demo Demo Code (Github)

Provide & Inject Demo Demo Code (Github)

Template Syntax

Event Handling
Events

Conditional Rendering
List Rendering
Form Input Bindings

Component v-model
Provide/Inject
02/10 A5. Description and Grading Rubric A4 student demos

Template refs Demo Demo Code (Github)

Pinia Demo Demo Code (Github)
Template Refs

State Management
Defining a Pinia Store Storage (localStorage, sessionStorage)

02/17 A5 student demos
Routing From Scratch Demo
Demo Code (Github)

Vue Router Demo
Demo Code (Github)

Routing
Vue Router - Getting Started
Dynamic Matching
Programmatic Navigation

02/24 A6. Live Demo
A6. Description and Grading Rubric
Vue Router Demo 2
Demo Code (Github)

Named Routes
Nested Routes
Programmatic Navigation

03/03
Spring Break
03/10 A7. Discussed in class Vue Router Demo 3
Demo Code (Github)

Vue Router Demo 4
Demo Code (Github)

Named Views
Redirect and Alias
Passing Props
Active Links

Navigation Guards
Composition API
03/17 A7 demos
03/24 A8: Fetching from an API server Fetch Demo
Fetch Demo Code (Github)
Messages API Specification Document
Fetch API
fetch()

03/31 A9: A8 demos
04/07
Founders Day
A10: A9 demos
Route Meta Fields
Navigation Failures

SFC CSS Features

Transition
TransitionGroup
Animation Techniques

Suspense
Teleport
Async Components

04/14 A11: A10 demos
Composables
Custom Directives
Plugins Vue and Web Components
04/21 A12: A11 demos
Best Practices
Production Deployment
Performance
Accessibility
Security