CMPUT 404

Web Applications and Architecture

All articles

Pelican Lab

Lab Procedure, Lab Assignments, Lab Marking

Flask and AJAX Lab

Lab Procedure, Lab Assignments, Lab Marking

Pelican Lab

Lab Procedure, Lab Assignments, Lab Marking

Heroku Lab

Lab Procedure, Lab Assignments, Lab Marking

Published:

By Xin Yang

Django Lab

Lab Procedure, Lab Assignments, Lab Marking

Grade Letters

Grading System, Percentages and Letters, Breakpoint Calculation

How to get Help

Communications Expectations

HTTP Lab


Description

Your task is to build a partially HTTP 1.1 compliant webserver. Your webserver will serve static content from …

Labs

Lab Procedure, Lab Assignments, Lab Marking

Course Outline Winter 2024

University of Alberta
CMPUT 404 - Web Applications and Architecture
LEC-B1
Winter 2024

Project: Distributed Social Networking

Distributed Social Networking (SocialDistribution)

Learning Resources & Reference Materials

Resources, Reference Materials, Notes, Videos, Slides

Schedule


The course schedule is updated in this Google Sheet. You need to be logged in as your University of Alberta CCID/eMail account to view it.

Course Outline Fall 2023

University of Alberta
CMPUT 404 - Web Applications and Architecture
LEC-A1
Fall 2023

Lab 9 - Authentication


Learn the basics of authentication for web applications. Explore the provided Django Rest Framework applications utilizing HTTP Basic, HTTP Token, and HTTP Session authentication. Understand the high-level intention behind OAuth/OAuth2 and the security implications behind these different authentication schemes.

Fork and clone the authentication lab repository.

Lab 8 - WebSockets


Learn how to utilize WebSockets and Phaser.io. Create a basic Phaser game with WebSocket connectivity for real-time server to client communication. Use Node.js for our application server. Use TypeScript with Parcel for bundling browser client code.

Install Node.js

There are two different ways you can try to …

Lab 7 - Flask


Create a basic RESTful web application backend using Flask. Consume the API endpoints using cURL and httpie.

Flask

Navigate to a new folder and initialize a new Python virtual environment.

mkdir cmput404lab7
cd cmput404lab7
virtualenv venv --python=python3
source venv/bin/activate

Install Flask.

pip install Flask

Create a new …

Lab 6 - Heroku


Deploy the Django application created in Lab 4 to Heroku. Understand the reasoning behind Platform as a Service (PaaS) businesses like Heroku. You may follow the official documentation.

Setting up the Heroku CLI

Sign up for a free Heroku account at https://signup.heroku.com/.

Download and install the Heroku …

Lab 5 - Pelican & Basic HTML/CSS


Create a static page using Pelican, or write plain html. Deploy using GitHub pages. Learn to style the basic theme.

Answers to the questions should be submitted to Lab 5 on eClass. Feel free to follow along with the official documentation.

aside: These lab instructions are currently using Pelican and …

Lab 4 - Django


Big lab! Build a simple Django website. Understand the fundamentals of Django's MVC architecture using the built in models and views.

Answers to the questions should be submitted to Lab 4 on eClass. You may also follow along with the official documentation. We will be going through Parts 1 to …

Lab 3 - Common Gateway Interface


Explore the Common Gateway Interface. Refer to the CGI documentation.

Answers to the questions should be submitted to Lab 3 on eClass.

Common Gateway Interface

Fork and clone the lab repository. https://github.com/uofa-cmput404/cgi-lab

Activate a python3 virtual environment.

Start the cgi_server.py in a background terminal window …

Lab - TCP Proxy


Create a tcp client, proxy server, echo server in Python. Understand how sockets work in relation to web requests. Use multiprocessing for forking new processes.

Answers to the questions should be submitted to Lab: TCP Proxy on eClass.

Virtualenv & cURL


Virtualenv & Curl Lab

Introduction to CMPUT 404 labs. Setup virtualenv and understand basic usage of curl.

Answers to the questions should be submitted to Virtualenv Lab on eClass.

Git and GitHub

  1. Make a GitHub account or log in to your existing GitHub account.

    • Question 1: What is your GitHub URL …