COMP3670

Preliminaries

Useful packages

For…​

npm install _ --save

PostgreSQL database

pg

SQLite database

sqlite3

File uploads

formidable

POST requests

body-parser

HTTPS

letsencrypt

Authentication

passport

Asset bundling

Broccoli

Agenda

January 6

Introduce yourself, About this course

January 8

Setup all software and git

January 11

Introduction to HTML, CSS, JavaScript, and image formats

January 12

Lab 1: Home page

January 13

Introduction to Node.js

January 15

Introduction to npm, Express.js

January 19

Introduction to Bootstrap, Handlebars

January 20

Introduction to Forms (GET)

January 22

Introduction to Forms (POST)

January 25

Speed dating / CSS

January 26

Lab 2: Mad Libs

January 27

Databases

January 29

More about databases

February 1

Passport and authentication

February 2

React, browserify

February 3

Lab 3: Low-fidelity Prototype

February 5

Class canceled

February 8

Class canceled

February 9

Finish Lab 3: Low-fidelity Prototype

February 16

AJAX and JQuery

February 19

Heroku stuff

February 22

Hosting and domains

February 23

Front-end prototype demo

February 24

Local storage and location and emailing

February 29

CSS Media Queries, Detect JavaScript, Database stuff

March 1

More information about local testing with databases

March 2

DROWN attack, JSF**k, and Ebay vulnerability

March 4

JSF**k, Promises, Monads and promises

March 14

Happy Pi Day, Native promises

March 16

Debugging Node

March 21

Dotenv, sessions

March 22

Milestone 2

April 5

Milestone 3

Final presentation

Yay! DONE!

TODO (not now, just notes to self)

viewport stuff information retrieval facebook/twitter API secure storage of secrets on server, api access to gift cards

  • caching and invalidation

  • varnish

  • hosting

  • custom tags

  • cordova

  • https

  • cross origin resource sharing / same origin policy

  • mocha testing

  • something useful with docker

  • electron, docker, react, redux, oh my

docker-machine ssh default

So, you can mount files or directories on OS X using.

docker run -v /Users/<path>:/<container path> ...

For example:

docker run -v /Users/lawrancej/COMP3670-2016:/webdev -i -t centos /bin/bash

On Windows, mount directories using:

docker run -v /c/Users/<path>:/<container path> ...`

All other paths come from your virtual machine’s filesystem.