Assignment 3

Requirements

For this assignment, you are going to build the following application using React: https://itp404-assignment-3.surge.sh.

This application uses the icanhazdadjoke API. It must behave exactly the same as the example, but you're free to style it however you wish.

  • The list of jokes should use id as the unique key.

This API requires sending the Accept HTTP header. Setting the Accept header to application/json tells the API to respond with JSON. Here is an example of how to do that with $.ajax():

$.ajax({
  type: "GET",
  url: "https://icanhazdadjoke.com/search?term=cat",
  headers: { Accept: "application/json" },
});

Other Requirements

  1. You are not allowed to use any libraries. Your implementation should only use React, jQuery, and optionally Bootstrap.
  2. Your implementation must only use the techniques, patterns, and concepts that we covered in class.
  3. Your implementation should not have any direct DOM manipulation or have any references to document or window. All rendering should be done by React via state changes.
  4. There shouldn't be any console warnings or errors when running locally or when deployed to Surge.

Submission

Create a video with audio using Zoom where you demo your assignment and explain where you fulfilled or did not fulfill each requirement. Put a link to this recording in the README.md file at the root of your project.

Also, deploy your project using Surge and include this link on your README.md.

https://classroom.github.com/a/bWDoYPuv

If you're having problems uploading to GitHub, please zip up your project and email it to the instructor and TA. Be sure to exclude the node_modules folder from your zip file. Please include the Zoom recording URL in the email. You can also zip up your project, put it in Google Drive or Dropbox, make the link sharable, and email that link to us.