Rice COMP 431/531 Web Development
https://www.clear.rice.edu/comp431/#/assignments 1/8
General Info
1. Simple Page
(due Thu 08/30)
2. Dynamic Page
(due Thu 09/06)
3. JavaScript Game
(due Thu 09/20)
4. Draft Front-End
(due Thu 10/04)
5. Front-End App
(due Thu 10/18)
6. Draft Back-End
(due Thu 11/08)
COMP531 Paper
and Presentation
(due Tue 11/27)
7. Final Full Web
App
(due Thu 11/29)
Draft Front-End
due Thu 10/04 by 11:59 PM
Remember to review the Rubric before you submit!
Angular
In this assignment you will develop the frontend design of your web application.
(In a following assignment you will implement the full functionality of the
frontend.)
Our social networking web application will consist of three main views. When an
un-logged-in user navigates to our site they will be greeted with the "landing"
page, where they can log in or register a new account. This page we partially
developed in the rst
assignment. After a user has logged in, they will be taken to
the "main" page which contains the user's feed (consisting of the most recent
articles by the user and the users the current user is following), a list of the users
the current user is following, and a link to the "prole"
page which allows a user
to change their prole
picture and other pertinent information. These last two
pages we began developing in the second assignment.
Using raw CSS or a CSS Framework such as Bootstrap, Foundation, SemanticUI,
or others, beautify your web app. Your three pages should have a unied
look
and feel. You most certainly will want a navigation area common to your pages
which will contain, for example, the currently logged in user's displayName and
allow for the user to access their prole
page from the main page, as well as a log
out button.
We also add more features to our main page. We started with the user's feed,
which is a collection of posts, each of text or both text and an image. For this
assignment we no longer require the images to change and therefore do not
want the pause/resume buttons. We need a button to log the user out of our
application. We should be displaying the user's prole
picture somewhere on the
page, and in addition to this, each user will have a "status" headline. The status
headline for the current user should be prominently displayed. The headline is a
short one line message, such as "I'm learning JavaScript!" as opposed to an
"article" which can be longer in length and include posted images. As mentioned
above we will have a list of users being followed. This list will have user prole
pictures, the display names (or account names) of the followed users, and the
status headlines of the followed users. For now these should all be hard coded,
and we only need a few examples of each (i.e., 3 or more). The goal is to get an
idea of what the nal
working page will look like.
The le
structure of your web app should have separate directories for each
"section" of your application, see below for an example le
structure.
COMP
431/531
Web
Development
Syllabus Schedule Assignments Resources
Fall
2018
10/12/2018 Rice COMP 431/531 Web Development
https://www.clear.rice.edu/comp431/#/assignments 2/8
Then in our main.component.ts le
we would load that data:
Landing View Requirements
Registration elds
to make a new account as described in the previous
assignment. After validation (ala the previous assignment), the submit
button navigates to the main view
text elds
for a previously registered user to enter their account name
and password
A log in button. The button validates that there is text in the account
name and password elds
and then navigates to the main view. The
validation is for presense of text nothing more.
Main View Requirements
Button or link to navigate to the prole
page
Button or link to log out, which navigates to the landing page (index.html)
Each post has text, or text and an image (images do not change
periodically, no pause/resume buttons)
There should be at least 8 posts, at least four have images.
Each post has a button to leave a comment. But the button currently does
nothing.
{
"followers": [
{"name": "John Doe, "avatar": "https://photos/
{"name": "Jane Doe, "avatar": "https://photos/
{"name": "Joey Doe, "avatar": "https://photos/
]
}
const initialFollowers = http.get('../../assets/followers.
As you being transforming your three pages into a Angular site, focus on the
navigation of your site from page to page before implementing the details of
each page. To help with the transition to pulling data from the future backend
server, put your dummy data in json les
that are loaded into your application.
For example, suppose we create a le
followers.json for the initial followers
in the todo app:
In this way we separate our concerns between logic and data.
The "landing" view is the rst
view users will see when they navigate to your site.
It should have the following
The "main" view contains a collection of posts. These posts will be referred to as
"articles.
" For now we continue to use hard coded text and images for each
article as we did in the previous assignment. Each post should have text or both
an image and text.
In addition to a collection of posts displayed on the main view as the feed (which
can be single or multi-column), there are the following requirements
10/12/2018 Rice COMP 431/531 Web Development
https://www.clear.rice.edu/comp431/#/assignments 3/8
Each post has a button to edit the article. But the button currently does
nothing.
A search box, that lters
the displayed articles by text or author, but not
date or article id
There is an area for a user to add a new article, this can be an editable div,
a textarea, or some other tag. But the area currently does nothing on user
input.
There is a button to "post"the article which adds the article to the top of
the displayed feed and clears the text area. The new article is not
persistent.
There is a button to "cancel" writing the new article. This button should
clear the new article text.
There is a button to upload an image (Hint: input type='le').
But the
button currently does nothing after a le
is chosen.
The user's display name and prole
picture are shown. These can be hard
coded.
The user's status headline is shown. The status headline can be hard
coded.
There is a button to update the user's status headline. The button should
update the status headline, but on refresh there is no persistence
required, i.e., it can return to the original value.
Sidebar listing at least 3 followed users. The list should include a picture,
name, and status headline for each user. These can all be hard coded.
Text eld
and button to add a user to the following list. For non-empty
text, the follower is added to the sidebar with an arbitrary (i.e., hard
coded) image and headline message
Each followed user has a button to unfollow which removes that user
from the list
Prole
View Requirements
The current display name, email address, phone number, date of birth, and
zipcode are displayed
There are elds
to update each user piece of user information along with
a eld
to update the user's password. Birth date can not be changed.
Show the user's current prole
picture
There is a button to upload a new prole
picture. But the button currently
does nothing after a le
is chosen.
There is a button to update the user's values based on user input. The
button validates each of the elds
that are changed and then updates the
displayed value as in the previous assignment.
There is a button or link to navigate back to the main page
Example
The "prole"
view is where a user can update their prole
picture and account
information.
All of the views should be styled and "look good"-- your site will be visited and
commented on by members of the class.
10/12/2018 Rice COMP 431/531 Web Development
https://www.clear.rice.edu/comp431/#/assignments 4/8
Publication
# deploy to surge
npm run deploy
Whatto submit
{
"netid": "mjoyner",
"frontend": "https://mysite.surge.sh"
}
hw4-[github id]
|-- package.json
|-- README.json
|-- src
| |-- app
| | |-- app.component.css
| | |-- app.component.html
| | |-- app.component.ts
| | |-- app.component.spec.ts
| | |-- app.module.ts
| | |-- auth
| | | |-- auth.component.css Here's a wireframe for a site that satises
the above requirements. Remember
this is just an example, your solution does not need to look like this one.
In adition to submitting your repo for grading, for your site to be reviewed by
other members of the class you will need to publish it. We will be using Surge for
hosting our web applications (it's free).
If surge is not already in your package you will need to install it npm install
-S surge To deploy to surge:
Verify the look and feel and functionality of your site as hosted on Surge. Be sure
to update your site on Surge as the nal
step of your submission. You should not
further update your Surge deployment after you have submitted your
assignment. Note that if your site is not available when students go to review it
then you will not receive any feedback.
Again, the purpose of this assignment is to consolidate the layout, look, and feel
of the three pages of our web application. Other than simple navigation and
some validation which was mostly completed previously, there is no actual
functionality to much of the site.
Include in your hw4-[github id] submission a le
named README.json that has
the following contents (replaced with *your* values of course)
Be sure that you submit a correct json le
with these keys.
Your submission directory should look something like this (note that there is no
.git directory and no node_modules directory)
10/12/2018 Rice COMP 431/531 Web Development
https://www.clear.rice.edu/comp431/#/assignments 5/8
| | | |-- auth.component.html
| | | |-- auth.component.ts
| | | |-- auth.component.spec.ts
| | | |-- login
| | | | |-- login.component.css
| | | | |-- login.component.html
| | | | |-- login.component.spec.ts
| | | | `-- login.component.ts
| | | `-- registeration
| | | | |-- registeration.component.css
| | | | |-- registeration.component.html
| | | | |-- registeration.component.ts
| | | | |-- registeration.component.spec.ts
| | | | |-- registeration.service.ts
| | | | `-- registeration.service.spec.ts
| | |-- main
| | | |-- following
| | | | |-- following.component.css
| | | | |-- following.component.html
| | | | |-- following.component.spec.ts
| | | | |-- following.component.ts
| | | | |-- following.service.ts
| | | | `-- following.service.spec.ts
| | | |-- headline
| | | | |-- headline.component.css
| | | | |-- headline.component.html
| | | | |-- headline.component.spec.ts
| | | | |-- headline.component.ts
| | | | |-- headline.service.ts
| | | | `-- headline.service.spec.ts
| | | |-- main.component.css
| | | |-- main.component.html
| | | |-- main.component.spec.ts
| | | |-- main.component.ts
| | | `-- posts
| | | | |-- posts.component.css
| | | | |-- posts.component.html
| | | | |-- posts.component.spec.ts
| | | | |-- posts.component.ts
| | | | |-- posts.service.ts
| | | | `-- posts.service.spec.ts
| | |-- profile
| | | |-- profile.component.css
| | | |-- profile.component.html
| | | |-- profile.component.spec.ts
| | | |-- profile.component.ts
| | | |-- profile.service.ts
| | | `-- profile.service.spec.ts
| `-- assets
| |-- articles.json
| |-- followers.json
10/12/2018 Rice COMP 431/531 Web Development
https://www.clear.rice.edu/comp431/#/assignments 6/8
item pts
Merits [100]
README.json le
contains netid and URL to deployed frontend site 5
Frontend web app is deployed and functional 5
Single Page Application 2
At least three views: landing, main, and prole
2
Site has a consistent look and feel 2
Layout is responsive, for every view 2
Landing: Users log in using any username and password 2
Landing: Users are appropriately notied
of bad (i.e., missing) username
or password when logging in
2
Landing: Logging in takes user to the main view 2
Landing: Registration elds
with validation ala hw1 2
Main: User status headline and avatar image are shown on main page 2
Main: ability to update the status headline, e.g., text eld
and button,
headline is not persistant to reload
5
Main: layout of at least 8 posts (cards) 5
Main: layout is responsive to changing width of browser 5
Main: User's feed is displayed with newest articles rst
5
| `-- profile.json
`-- styles.css
The important thing about the above structure is that each portion of the web
app has it's own directory. We try to be modular in our design patterns. You are
not required to follow this directory structure exactly, but you are required to
have a modular layout. What is important is that there is structure and that the
structure makes good extensible and maintainable sense.
Note that if you begin to have a lot of styles then you are welcome to put your
CSS into the separate component ccs les:
main.component.css, etc.
Remember that all three of your pages should have the same "look and feel"
which is why placing the CSS in one stylesheet (i.e. styles.css) makes sense.
10/12/2018 Rice COMP 431/531 Web Development
https://www.clear.rice.edu/comp431/#/assignments 7/8
item pts
Main: each card contains author, timestamp, text, and at least four have
images
2
Main: each card has button to edit and another to comment, buttons
perform no action
2
Main: there exists an area to type a new article 2
Main: button to publish new article which adds new article to feed, but
is not persistent
5
Main: button to clear new article text area 2
Main: button to upload an image, opens le
picker, but otherwise does
not upload image
2
Main: Search bar lters
displayed articles by author and text, but not
article id or article date
5
Main: button or link to prole
page 2
Main: button or link to logout, navigates to landing page 2
Main: sidebar with at least 3 followed users, each has name, picture,
and headline
2
Main: text eld
and button to add new follower, adds name to list with
arbitrary headline and avatar
5
Main: each followed user has a button to unfollow, removes follower
from list, but is not persistent
5
Prole:
shows the user's current prole
values (email, zipcode, dob,
display the avatar picture)
5
Prole:
button to upload a new prole
picture, opens le
picker, but
does not perform upload
2
Prole:
update button validates each non-empty input eld,
date-ofbirth
is not updatable
2
Prole:
update changes the current values that are displayed 5
Prole:
link back to the main page 2
Demerits [67]
10/12/2018 Rice COMP 431/531 Web Development
https://www.clear.rice.edu/comp431/#/assignments 8/8
item pts
did not use Angular 25
unapproved module or JavaScript library 20
app crashes 10
all logic in component and none in service 7
refreshing the page when logged in should keep the user logged in 5
Total [100]
版权所有:留学生程序网 2020 All Rights Reserved 联系方式:QQ:99515681 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。