CMPUT 404

Web Applications and Architecture

All articles

Django Lab

Lab Procedure, Lab Assignments, Lab Marking

Course Outline Winter 2024

Lecture, Labs, Contact Information, Lecturer, Teaching Assistants, Course Content, Course Description, Prerequisites, Objectives and Learning Outcomes, Course Topics, Learning Resources, Course Schedule, Required Textbook and/or Other Major Course Materials, Recommended or Optional Learning Resources, Course Fees, On-Line Homework Disclaimer, Academic Success Centre, Faculty of Science Student Services, Grade Evaluation, Letter Grades, Statement of Expectations for AI Use, Re-Evaluation of Term Work, Re-examination, Past or Representative Evaluative Material, Labs, Participation, Policies for Late and Missed Work, Late Policy, Non-medical Protected Grounds, Missed Term Work: Assignments, Labs, Quizzes, Project Parts, Midterm Exams, Missed Term Work: Participation, Deferred Final Examination, Required Technology, Labs Assignments and Project, Lecture Participation, Remote Delivery Considerations, Technology Requirements, Recordings of Synchronous Activities, Home-Based Lab Activities, Student Resources for Remote Learning, Student Responsibilities, Academic Integrity and Student Conduct, Contract Cheating and Misuse of University Academic Materials or Other Assets, Contract Cheating: CS Courses, Academic Integrity Issues Related to Minor Formative Assessments, Appropriate Collaboration, Citation, Solo Effort: Participation Exercises, Quizzes, Exams, Confidential: Exams, Consultation: Assignments, Labs, Teamwork: Group Projects, Intellectual Violence, Exam Conduct, Lecture Conduct, Students Eligible for Accessibility-Related Accommodations, Recording and/or Distribution of Course Materials, On-Campus Computer Labs, Recording and/or Distribution of Course Materials, Learning and Working Environment, Feeling Stressed, Anxious, or Upset?, Student Self-Care Guide, Land Acknowledgement, Administrative, Policy about Course Outlines, Disclaimer, Update History, Copyright

Project: Distributed Social Networking

Distributed Social Networking (SocialDistribution)

HTTP Lab

Lab Procedure, Lab Assignments, Lab Marking

JS Lab

Lab Procedure, Lab Assignments, Lab Marking

Individual

Individual Assignments, Participation

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

Labs

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 …

Labs

Lab Procedure, Lab Assignments, Lab Marking

Course Outline Winter 2024

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

Learning Resources & Reference Materials

Resources, Reference Materials, Notes, Videos, Slides

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 …