Your Cart
Loading

CSCI 4800 Web Application Development Final Project

On Sale
$25.00
$25.00
Added to cart

We will complete our minimalist implementation of twitter in this final project.

You can add new fields, methods, etc. as needed, as long as you commit to the MVC architecture.


Notifications

After logging in, in the top menu, we have a notifications link/tab.

The notification menu will redirect us to a notifications.jsp.

This page complies with the general structure (header, footer, etc.)

This page lists

All the tweets in which this user is mentioned, since her last visit (login).

All users who started following this user, since her last visit (login).

For simplicity, you can show these two lists separately.

One list for new tweets, one list for new followers.


Add a column to user table, for example called last_login_time

After a user logs in, do a select on tweet and follow tables to find all records that occurred after user’s last login.

```sql

Select * from vwtwit where userID = ? And tweetDate >= ?

```


Hashtags

Each tweet can have hashtags.

Each hashtag starts with and does not have space.

Clicking on each hashtag such as x will redirect us to page hashtag.jsp

This page lists all the tweets in which x is mentioned.

You need to make two new tables for hashtags

```java

Hashtag (hashtagID, hashtagText, hashtagCount)

```

Stores all unique hashtags, along with their counts.

```java

tweetHashtag (tweetID, hashtagID)

```

Stores which hashtag is mentioned in which tweet.


Trending Hashtags

This will go in the “Trending topics” section.

From the Hashtag table find 10 topics with the most count.

Show these hashtags in the trending topics section: Bottom Left

Clicking on each hashtag in this section must take us to hashtag.jsp page, as mentioned earlier.


Each time a new tweet is inserted

For each hashtag x in the tweet

Check if x exists in Hashtag table.

If not, insert a new record for x

If Yes, update the count field for x

Insert a record in tweetHashtag table, using tweetID, and hashtagID


Follow

A user can follow another user.

For each user in the “Who to Follow” section, you will add a follow/unfollow button (depending on the case).

Using this button, a user can decide to follow or unfollow another user.

If the user is following a user, an unfollow button appears next to her name.

If a user is not followed, a follow button appears next to her name.

Clicking on a follow/unfollow button will finally return to the same home.jsp

For simplicity, you can list all users in the who to follow section.


To implement follow, you need to make one new table

Follow(userID, followedUserID, followDate)

A record in this table means that user with UserID follows user with ID followedUserID on datetime followDate


Salted and Hashed Password

Using the notion of salted and hash passwords

All passwords must be salted and hashed, using SHA-256

For this you need to add a column salt to user table

Instead of storing a cleartext password, you must store a salted+hashed password for the user.

Your login authorization must be changed to reflect this.

Your forgot password must also consider this change.



Home

In Homepage, a user sees twits from those she follows + those she is mentioned in + those posted by her

In home.jsp under user’s profile picture (Top Left)

The count for tweets, following and followers must be updated after each change.

For example: once you delete a twit, the twit count must be updated accordingly.



You will get a ZIP (19MB) file