ProductReview Example: Difference between revisions

m
Changed from Web Programming to Web Applications category
No edit summary
m (Changed from Web Programming to Web Applications category)
 
(104 intermediate revisions by 4 users not shown)
Line 1: Line 1:
Here I will build a example application using the VDF Ajax library and note the steps taken underway.
= Introduction =


Existing examples (From AJAX library):
This page contains a description of an example project that can be used to study different implementation techniques using VDF as a backend.
*AJAX Contact Management
*AJAX Order Entry


 
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.
== Functionality ==
The overall goal is to be able to see what users think about a particular item.


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 a review of an item
 
*Overview supplied reviews from other users
The system should be implemented  as a web application, showcasing the possibilities in the VDF AJAX library.
 
==Application design ==
First you should familiarize yourself with these:
 
*[[Using DataDictionaries]]
*[[Using the AJAX Library]]
*[[Creating a AJAX Web application]]
*[[Creating a AJAX Form]]




=== Table layout  ===
The workspace is available here https://github.com/jacobandresen/ProductReview
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.
= [[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:
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")


*Item_DataDictionary
==User==
*Place_DataDictionary
*UserId (Numeric) 
*Purchase_DataDictionary
*LoginName (Ascii)
*Rating_DataDictionary
*FirstName (Ascii)
*UserInfo_DataDictionary
*LastName (Ascii)
*Password (Ascii)
*EmailAddress (Ascii)
*Rights (Ascii)
*StreetAddress (Ascii)
*City (Ascii)
*ZIPCode (Ascii)
*Country (Ascii)


=== Creating the webapp ===
==Token==
==== Session management ====
*UserId (Numeric)
users logging in
*TokenValue (Ascii)
*choose create new
*LastAccessed (Date)
*select "Web Object"
*select "AJAX Session Manager"
*Write "SessionManager" as Object name


==Shop==
*ShopId (Numeric)
*Name (Ascii)
*Type (Numeric)
*Description (Ascii)
*StreetAddress (Ascii)
*City (Ascii)
*ZIPCode (Ascii)
*Country (Ascii)


==== Creating the Web Objects ====
==Product==
*ProductId (Numeric)
*Name (Ascii)
*Type (Numeric)
*Description (Ascii)
*ShopId (Numeric)
*Price (Numeric)


create web objects for all data dictionaries.
==Review==
*ReviewId (Numeric)
*ItemId (Numeric)
*UserId (Numeric)
*Rating (Numeric)
*Comment (Ascii)


= Implementation =


==== Creating the web markup ====
[[ProductReview VDF AJAX implementation]]


== Problems ==
[[Category: Web Applications]]
*[[AJAX Updating Related forms]]
[[Category: Data Dictionaries]]