Week One
Node.js Fundamentals
Online class .
Welcome & introductions
Course policies
Course calendar
Online class .
Professional development for life: Learning with intention
Git as a learning tool
Node.js fundamentals
Assigned Work
Due Wednesday, January 19
To Read
Jim R. Wilson, Node.js 8 the Right Way : Preface, Chapters 1–2
To Do
As soon as possible: Submit ITMD 467/567 Contract and Survey (link in your
@hawk.iit.edu inbox; email instructor at kstolley@iit.edu if you did not receive it)
As soon as possible: Join the class Basecamp (invite will arrive after you submit
the Contract and Survey)
Dev environment setup (Firefox Developer Edition, Atom.io, Node.js, Git);
follow
these instructions
Create a Git repo and GitHub remote for working through Node.js 8 the Right
Way
Participate in Week One reading discussion on Basecamp
Week Two
JavaScript Refresher; Asynchronous Patterns
Monday, January 17
No class . Martin Luther King, Jr. holiday
Online class .
JavaScript refresher (questions)
Asynchronous JavaScript
Assigned Work
Due Monday, January 24
To Read
Jim R. Wilson, Node.js 8 the Right Way : Chapters 3–4
To Do
Participate in Two reading discussion on Basecamp
Week Three
Node.js and Data Stores
Node.js documentation
Networking and fetching external resources
Data-store concepts: file system, serialized data; databases
Assigned Work
Due Monday, January 31
To Read
Jim R. Wilson, Node.js 8 the Right Way : Chapters 5–6
To Do
Participate in Week Three reading discussion on Basecamp
Week Four
Shaping and Sketching; System-Design Fundamentals and Strategies
Introduce Project One
Lo-fi prototyping and shaping
Fat-marker sketches
Refining your systems-design thinking
Online class.
Determining architecturally significant requirements
Establishing project boundaries
Arriving at narrowly defined problems
Assigned Work
Due Monday, February 7
To Read
Shape Up : Chapters 1–6
Mike Amundsen, Great Web APIs : Preface, Chapter 1
To Do
Participate in Week Four reading discussion on Basecamp
Week Five
Web Standards Refresher; Frontend Prototyping
An all-too-brief refresher on web standards: semantic HTML, progressive
enhancement (CSS & JS)
Thursday, February 10 Project One : Post draft deliverables to the Project
One board on Basecamp.
Thursday, February 10 Project One : Schedule a one-on-one consultation with
the instructor.
Monday, February 14 Project
One : Respond to at least 3 of your peers’ Draft Projects
Assigned Work
Due Monday, February 14
To Read
Shape Up : Chapters 7–8
Jim R. Wilson, Node.js 8 the Right Way :
Chapters 7 & 9
Mike Amundsen, Great Web APIs : Chapter 2
To Do
Participate in Week Five reading discussion on Basecamp
Week Six
One-on-One Conferences; Working Remotely in Teams
Monday, February 14
No class. Individual Project One remote consultations with instructor.
Grooming a Git-centric development environment
Refresher: Git remotes and pull requests; enforcing code reviews
Monday, February 21 Project
One : Post final deliverables to the Project One board on Basecamp.
Assigned Work
Due Monday, February 21
To Read
Shape Up :
Chapters 9–14, Conclusion
Mike Amundsen, Great Web APIs : Chapters 3–4
To Do
Participate in Week Six reading discussion on Basecamp
Week Seven
ExpressJS; Documentation
Including CLI tools in project setup (package.json
, the npx
command)
Working with JSDoc
Integrating JSDoc output with GitHub Pages
Thursday, February 24 Project Two : Organize into teams on Basecamp.
Monday, February 28 Project
Two : Pitch your team’s project to the instructor via Basecamp.
Monday, February 28 Project
Two : Schedule an early-cycle conference with the instructor.
Assigned Work
Due Monday, February 28
To Read
Mike Amundsen, Great Web APIs : Chapter 5
[567 Students Only] Tuan-Dat Trinh, Peter Wetz, Ba-Lam Do, Amin Anjomshoaa, Elmar
Kiesling, and A. Min Tjoa. 2014. A Web-based Platform for Dynamic Integration of
Heterogeneous Data. In Proceedings of the 16th International Conference on
Information Integration and Web-based Applications & Services (iiWAS ‘14).
Association for Computing Machinery, New York, NY, USA, 253–261.
To Do
Participate in Week Seven reading discussion on Basecamp
Week Eight
Code Quality; More ExpressJS
Monday, February 28
No class.
Setting up ExpressJS to serve HTTPS
Working with environment variables
ExpressJS: code organization, routing essentials
Assigned Work
Due Monday, March 7
To Read
Mike Amundsen, Great Web APIs , Chapters 6–8
[567 Students Only] Diana Kirk, Tyne Crow, Andrew Luxton-Reilly, and Ewan
Tempero. 2020. On Assuring Learning About Code Quality. In Proceedings of the
Twenty-Second Australasian Computing Education Conference (ACE’20) . Association
for Computing Machinery, New York, NY, USA, 86–94.
To Do
Participate in Week Eight reading discussion on Basecamp
Week Nine
Scraping, Scripting, and Linting; More Git
Setting up a scraping script
Developing with a locally-served copy of scraped data
Flat-file storage
Linting with eslint
Stolley’s opinionated eslint configs
Evaluating testing frameworks; Mocha
Thursday, March 10 Project
Two : Schedule a late-cycle conference with the instructor.
Thursday, March 10 (ITMD 567 Only) Project Five : Find and get instructor approval on a
topic area within web development for your bibliography.
Assigned Work
Due Monday, March 21
To Do
Participate in Q&A Megathread on Basecamp
Monday, March 14
No class.
Wednesday, March 16
No class.
Week Eleven
Web-System Construction and Test-Driven Development
Working on feature branches; staying up to date with git rebase
Properly squashing and merging commits in a PR
Handling merge conflicts like NBD
Crafting releases on GitHub
Web-system construction and code organization (ExpressJS example)
Writing tests on HTTP requests and responses with Supertest
Driving development with tests
Building tests into the Git lifecycle with hooks
Assigned Work
Due Monday, March 28
To Read
Michael T. Nygard, Release It! : Preface, Chapters 1–5
Mike Amundsen, Great Web APIs : Ch. 9–10
To Do
Participate in Week Eleven reading discussion on Basecamp
Relational databases (MySQL and friends)
Applications and use cases
Implementing relational databases: SQLite example
Configuration and connection: what to commit, what to obscure (ENV
variables)
Seeding SQL-style databases (SQLite example)
Document-based databases (NoSQL and friends)
Applications and use cases
Implementing document-style databases: MongoDB example
Configuration and connection: what to commit, what to obscure (ENV
variables)
Seeding NoSQL-style databases (MongoDB example)
Online class
Or work day? Alpha project due 3/31…
Thursday, March 31 Project
Two : Post your final alpha release project to Basecamp.
Thursday, March 31 Project
Two : Email self and group-member critique memo to the instructor.
Assigned Work
Due Monday, April 4
To Read
Michael T. Nygard, Release It! : Chapters 6–8
Mike Amundsen, Great Web APIs : Chapters 11–13
To Do
Participate in Week Twelve reading discussion on Basecamp
Week Thirteen
Readying a Production Server; Shifting from Alphas to Betas
Monday, April 4
No class .
Developing a production mindset
Thinking about betas and production readiness
Server setup and security (Linode example)
Key-based authentication over SSH
Basic firewall (ufw )
Basic checks to ensure server security
Assigned Work
Due Monday, April 11
To Read
Michael T. Nygard, Release It! : Chapters 9–11
To Do
Participate in Week Thirteen reading discussion on Basecamp
Week Fourteen
Web-Server Setup
Online class.
Setting up a shell and Git on the server
Using Git to manage configuration files
Selecting and configuring a web server
Opening up ufw
to web
traffic
Online class.
Researching and implementing an Nginx server-block configuration
Setting up https
with
Certbot
Thursday, April 14 (ITMD 567 Only) Project Five : Post draft bibliography to Basecamp,
in its own thread.
Assigned Work
Due Monday, April 18
To Do
Participate in Week Fourteen reading discussion on Basecamp
Week Fifteen
Deployment and Monitoring
Wednesday, April 20
No class. Stolley available to answer questions on Basecamp.
Assigned Work
Due Monday, April 25
Monday, April 25
No class.
Stolley available for one-on-one help
Wednesday, April 27
No class.
Stolley available for one-on-one help
Thursday, April 28 Project
Three : Post your final beta release project to Basecamp.
Thursday, April 28 Project
Three : Email self and group-member critique memo to the instructor.
Thursday, May 5 Project
Four : Post your final public release project to Basecamp.
Thursday, May 5 Project
Four : Email self and group-member critique memo to the instructor.
Thursday, May 5 (ITMD 567 Only) Project Five : Post final bibliography to Basecamp,
in a follow up reply to your original thread.
Course Information
Dr. Karl Stolley , Associate Professor of
Information Technology and Management
kstolley@iit.edu
Office hours via Basecamp Chat or Pings on Tuesdays, 4pm to
5pm Central Time (America/Chicago), or by appointment or chance. If you’d like to
audio or video chat, we can of course do that, too. Just message me first. I’m always
signed into Basecamp and closely monitor my notifications. Message or email any time—I
make students a priority, and I will respond as soon as I am able.
Navigation