frontend of the x440 image sharing website

Project Part 2

In this portion of the project, you will develop some of the frontend of the x440 image sharing website. In particular, you’ll be making the parts of the website designed for creating and viewing the posts and comments. To do this, you’ll have to use your API that you designed and implemented in part 1.

The good news is that I have only a few requirements for you to implement, and how you do so is up to you. Every approach has its benefits and weaknesses; however none is going to be much worse or better than the others overall.

I supplied you with a sample CSS file in your Project 0 repo. This will give you some hints on what classes you could use to structure your HTML, and it will make everything look better if you use those same classes. This isn’t a course on web design, so don’t worry about the appearance. If I can figure out how to test the functionality, you are okay. And if I can’t figure out how to test the functionality, then I will ask for clarification on your next submission.

Requirements

You are to implement four pages for this website. Each one will provide the visitor the ability to see posts by users. When you display a post, show the image, caption, author, and when the post was submitted in a human-readable way. Don’t show the comments unless otherwise specified.

Post Viewing Page (/post.html?id=:post_id:)

This page is where you can view a particular post, specified in the get parameter, and its comments. Display the post’s image, caption, author, time, and all of the comments with their authors in chronological order. Additionally, there should be a comment box below the last comment that lets the visitor comment. For now, allow the user to enter their own name and the comment. Both username and comment body must be non-null for the form to proceed. If they are missing, stay on the same page and prompt the user to correct their input. If the post id doesn’t exist, return a reasonable error code and page.

Post Creation Page (/new-post.html)

This page is where you can create a new post. There should be a form that allows image upload, and lets the user enter their name and a caption. When the user presses submit, it should first check if all fields of the form are filled out. If there is another error on upload, it should also explain that to the user on this page. If the upload was successful the site should redirect the user to the Post Viewing Page for their new post.

User Posts Page (/user.html?id=:user_id:&page=:n:)

This page is where you can view a particular users’ posts. The user is specified by the GET parameter id, and which posts are specified by the GET parameter page. Posts should be displayed in reverse chronological order, and not show any comments. The page should only load at most 10 posts at a time, with page=1 representing the 10 most recent posts. To load the next 10 most recent posts, the GET parameters would be set with page=2. If the page is set so large that there aren’t (n-1)*10 posts, page isn’t a Natural number, or page isn’t set at all, then default to the first page. If the user id doesn’t exist, return a reasonable error code and page.

Landing Page (/index.html)

This page is the first page a user visits. It is also where we will display all of the most recent posts. Again, show all of the posts in reverse chronological order, without displaying any comments and only load 10 posts initially. However, this page differs in that it will be an “infinite scroll” of all of the posts. That is, when the user reaches the bottom of the page, I want you to load an additional 10 posts and display them below the previous last post. This should continue until there are no further posts to display, at which point a message should be displayed to the user in the page.

Restrictions

Please do not use any outside JavaScript libraries, except the ones I install in your npm project. Also, please conform to the academic integrity policy of the course.

Submitting

To submit the project, create a new release in GitLab with name like “project2-24-08-2020” (instructions available at https://docs.gitlab.com/ee/user/project/releases/index.html#create-a-release) and email me that you would like it graded. You may do this up to two times a week. I will do my best to get back to you with a graded rubric by the end of the next workday. This project, like all other projects, is due Friday, December 4, 2020 at noon. However, I recommend that you finish this within the first few weeks of its availability.

Rubric

Points Requirement  Comment
Post Viewing Page Requirements
 __/1 Error pages (large post id, no post id, long post id)  
 __/1 Comment box sends POST request  
 __/1 Comments created, immediately rendered  
 __/1 Comment box handles missing fields  
 __/3 Post and comments appear on page in happy path  
Post Creation Page Requirements
 __/1 Missing fields handled  
 __/1 Error on upload handled  
 __/1 Redirect on submit  
 __/3 Successful upload on happy path  
User Posts Page Requirements
 __/2 GET Parameters handled according to spec  
 __/1 Reverse chronological order, no comments  
 __/3 Successful display on happy path  
Landing Page Requirements
 __/2 10 posts initially, displayed as expected  
 __/4 Infinite scroll works and no errors on reaching the end  
Documentation Requirements
__/1 Project runs with `git pull`, `npm install`, `npm start`, and visiting `https://localhost:8888` in the browser
__/4 README.md explains what source files do and source files contain meaningful comments
__/30 __/30 * 7 = ____
HelpHub
Calculate your paper price
Pages (550 words)
Approximate price: -

Why Choose HelpHub

HelpHub

Quality Researched Papers

We always make sure that writers follow all your instructions precisely. You can choose your academic level: high school, college/university or professional, and we will assign a writer who has a respective degree.

HelpHub

Qualified Writers

We have hired a team of professional writers experienced in academic and business writing. Most of them are native speakers and PhD holders able to take care of any assignment you need help with.

StudyAcer

Unlimited Revisions

If you think we missed something, send your order for a free revision. You have 10 days to submit the order for review after you have received the final document. You can do this yourself after logging into your personal account.

StudyAcer

On Time Delivery

All papers are always delivered on time. In case we need more time to master your paper, we may contact you regarding the deadline extension. We will always strive to deliver on time.

StudyAcer

Original & Confidential

We use several writing tools checks to ensure that all documents you receive are free from plagiarism. Our editors carefully review all quotations in the text.

StudyAcer

24/7 Customer Support

Our support agents are available 24 hours a day 7 days a week and committed to providing you with the best customer experience. Get in touch whenever you need any assistance.

Try it now!

Calculate the price of your order

Total price:
$0.00

How it works?

Follow these simple steps to get your paper done

Help Hub

Place your order

Fill in the order form and provide all details of your assignment.

Help Hub

Proceed with the payment

Choose the payment system that suits you most.

Help Hub

Receive the final file

Once your paper is ready, we will email it to you.

HelpHub Writing Services

No need to work on essay at night. Sleep tight, we will cover your back. We offer all kinds of essay writing services.

HelpHub HelpHub

Essays

Essay Writing Service

No matter what kind of academic paper you need and how urgent you need it, you are welcome to choose your academic level and the type of your paper at an affordable price. We take care of all your paper needs and give a 24/7 customer care support system.

HelpHub HelpHub

Admissions

Admission Essays

An admission essay is an essay or other written statement by a candidate, often a potential student enrolling in a college, university, or graduate school. You can be rest assurred that through our service we will write the best admission essay for you.

HelpHub HelpHub

Editing

Editing Support

Our academic writers and editors make the necessary changes to your paper so that it is polished. We also format your document by correctly quoting the sources and creating reference lists in the formats APA, Harvard, MLA, Chicago / Turabian.

HelpHub HelpHub

Revision

Revision Support

If you think your paper could be improved, you can request a review. In this case, your paper will be checked by the writer or assigned to an editor. You can use this option as many times as you see fit. This is free because we want you to be completely satisfied.