web代做 | javascript | project代写 | html作业 | sql | php | database作业 – CS 6400 database Project: CorkBoardIt

CS 6400 database Project: CorkBoardIt

web代做 | javascript | project代写 | html作业 | sql | php | database作业 – 该题目是一个常规的php的练习题目代写, 涉及了web/java/html/sql/php/database等代写方面, 这是值得参考的project代写的题目

php代写 代写php web代做 代做web web开发

CS 6400 database Project: CorkBoardIt

Fall 2018 project Overview The purpose of this project is to analyze, specify, design, implement, document, and demonstrate an image management system called CorkBoardIt. The project will proceed in three phases as outlined in the Classical Methodology for Database Development: Analysis & Specification, Design, and Implementation & Testing. The system should be implemented using a fully relational, distinct (separate from your application) Database Management System (DBMS) that utilizes tables and supports standard sql queries. Under no circumstances may you use a tool that automatically generates SQL, automatically maps programming objects into the database, or a non-tabular system that utilizes SQL as a data manipulation language. We will provide further details regarding acceptable project stacks separately.

The three phases of the project cover the following work-processes from the Classical Methodology for Database Development. The due dates for each phase are available on Canvas.

Overview of CorkBoardIt The Internet enables the sharing of media and ideas in a way like never before. This semester you will create a database to support a collaborative Internet application called CorkBoardIt. Just like physical cork boards that you might have on the wall of your bedroom, CorkBoardIt is an online forum for creating CorkBoards, filling them with pictures (called PushPins), and sharing them with your friends. Of course, this is not a new idea. Similar sites such as pinterest.com already exist and have very large communities of users. Obviously, we will not have time to implement a feature-rich and robust site like Pinterest. CorkBoardIt is a simplified site with support for the most important features of an image organization and sharing site: users, CorkBoards, PushPins (to attach a picture to a CorkBoard), and the ability to follow other users, watch CorkBoards, and comment on the images on CorkBoards.

The following sections contain a functional description of CorkBoardIt along
with some screen mockups. The user interfaces depicted in this project
description merely serve as examples to guide your thinking and may not match
the specification text. In the event a figure conflicts with the specification, then
please follow the specification text. In addition, your projects interface may
look completely different, and that is fineeven encouraged! For example, you
might choose to split up some interfaces we have shown on a single screen into
multiple screens. You might choose to use popup windows instead of
refreshing the page. A complete reorganization of the user interface is
acceptable as long as your application supports the same functionality as
described below. You may implement the project as a traditional standalone
application (e.g., using  java GUIs) or as a  web application (e.g., using a web
scripting language like  php or JSP). Your project is not graded on its aesthetic
appeal, but on its functionality.

Because this is a prototype system, there is no interface for registering new users. Instead, user information will be loaded by the database administrator behind the scenes. During phases I and II of the project, you should define the appropriate database structures to manage the user information mentioned above.

Logging In Figure 1 shows the CorkBoardIt login screen. All users are identified by his or her email address. Each user also has a 4-digit PIN. You do not need to worry about encrypting or hashing the PIN when it is stored in the database. Providing a valid email address and PIN combination logs the user into the system. If the user provides invalid login credentials, an error message should be displayed, and the user should be returned to the login screen.

Login
[email protected]
CorkBoardIt
Explore.
Share.
Inspire.
Email
PIN
Login
Figure 1 - CorkBoardIt Login Screen

Home Screen After a user logs in to CorkBoardIt, he or she is shown a personalized home screen (Figure 2 ). At the top of the home screen, the users name is displayed. This screen has two major sections: a section showing recent CorkBoard updates and a section listing CorkBoards that the user owns. The home screen contains a search box for finding PushPins (this is covered in the section entitled Searching for PushPins). There is also a Popular Tags button that shows a list of the most popular tags. This is covered in more detail in a later section.

Recent CorkBoard Updates The top section of the home screen lists CorkBoards that have been recently updated with the last updated CorkBoard at the top. A CorkBoard is updated whenever a new PushPin is added to the CorkBoard. Other events such as writing comments and liking a PushPin do not cause a CorkBoard to be updated. Because there might be thousands of users in the system, the system should limit those CorkBoard updates by only showing CorkBoards that the user owns , CorkBoards that the user is explicitly watching, and all CorkBoards that are owned by another user that the logged-in user is following.

  • Users may watch CorkBoards they find interesting. A watch button appears on the View CorkBoard screen (see Figure 5 ). Clicking this button adds that CorkBoard to the users watch list.
  • Users may follow other users. For example, if another user has similar interests to the current user, then he or she may choose to follow the other user. This implies that all

CorkBoards from the followed user can appear in the current users Recent Updates list. A follow button appears on the View CorkBoard and View PushPin screens (Figure 5 and Figure 7 ). Clicking this button adds that user to the current users follow list. Also, in order to keep the home page a reasonable size, only the last four recently updated CorkBoards should be shown. It is possible that there are less than four recent updates to be displayed. If there are no recent updates, then display a message that says, No Updates.

CorkBoardIt Home Page
Search description, tags and CorkBoard category
CorkBoardIt
Explore. Share. Inspire.

L fo as ll t o f w ou e r d (^) C o o n r l k y B) olisatredd u ipnd oartdeesr ( w w a it t h c h la e t d e (^) s o t r o (^) ne first. Foowr (^) neearc, ha,n ldis tt (^) hthee d naatam/tei (^) mofe t ohfe t Choe rlkaBsto Paruds,h tPhine (^). Updated by Sybil Crawley on January 17 , 2012 at 1 : 49 PM Pools Gardens I Love Updated by Michael Crawley on January 17 , 2012 at 8 : 05 PM Birthday Ideas (private) Updated by Joseph Molesley on January 16 , 2012 at 4 : 32 PM Vacation Spots Updated by Elsie Hughes on January 14 , 2012 at 6 : 27 AM My CorkBoards Home Page for Michael Crawley PushPin Search Recent CorkBoard Updates Cats and their Antics with 22 PushPins Gardens I Love with 8 PushPins Vacation Ideas (private) with 14 PushPins Add CorkBoard ATh lies tl (^) iostf iCs osrokrBteoadr adlsp (^) hoawbneetdic (^) ablyly t hbey utisteler.. Fnourm ebaechr oCfo PrkuBshoPairnds, oanls oth laistt bthoea (^) rd. SChoorwkBso tahred Asdcrde (^) en. SRheoswults (^) sS secarrecehn Ttoh es (^) hCoowrk tBhoea Crdo (^) rtkitBleo (^) aisr (^) dh yspcreerelinnk. ed Pursievra tteo CenotrkerB oa apradsss rweoqurdir.e the Popular Tags Shows a list of the most popular tags Figure 2 – CorkBoardIt Home Screen CorkBoards listed in the Recent Updates section should be sorted with the most recently updated CorkBoard appearing first. For each CorkBoard, list the title, owner, and date and date/time of the last PushPin.

time of the last update (i.e., when the last PushPin was added to the CorkBoard). The CorkBoard title should be hyperlinked. Clicking on the title shows the View CorkBoard screen (Figure 5 ). Some CorkBoards might be private. Private CorkBoards should be indicated in the list. The user must enter a password (see Figure 3 ) in order to view a private CorkBoardeven if it is a CorkBoard that he or she owns (see the section entitled Adding CorkBoards for more info about public and private CorkBoards).

Password Protected
The CorkBoard you are
trying to view is private.
Please enter the CorkBoards
password to continue.
Password
Cancel OK

Figure 3 – Password Protected CorkBoard My CorkBoards The second section on the home page lists CorkBoards owned by the current user. The list of CorkBoards should contain the title of the CorkBoard and the number of PushPins currently on the board and should be sorted alphabetically by the CorkBoard title. As above, private CorkBoards should be clearly indicated in the list. The CorkBoard title is hyperlinked to the View CorkBoard screen. If the user does not own any CorkBoards, then display a message that says, You have no CorkBoards. A button that says Add CorkBoard should appear in this section. Clicking it shows the Add CorkBoard screen (Figure 4 ) which allows the user to you guessed itadd a CorkBoard.

Adding CorkBoards When the user clicks the Add CorkBoard button, a form like Figure 4 is shown. This form collects some basic information about the new CorkBoard including its title, category, and visibility. All three fields are required.

Add CorkBoard
Gardens I Love
Home & Garden
Enter Password
Title
Category
Add
Add CorkBoard
Visibility Public
Private

Ppraisvsawteo (^) rCdo.r AkBnoyaorndes warheo pwroistheecst etdo bviye (^) wa (^) the CorkBoard must know the password. Figure 4 – Add CorkBoard Screen The title may be anything the user chooses, although your system should limit this field to a reasonable length so that titles display well in headers. The list of categories is fixed and managed by the database administrator behind the scenes. (In other words, no user interface for managing categories is needed at this time.) The initial list of categories supported by CorkBoardIt should include:

  • Education
  • People
  • Sports
  • Other
    • Architecture
    • Travel
    • Pets
    • Food & Drink
      • Home & Garden
      • Photography
      • Technology
      • Art

When populating the dropdown list, sort the categories alphabetically. Although the list of categories cannot be changed by the user, it should be easy for the database administrator to add new categories to the database without having the change the code of your application.

The visibility field indicates that there are two types of CorkBoards: public and private. The basic distinctions are as follows:

  • Public CorkBoards are visible to everyone on CorkBoardItthat is, the PushPins on public CorkBoards may appear in the search results of any user. Also, other users can watch public CorkBoards.
  • Private CorkBoards are protected by a password. The password field is required and is set on the Add CorkBoard screen if the user chooses the private option. CorkBoard passwords may be stored in plain text. You do not need to encrypt, hash, or otherwise secure the password when storing it in the database. Private CorkBoards

cannot be watched by anyone. PushPins on private CorkBoards never appear in anyones search results. (Note that private CorkBoards may still be listed in a users Recent Updates list if (1) the user owns the CorkBoard or (2) someone the user is following owns the CorkBoard). When the user clicks the Add button, all data on the form should be validated and a new CorkBoard should be created with the current user set as its owner. Then, the View CorkBoard screen is shown (Figure 5 ) so the user can add PushPins.

Viewing CorkBoards CorkBoards contain a collection of PushPins. Each PushPin has a link to an image somewhere on the Web. The View CorkBoards screen shows a thumbnail (i.e., small view) of each PushPin image as well as basic information about the CorkBoard: the owners name, the title, when it was last updated (i.e., when the last PushPin was added), the category, and the number of users currently watching the board. Figure 5 shows a screenshot of the View CorkBoard screen. The user may take several actions from this screen:

  • The thumbnail images are hyperlinked to the View PushPin page (Figure 7 ).
  • If the current user owns the CorkBoard, then an Add PushPin button should be visible. Clicking this button shows the Add PushPin screen (Figure 6 ).
  • If the current user is not the owner of the CorkBoard, then he or she may choose to follow the user who owns the CorkBoard. A follow button should appear beside the owners name. If the current user clicks follow then the CorkBoards owner is added to the current users follow list.
  • If the current user is not the owner of the CorkBoard and the CorkBoard is public, then he or she may choose to watch this CorkBoard. A watch button should appear somewhere on the page. If the current user clicks watch then the CorkBoard is added to the current users watch list.
View CorkBoard
CorkBoardIt
Explore. Share. Inspire.
Gardens I Love
Last Updated January 16 , 2012 at 11 : 57 AM
Michael Crawley Home^ &^ Garden
This CorkBoard has 8 watchers. Watch

Aatn (^) dth leas tto upp sdhaotwed t hdea (^) toew/tnimere, toitf le, the CorkBoard. Category of the CorkBoard Tthhee CwoartkcBho baurdtt iosn o iws enenad bblye ds/ovmiseib ules (^) eifr (^) oCtohrekrB tohaardn (^) itsh ne (^) olot gpgreivda (^) tine (^) .u Nseor oanned ctahne wthaetyc hh (^) apvreiv tahtee CpoarskswBooardrd.s, even if Ihmypageerl (^) itnhkuemdb ton atihlse (^) Varieew (^) PushPin screen. Ebnya tbhlee dc (^) uifr (^) rCeonrtk uBsoearr.d S ihso owwsn tehde (^) Add PushPin screen. Add PushPin Follow Figure 5 – View CorkBoard Screen^ Regarding the thumbnail images, because this is only a sample application, you are NOT required to implement any image processing functionality outside of simply displaying the images. For web-based applications, this can be done with the html tag: . In particular, you are not required to download images and post-process them into smaller sizes. Thumbnail-size images can be shown by adjusting the height and width parameters of the img tag. Alternatively, you can simply assume that the user will only choose images that are small enough to display comfortably on the CorkBoard screen. Adding PushPins to CorkBoards After a user creates a CorkBoard it will be emptyi.e., it contains no PushPins. From the View CorkBoard screen, if the CorkBoards owner clicks the Add PushPin button then a screen like

Figure 6 is shown to the user. This Add PushPin form contains three fields: the URL of an image on the Web, a brief description (less than 200 characters), and a set of tags. URL and description are required, and tags are optional. Tags are small words or phrases used to describe the PushPin. An individual tag should be 20 characters or less. Although only a single text field is given, multiple tags can be entered if they are separated by commas. Tags themselves cannot contain commas but may have any other character. Your application should parse the string, extract each of the tags and store them individually in the database. Tags are case-insensitive.

Add PushPin to CorkBoard
http://inmyownstyle.com/images/ 2011 / 06 /Candle-La
Great looking lantern
lantern, light, garden, stylish

URL

Description
Add
Add PushPin
to Gardens I Love
Tags

Taangds p aarres (^) esedp bayr attheed a bpyp cliocamtimonas. Tags are optional. Figure 6 – Add PushPin Screen^ After the user clicks Add, the form should be validated, the PushPin added to the CorkBoard, and the user should be returned to the View CorkBoard screen. For simplicity, your application can assume that the URL is publicly accessiblei.e., you do not have to check for File Not Found errors. However, you should check to make sure that the URL is correct, and the filename has a known image format extension. Your system should support the file extensions. jpg ,. png , and. gif at a minimum, but others may be supported as well. (Be aware that some websites prevent inline linking and will not serve up images that have been hyperlinked. You do not need to detect or prevent for this.) Viewing PushPins The View PushPin screen is shown in Figure 7. At the top of the screen, the owner of the CorkBoard on which this PushPin appears should be displayed along with the date and time

that the PushPin was added and the title of the associated CorkBoard. The image itself should be displayed, along with the website address it comes from, followed by the description and the list of tags provided by the user.

View PushPin

Enter Comment

CorkBoardIt

Explore. Share. Inspire.

Sybil Crawley

Pinned January 16 , 2012 at 11 : 29 AM on Pools

I love the tile work around this pool.

from poolswimmings.com

ComPomste^ nt

Mary Crawley Is that a hot tub in the corner?

Sybil Crawley Why^ not!?

Follow

Charles Carson, John Bates, and Anna Smith

Tags: architecture, pool, stone

Iomriagginea ils s hityep.erlinked to

Tags sorted alphabetically

Dpiantnee adn adn tdim thee w thitelen ofifr tsht (^) e

CorkBoard.

Owwhincehr i omfa tghee iCno priknBnoeadr.d C tloic (^) king tthoe t (^) hFeo lFloowllo bwu tlitsotn. adds the user Claotmesmt ceonmtsm soerntte odn w tiothp (^).

Hscyrpeeernlinked to CorkBoard

Like!

Figure 7 – View PushPin Screen^ Like many web applications today, CorkBoardIt encourages collaboration between users in two ways:

  • users can like other users PushPins, and
  • users can comment on PushPins. A like button should appear somewhere on the screen and it should be enabled if the PushPin is owned by another user. Your application should track which users like which

PushPins. If the user already likes the PushPin, then the button should read Unlike to allow the user to change his or her mind. Note that Unlike does not mean Dislikei.e., there are only two possible states. It is possible for the user to change his or her mind multiple times and the application should not prevent this. A user cannot like his or her own PushPins and your application should prevent this.

In addition to liking PushPins, users can make comments on PushPins. The list of comments is sorted by the date and time that the comment was added with the latest comment appearing first. For each comment, list the name of the user who made the comment and the text of the comment. It is not necessary to display the date and time with the comment, but you may include it if you desire. A text box is provided so that the user can add a new comment. Anyone who can view the PushPin can make a comment on the PushPin (including PushPins on private CorkBoards). A user may comment on the same PushPin multiple times. A user can also comment on his or her own PushPin. Comments cannot be deleted. Searching for PushPins From the home screen, users can search for PushPins. A single text box is provided as shown at the bottom of Figure 2. After entering some text, preferably a single word, the user clicks PushPin Search to execute the search. A results page is shown like the one in Figure 8.

PushPin Search Results
CoExprlkoreB. Sohaare.r IndspIirte.

Tdhees (^) crreipstuilotsn (^) ,l itsht (^) ein CcolurdkBeso (^) aeradc hit Pisu oshnP, iannsd (^) tohne porwivnaeter (^) Cofo trhkBeo CaorrdksB aoraer dn.e Pveursh Pins included in the search results. PushPin Search Results PushPin Description CorkBoard Owner Cedar trees by the lake Backyard Ideas Joseph Molesely Dream garden Backyard Ideas Joseph Molesely Great looking lantern Gardens I Love Michael Crawley Rbey sdueltssc (^) rairpet (^) isoonr.t Tehd (^) ea PlpuhsahbPeinti cally dtheesc Vriipewtio Pnu issh hPyinp esrclrinekeend. to show Figure 8 – Search Results Screen^ Your application should search three fields for the text entered by the user: the PushPin description, all of the PushPins tags, and the category of the CorkBoard associated with the PushPin. If any of these fields contains the search text, then the PushPin should be listed on the results screen. There is one exception: PushPins on private CorkBoards are never displayed in the search results screen, even if the user owns the private CorkBoard or knows the password.

The search results should include, for each PushPin, the description, the associated CorkBoard title, and the owner of the CorkBoard. The results list should be sorted alphabetically by PushPin description. The description should be hyperlinked to display the View PushPin screen (Figure 7 ) if clicked.

Popular Tags Your application should also support a popular tags feature that lists the top five tags with the most PushPins. The home page should have a button that directs the user to this page. The list should be sorted by number of PushPins with the highest appearing first. A column called Unique CorkBoards should appear which lists for each tag the total number of CorkBoards that have a PushPin with the given tag. If multiple PushPins on a CorkBoard have the same tag, that CorkBoard should only be counted once. If the user clicks on a tag name, your application should perform a search with the tags name and direct the user to the Search Results page (Figure 8 ).

Popular Tags
CorkBoardIt
Explore. Share. Inspire.
Popular Tags
Tag PushPins Unique CorkBoards
face 55 22
atlanta 42 24
beach 20 18
art 14 4
family 12 2

Rtaegs ualtt st (^) haer et (^) ospo.r tCelidc (^) kwinitgh omno as tt (^) apgo pular executes a search for that tag. TChoirsk fBieoladr idss tthhea nt uhmavbee trh oef tuangiqui.ee (^) ., if a CfoarckeB,o aitr ds (^) hhoausl (^) dtw oon (^) lPyu bseh Pcoinusn wteitdh othncee t.ag Figure 9 – Popular Tags Screen Popular Sites You should also have a feature that displays the sites that have the most PushPin links and the count of those PushPins, also accessible from the home page. (The site address would be defined as anything after http:// or https:// up to, but not including, the first forward slash after the site address.) The list of site addresses should be ordered by number of PushPins with the highest appearing first.

Figure 10 - Popular Sites Screen

CorkBoard Statistics To gauge the popularity of CorkBoardIt, another feature will list in a tabular format by user:

  • The number of public CorkBoards he/she has
  • The count of PushPins across all public CorkBoards for that user
  • The number of private CorkBoards he/she has
  • The count of PushPins across all private CorkBoards for that user This list should be ordered by the following criteria: first, by the number of public CorkBoards each user has, and second by the number of private CorkBoards each user has. The current users row should be printed with red text, so they can quickly see how they rank. Like the previous two screens, this should be accessed from the main menu.
Figure 11  CorkBoard Statistics
Popular Sites
CorkBoardIt
Explore. Share. Inspire.
Popular Sites
Site PushPins
http://www.gatech.edu 12
http://www.facebook.com 9
poolswimmings.com 3
http://www.amazon.com 2
CorkBoard Statistics
CorkBoardIt
Explore. Share. Inspire.
CorkBoard Statistics

(^) User Public CorkBoards Public PushPins Private CorkBoards Private PushPins Sybil Crawley 10 24 4 45 Joseph Molesley 10 15 2 12 Michael Crawley 7 8 0 0 Elsie Hughes 2 10 8 32 Mary Crawley 2 12 0 0

Document Version Info

Version Notes Date
1.0 Original version 9/3/