Web-based Information Systems

CMPT 470, Summer 2019

Greg Baker


This Course

It's “Web-based Information Systems”, which is probably a good name for it.

Course web site: in CourSys, https://coursys.sfu.ca/2019su-cmpt-470-d1/pages/.

This Course

Instructor: Greg Baker <ggbaker@sfu.ca>.

Office hours: Tuesdays 10:00–11:00 and Thursdays 13:00–14:00 in TASC1 9229.

This Course

TAs: Mohammad Mazraeh <mmazraeh@>, Sally Qi <qibuerh@>.

Office hours: TBA.


Major topics:

  • HTML & CSS
  • HTTP
  • web servers and clients
  • server-side programming
  • client-side programming
  • security
  • frameworks & tools


  • Weekly exercises: 20%, individual.
  • Technology evaluation: 25%, mostly group-based.
  • Project: 55%, mostly group-based.

Details on course web site, but…

Weekly Exercises

10 × 2%, due most Fridays.

Designed to exercise core skills and build to other work.

Should take a few hours each, unless there's a good reason like building toward the project.

Technology Evaluation

In groups.

You will expolore various web technologies: compare features, uses, competing tech, etc. Components:

  • demo site
  • written evaluation
  • presentation
  • presentation summaries (individual)

Technology Evaluation

Each group will choose a different topic, so the presentations have some breadth.

Presentations in weeks 6–8.


In (the same) groups.

Design and implement a web-based information system. Implementation technology not related to tech eval technology.

There is a weighting on the group marks to adjust for individual contributions.



  • proposal
  • checkpoint implementation
  • poster presentation
  • final implementation
  • overview (individual)


4–6 members. Same for all group work.

Choose your own and create them in CourSys.

Not in a group by end of week 3: I will form groups.

Version Control

We will use the CS Gitlab server for Git repositories.

All group members must use it and must commit their own contributions. No commits = no contribution.

“Deploying” Code

We will be using configuration management tools to manage the deployment setup for the projects. Either way, your code will be able to deploy itself.

Option 1: Vagrant will create virtual machines; Chef (or Puppet, Fabric, etc.) will configure the VM.

Option 2: Docker (and Docker Compose) to create a collection of containers to run components of your system.

More later, and exercises to guide you.


To get credit for this course, I expect you to demonstrate that you can implement a web-based information system. That means programming on the project.

Contributions evaluated on the group's version control repository: all group members are expected to commit their own work.

Students who don't complete a reasonable amount of the project implementation will receive a penalty beyond the usual project weighting, possibly an F or D in the course.