ProductReview Example: Difference between revisions

m
Changed from Web Programming to Web Applications category
mNo edit summary
m (Changed from Web Programming to Web Applications category)
 
(76 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Functionality ==
= Introduction =
The overall goal is to be able to see what users think about a particular item . As an added benefit - users can also share information about where to buy the particular items.


This page contains a description of an example project that can be used to study different implementation techniques using VDF as a backend.
In this example the overall goal is to be able to see what users think about a particular item . As an added benefit - users can also share information about where to buy the particular items.


To accomplish this, then users should be able to:
To accomplish this, then users should be able to:


*login
*login
*create a user account
*choose an item from a list
*choose an item from a list
*enter information about a known item
*enter information about a known item  
*supply a rating of an item
*supply information about the place where an item was bought.
*supply information about the place where an item was bought.
*supply a review of an item
*Overview supplied reviews from other users




The system should be implemented  as a web application, [[Using the AJAX Library]] .
The workspace is available here https://github.com/jacobandresen/ProductReview
 
== Data model ==
 
=== Table layout  ===
We want to store information about users, places, purchases and known items. A user should be either a normal user or an administrator. The other tables should hold sufficient information about the items purchased and how the users liked them.
 
Create these tables in the database builder and create the associated data dictionaries (by [[Using DataDictionaries]] )
 
The following data dictionaries  should now be available:
 
*Item_DataDictionary
*Place_DataDictionary
*Purchase_DataDictionary
*Rating_DataDictionary
*UserInfo_DataDictionary


= [[DataDictionary|Data Dictionaries]] =
We want to store information about users, places and known items. The other tables should hold sufficient information about the items and how the users liked them.


The following data dictionaries  should now be available (Note that attributes like "UserId" in Token implies a index  on UserId on Token and a relation to the table "User")


== Creating the webapp  [[Using the AJAX Library]] ==
==User==
*UserId (Numeric) 
*LoginName (Ascii)
*FirstName (Ascii)
*LastName (Ascii)
*Password (Ascii)
*EmailAddress (Ascii)
*Rights (Ascii)
*StreetAddress (Ascii)
*City (Ascii)
*ZIPCode (Ascii)
*Country (Ascii)


==== Webservice ====
==Token==
Create a AJAX WebService to call from the clientside VDF Ajax lib. This webservice will be responsible for handling the serverside calls.
*UserId (Numeric)
*TokenValue (Ascii)
*LastAccessed (Date)


this is the point of entry on the serverside (where information will be extracted from)
==Shop==
*ShopId (Numeric)
*Name (Ascii)
*Type (Numeric)
*Description (Ascii)
*StreetAddress (Ascii)
*City (Ascii)
*ZIPCode (Ascii)
*Country (Ascii)


==== Session management ====
==Product==
*ProductId (Numeric)
*Name (Ascii)
*Type (Numeric)
*Description (Ascii)
*ShopId (Numeric)
*Price (Numeric)


*UserLogin: checking if the supplied password is correct. Use UserInfo_DD
==Review==
*HasRights: does the logged in user have the rights to perform the chosen function. Use UserInfo_DD
*ReviewId (Numeric)
*ItemId (Numeric)
*UserId (Numeric)
*Rating (Numeric)
*Comment (Ascii)


==== Creating the Web Objects ====
= Implementation =
*item.wo : handling information about items.
*userinfo.wo : handling information about users
*place.wo: handling info about places
*purchase.wo: handle information about places
*rating.wo: handle information about ratings


The Web Object should use the corresponding data dictionaries
[[ProductReview VDF AJAX implementation]]


==== Creating the web markup ====
[[Category: Web Applications]]
*Item.asp: a list to choose items from
[[Category: Data Dictionaries]]
*Ratings.asp: a list of items with detailed ratings. show details about related users and items.
*Place.asp: information about a place where items can be bought.
*RateItem.asp: a form to supply rating information about a particular item.
*Purchase.asp: information about what items users has bought at what place