CompSci 290
Spring 2021
Web Application Development

Introductions

This project is intended to introduce you to your classmates and the Teaching Team. It will also be the beginning of your portfolio for this course that represents a record of all of your work. You will link to all of your projects for this course from this site so the Teaching Team can track your progress during the semester — thus it will be very important that you keep it up-to-date throughout the semester.

Submitting Your Work

Submit this project using GIT to commit and push your index.html and other web site files to the portfolio_NETID repository provided for you hosted in the course's Gitlab group. Note, this is how all submissions will be done for this course — only what is in the master branch of the provided Gitlab repository will be considered part of your work.

In this course, all your pages must display the way you expect in the latest version of Google's Chrome browser and written following standard Coding Conventions that is validated online.

Specification

Whether or not you already have a personal home page, you should create a separate page for this course. Your course web site must contain at least the following pages:

Note, images used on your web pages (and in general) must:

For those having trouble being creative, you can fill in this template file.

Part 1: HTML - Computer Science Autobiography

To create the content for your course web site, you can use a plain text editor such as VS Code but not a modern word processor or other WYSIWYG editor because part of the goal of this assignment is to learn the basics of the hypertext markup language, HTML. For this part, do not need to worry about making your page pretty — specifically, we suggest not embedding styles directly into you HTML (even though it is possible). Instead, wait for Part 2 to focus on using CSS styles to improve the look of your pages.

Before you start this course, take a moment to reflect on your goals and motivations for taking this course and how your web/programming experiences have affected you and shaped your decision to study computer science (and to take this course).

Your autobiography should broadly attempt to answer the following questions:

  1. When did you first start using a computer?
  2. What event(s) made you interested in studying computer science?
  3. What kinds of computers/programming languages have you used?
  4. How do you use computers and programming on a daily basis (i.e., outside of course assignments)?
  5. What is motivating you to take this course and what do you want to get out of this experience?
  6. How do you see yourself using programming in the future?
  7. What do you think a web developer does on a daily basis?
  8. What kinds of skills are required to code different parts of a web site?

As a separate web page, linked to from your index.html web page, show something that interests you in whatever format you think best suits it. Again, for this part, focus on the structure of the information you want to share rather than the style, colors, etc.

Part 2: CSS - Styling your Web Site

Commonly the content of a page is developed separately from the style, or look, of the page — even by different departments of people. An obvious example of this is the thousands of free and paid CSS templates available on the web to apply to your site. This is also the basis of the popular Bootstrap framework that we will study later.

In this course, your CSS styles should be written in a separate stylesheet (typically called style.css) that is linked from your HTML pages, rather than mixing the two. This maintains a strict division of CSS (for presentation) and HTML (for content). You can choose to create a single stylesheet for all the pages in your web site or separate ones for separate pages. However, if you use separate stylesheets, you should not duplicate styles in each file but instead create a separate file that contains the common styles. Note, an HTML page can reference any number of style sheets, with later ones overriding rules set in earlier ones.

Apply at least these styles to the web pages you create for this assignment:

Note, you will need to change the HTML developed in the first part to accommodate your styling. We will discuss ways to do this while maintaining a clear separation of concerns during the semester, but a great example of this in action is the CSS Zen Garden.

Part 3: JavaScript - An Interactive Web Page

Build an separate, styled and interactive web page using CSS and JavaScript that allows users to:

Your filter can do whatever you want, but try to make it something "original", rather than reproducing something that CSS already does automatically. Consider changing the pixels (x,y) and/or RGB values based on where they are in the image, their color values, their relationship to each other, or by applying multiple operations. You can can also include more complex math operations with JavaScript’s Math object methods.​ Also consider the affect of allowing the user to change values in your filter dynamically like a threshold, distance, multiplier, or number of times to apply the algorithm.

Your JavaScript code should be initiated by events generated by HTML input DOM elements and use the HTML canvas DOM element (you will not need to learn its drawing API, it is just a place on your page to display the uploaded image) and the JavaScript SimpleImage class, documentation and code (which you do not need to understand or download locally to complete this project), to manipulate the individual pixels of the image. Use this example, running version and code, as a guide for your work.

Resources