Project 1: Static Web Page

Build, deploy, and load test a static web page hosted on GitHub Pages.

This project will ensure that students can deploy and load test a simple web page prior to working with more complicated web applications.

Static web pages are fast to serve, and are relatively trivial to scale. Anyone with access to a free GitHub account can deploy a static site that can scale to thousands of users without requring any knowledge of how such scaling is accomplished.

Learning Outcomes

  • Student can setup a git repository and use it for version control.
  • Student can build and deploy a simple static web page.
  • Student can measure average page load time.
  • Student can measure server’s rate limit.

Project Submission

https://forms.gle/8Z3TVU6kKxmX5Nro7

Page Requirements

Your static page must:

  • be hosted on GitHub Pages
  • be served via HTTPS
  • be created by hand – go nuts, but don’t use a page generator, i.e., no more markup than necessary (ok to use language models to help with generation)
  • contain 100% valid HTML5
  • contain 100% valid CSS
  • utilize an external style sheet to provide style changes (no inline styles, i.e., provided via style attributes)

You page must include:

  • an external CSS file written by you and hosted on the same domain
  • an index page including the following
    • a page title
    • a page heading
    • a paragraph of bio text telling me a bit about you
    • an image of you hosted on the same domain (helps me get to know your faces/names) If you object to putting your face on a public website, it is ok to skip this but please email me a photo of yourself so that I can create my own class roster with faces and add some other photo to your site.
    • a hyperlink to the GitHub repository containing the source code
    • A div with the id attribute set to “expert-topics” containing an unordered list with at least three
    • a hyperlink to at least one page named /interest/ Ex: /interests/airplanes
  • a page for at least one of your interests accessible at /interest/ Ex: /interests/airplanes
    • a page title
    • a page heading
    • a paragraph of text describing the content of this page
    • a table with at least 2 columns and at least 10 rows formatted as an FAQ about your topic of interest

Verification Script

The project1.py script in https://github.com/scalableinternetservices/ucsb_website/tree/main/scripts can be used to automatically verify that your page meets the necessary requirements.

Follow the directions in the README to clone the repository, install the python dependencies, and run the verification script.

Questions To Answer

  • On average, how many requests can ab complete in 10 seconds with all the power of two concurrency levels between 1 and 256 (i.e., 1, 2, 4, 8, 16, 32, 64, 128, 256)?
  • Why are there diminishing returns at higher concurrency levels?
  • What’s the performance difference when requesting HTTP and HTTPS?
  • How can GitHub respond so quickly?
  • What is your site’s “Total Blocking Time” (TBT) according to PageSpeed Insights?

Required Tools

Other Resources