CSCI 344: Fall 2024

Advanced Web Technology

CSCI 344: Fall 2024

UNCA Logo

Assignments > HW2: Make the Photo App Interface: Part I

Due on Fri, 09/20 @ 11:59PM. 25 Points.

Collaboration and Code Sharing Policy: Read Carefully

For this homework, you are welcome to work in pairs (optional). Even if you collaborate with someone else, you must still submit your own HTML and CSS files on Moodle. If you collaborate, you’ll just list your partner in the comments section of Moodle.

For those of you who are collaborating, please do not (a) “free ride” on your teammates or (b) enable free riders. Everyone in your group should understand every line of code they submit.

In this assignment, you will create a high-fidelity prototype of a photo sharing app using HTML & CSS. You will complete all of the requirements and then submit your assignment via a zip file to the course Moodle.

Part 1: Setup

1. Create two files

Create a folder called homework. Inside of it, create a folder called hw02. Inside of it, create two files – an HTML file called index.html and a CSS file called styles.css.

When you’re done, your directory structure should look something like this:

csci344
├── homework
│   └── hw02
│       ├── index.html
│       └── styles.css
├── index.html
├── lectures
│       ...
└── tutorials
        ...

Part 2: Build the PhotoApp Interface

Using HTML & CSS (no JavaScript yet), you are going to build a webpage that looks like this:

Desktop Version

Mobile Version

Same as the desktop version, except that the recommendations panel is hidden (e.g. display: none;)

The webpage is composed of 4 components: a navigation bar, a recommendations, panel, a “stories” panel, and a series of cards that display a user’s post and associated comments. Your web page should look nice on both mobile and desktop screens.

Requirements

The first image illustrates how the nav bar should look. The second illustrates one way of nesting HTML elements to produce the desired effect (each HTML element is outlined). Feel free to use your own approach. This is just a suggestion.

2. Recommendations Panel (4 points)

The recommendations panel suggests accounts that the user should follow. It should look like the first figure shown below. Specifically:

Tips

Feel free to use your own approach. This is just a suggestion.

3. Stories Panel (3 points)

The stories panel displays stories of accounts that the user follows. It should look like the first figure shown below. Specifically:

The second image (below) illustrates one way of nesting HTML elements to produce the desired effect. Feel free to use your own approach. This is just a suggestion.

4. Card (7 points)

The card represents a post in your photo sharing app. It is the most complicated widget in your webpage, consisting of the username of the person who posted the image, the image itself, a caption, buttons, a list of comments, and the ability to post a comment. It should look like the first figure shown below. Specifically:

Tips

Consider using Font Awesome to display the icons. To do this, embed the following link within the head section of your HTML file…

<html>
<head>
    <title>Photo App</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.1/css/all.min.css">
    ...
</head>
<body>
    <i class="fa-solid fa-face-smile"></i>
</body>
</html>

…and then use the documentation to find the icons you want!

Here is an example.

The first image illustrates how each card should look. The second image illustrates one way of nesting HTML elements to produce the desired effect (each HTML element is outlined). Feel free to use your own approach.

5. Composition (5 points)

Desktop Interface

Mobile Interface

Same as the desktop version, except that the side panel is missing, and there is less spacing around the cards:

6. Accessibility (4 points)

Part 3: Submit

Please consult the rubric below to ensure you have met the requirements for this assignment (all of the tasks with checkmarks next to them):

Component / Task Subtasks Points
Nav Bar 4 requirements 2
Recommendations Panel 4 requirements 4
Stories Panel 3 requirements 3
Card 7 requirements 7
Composition 5 requirements 5
Accessibility 2 requirements 4
Total 25

What to turn in

Please create a link from your homepage to your completed homework 2 webpage (see Sarah’s homepage for an example). Then, commit and push all of your edits to GitHub and, paste a link to your GitHub Repository and to your GitHub pages in the Moodle submission.