Homework 0 - Publishing to the Web

Due: January 27, 2025 at 11:59pm

This is an INDIVIDUAL assignment. Each person must have their own development environment set up.

Purpose: Create a development environment and practice publishing to the web.

Overview

For this assignment, we will set up our development and production environments for the semester.

Choose an IDE/Editor

In this course, you are free to use the IDE or text editor of your choice. You will routinely see me using a text editor such as VIM or Notepad, but I will occasionally use VSCode. I would encourage you to choose an editor that you are familiar with that also includes syntax highlighting for HTML, CSS, PHP, SQL, JavaScript, and TypeScript. You may decide to choose one of the following, or stick to your favorites:

  1. VIM
  2. Visual Studio Code
  3. Sublime Text
  4. PHP Storm

Once you have downloaded and installed your IDE, create a simple HTML file named homework0.html using the starter code below.

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">  
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="author" content="~your name~">
  <meta name="IDE" content="~your chosen IDE~">
  <title>Homework 0</title>
</head>
<body>

</body>
</html>

Update the text to include your name and computing id. In the IDE meta tag, list which IDE you have chosen. Then, in the body of the HTML file (after the <body> tag), state your reasons for choosing this IDE.

You will deploy this file to test your development environment and practice connecting to the production cs4640 server.

Install Docker and our Development Environment

Next, install a development environment. We have provided a Docker container pre-loaded with the Apache Web Server, PostgresSQL database server, and PHP. The course provides a rough install guide to get you started. You may also choose to use alternate installs for PHP, Apache, and PostgresSQL, such as the built-in web server for Mac OS, homebrew, or apt-get on WSL for Windows.

Publish to the CS4640 server

Publishing to the CS4640 server will not be available until the second week of class, since we must manually add enrolled students onto the server.

Please see the deployment instructions for connecting and publishing to our course server. This process is similar to publishing to a shared hosting platform. For this assignment, you will need to connect to the server and create a hw0 directory in your public_html directory.

Upload the homework0.html file that you created above to the hw0 directory. You can now view this file in your web browser at:

https://cs4640.cs.virginia.edu/yourid/hw0/homework0.html

Submission

The submission will consist of two parts:

  1. Submit your code (HTML) to Gradescope in the “Homework 0” submission.
  2. Submit a screenshot showing your IDE and web browser displaying the page from localhost (your local development environment) to Gradescope.
  3. Publish your web site to the cs4640 server under a directory named “hw0” (as above).

Grading Rubric

This homework is worth 50 points, based on the following rubric:

  • 10 points: Completed HTML file uploaded to Gradescope
  • 20 points: Screenshot showing local development environment working
  • 20 points: Deployment of file to cs4640 server

Academic Integrity

For this assignment, you are welcome to share/publish your website! You’ll be doing that on our cs4640 server as well. We only ask that you not make any GitHub projects public until after the deadline.

Note: You must cite any sources you use in a comment at the top of your file. For example:

<!DOCTYPE html>
<!--
Sources used: https://cs4640.cs.virginia.edu, ...
-->
<html lang="en">
    <head>
    ...