Build web applications using ajax technologies

Assignment Help Programming Languages
Reference no: EM13102275

Develop a better understanding of building web applications using Ajax technologies.

You are requested to use all Ajax techniques (JavaScript/HTML, DOM, XML, XMLHttpRequest, and XPath/XSLT) and PHP.

Tasks

The assignment is to develop a web-based selling and buying system called ShopOnline. ShopOnline allows sellers to list items for selling and buyers to bid for the items based on the English Auction strategy, which is a popular strategy used in many systems such as eBay, real-estate auction. Four components (registration/login, listing, bidding, and maintenance) of ShopOnline that must be completed for this assignment are specified in the sub-sections below. You may explore further functions such as detailed payment processing, notification service and password changing for fun later. For this assignment, you must use XMLHttpRequest for client/server communications.

2.1 Login/Registration

This component is used to allow an existing customer to login to the system or a new customer to register. The system maintains an XML document to record customer information. The specific functions of this component include

1) Design and create an XML document (customer.xml) for storing information of all customers. For each customer (regardless a seller or a bidder), you need to keep the system generated customer id, first name, surname, unique email address, and password (generated by the system for this assignment).

2) For an existing customer, the email address and password are expected and checked against the XML document (see Figure 1). If a customer is matched against the information stored in the XML document, the customer information will be remembered by the system for the following sessions (for either bidding or listing) before log-out and current auction items will be shown up (i.e., switch to the bidding page); otherwise, login failure message will be displayed for invalid email address or password.

2198_Building web applications using Ajax technologies.png

3) For a new customer, the system will check (a) all inputs including first name, surname, email address are given (shown in Figure 2), and (b) the email address is unique (i.e., it has not been used by other customers in the customer document). If there is problem with the above checking, the corresponding error message will be displayed; otherwise, the system will generate a customer id and password before sending the message.

Recipient: the provided <email address>

Subject: "Welcome to ShopOnline!"

Message: "Dear <first name>, welcome to use ShopOnline! Your customer id

Header: "From [email protected]"

When sending email from php using the mail() function, you should specify an envelope sender who will receive the bounce messages as shown below:

mail($to, $subject, $message, $headers, "-r [email protected]");

The system will also store all the required information for the customer into the XML document. If the XML document does not exist (i.e. when the first customer is registered in the system), create a new one. Finally, the system will show the successful registration information. Similar to login, the customer information will also be remembered by the system for the following sessions (for either bidding or listing) before log-out. is <customerID> and the password is <password>."

360_Building web applications using Ajax technologies1.png

Figure 2: Registration for New Customers

2.2 Listing

This component allows a customer (as a seller) who logged in the system to add an item into ShopOnline for selling. The inputs include item name, category, description, reserve price, buy-it-now price, start price (default 0), duration. Once you get these inputs, you need to validate the inputs, generate an item number, and add the item listing information together with the customer id of the seller and other system generated information in another XML document. The specific functions of this component include

1) Design an XML document (auction.xml) for storing information about all listed items. For each listed item, apart from the inputs from the seller, you also need to keep the customer id of the seller, system generated item number, the current system date and time that the item is put up for auction (startDate and startTime), the status (which takes in_progress, sold, and failed as value, and in_progress as the initial value), and the information about the latest bid which include customer id of the bidder and the current bid price (with the start price as initial value).

2) As shown in Figure 3, design the user interface to take a seller's inputs for an item. For category, you are encouraged to use a drop-down list with its item values retrieved from existing categories in auction.xml plus an "other" item allowing the seller to list an item belonging to new categories. However, you may choose to hardcode the drop-down list with a pre-defined list of category values. When the Listing button is pressed, the system will validate the inputs. In particular, the start price must no more than the reserve price and the reserve price must be less than the buy-it-now price.

1185_Building web applications using Ajax technologies2.png

Figure 3: Listing an Item for Selling

3) If there is no problem with the inputs, the system will generate an item number, startDate and startTime, and add them together with the customer id of the seller and the seller's inputs to the XML document. If the XML document does not exist (i.e. when the first item is entered in the system), create a new one. We assume that the auction process starts immediately after the item is listed so the status is set to in- progress. The current bid price is also set to the value of the start price. Finally, you need to return the generated item number, start date and start time to the client and display under the inputted data "Thank you! Your item has been listed in ShopOnline.

The item number is <itemNumber>, and the bidding starts now: <startTime> on <startDate>.

2.3 Bidding

This component allows a customer (as a bidder) to view all the listed items and to put in a bid. The specific functions of this component include 1) As shown in Figure 4, design the user interface to periodically (say, every 5 seconds) retrieve all items in the XML documents and neatly display them. Instead of displaying duration, startDate and startTime, show the time left. For each item, display the item number, name, category, description (first 30 characters), buy-it-now price, current bid price, and time left. Don't display the reserve price. For each displayed item, if the item has not been sold and the time left is greater than zero, add two buttons: Place Bid and Buy It Now button; otherwise, show either the item has been sold or the time expired.

(Note: if you implement these two buttons under all the displayed items, then the item number is required as part of the inputs. If you choose to implement it like this, a penalty of 2 out of 72 marks will apply)

2002_Building web applications using Ajax technologies3.png

Figure 4: Auction Items for Placing Bid or Buying It Now

2) Once the Place Bid button is clicked, a pop-up window will show up to take the new bid price as input, and the bid request with the new bid price, item number and bidder's customer id will be sent for processing. You need to check if the new bid for the item is acceptable (i.e. the new bid price is higher than the current bid price of the item and the item is not sold), and if so, update the item in the XML document with the new bid price and the new bidder's customer id, and send back an acknowledgement "Thank you! Your bid is recorded in ShopOnline." to the customer; otherwise send back a message "Sorry, your bid is not valid." to the customer.

3) Once the Buy It Now button is clicked, the buy-it-now request will be sent for processing with the item number and customer id. You need to update the item in the XML document by changing the current bid price by the buy-it-now price, the bid by the customer id, and setting the status immediately to "sold". Then you send back an acknowledgement "Thank you for purchasing this item." to the customer.

2.4 Maintenance

This component allows the broker to process items that are sold or expired before the current date and time, and to report the "sold" and "failed" items. It should only allow system administrators rather than normal customers to use these functions. In this assignment, we do not place this restriction.

1) Design the user interface that has two functions: "Process Auction Items" and "Generate Report".

2) If the "Process Auction Items" button is pressed, the system will check each item with "in_progress" status in the XML document to see if it is expired by calculating the time left (using current date/time, start date/time, and duration). If the time left is zero (or negative), then check the current bid price and reserve price to determine the status of the item ("sold" or "failed") and change the status of the item in the XML document accordingly. Once the processing is finished, display a message to show the process is complete.

3) If the "Generate Report" button is pressed, the system will retrieve all sold or failed items and compute the revenue (assume that you charge 3% of the sold price from each sold item and charge 1% of the reserved price from each failed item) from these items. We also choose to remove these items from the XML file. The list of the sold or failed items (all information about the item except the description) formatted as a table will be displayed. The total number of sold and failed items and the revenue will also be displayed under the table (You will find it easy to implement this function using XSLT).

Reference no: EM13102275

Questions Cloud

Determining probability and z-score : New car manufacturer claims that miles per gallon for gas consumption is mound shaped and symmetric with a mean of 25.9 mpg with a standard deviation of 9.5 mpg.
Test the claim of the mean speed of all cars : What would be the correct null and alternative hypothesis for the following situation: The sample has a mean of 72.3 mph and a standard deviation of 7.4 mph. Use a 0.05 significance level to test the claim that the mean speed of all cars is greate..
Explain issue-target population-future career-human service : In short explain the issue and target population you chose to research for assignments in this course and sum-up outcomes of research.
What is the lesson to be learned about writing : Illustrate what is the lesson to be learned about writing a business plan from Leo Burnett's statement, "Don't tell people explain how good you make the goods; tell them Explain how good your goods make them?"
Build web applications using ajax technologies : Develop a better understanding of building web applications using Ajax technologies and ShopOnline allows sellers to list items for selling and buyers to bid for the items based on the English Auction strategy, which is a popular strategy used in m..
What is the electric flux through the wall : A vertical wall (5.4 m 2.4 m) in a house faces due east. A uniform electric field has a magnitude of 164 N/C. This field is parallel to the ground and points 32° north of east. What is the electric flux through the wall?
Cutoff points for the three categories : Compute the two weights that give the cutoff points for the three categories.
Express one of the systems that siemens has created : Express one of the systems that Siemens has created which provides development opportunities for employees at work.
Evaluating the construct use in the research study : Please choose one of the probability constructs below. Then, identify a peer-reviewed journal article that highlights the construct. Compose a post in which you summarize and evaluate the construct's use in the research study.

Reviews

Write a Review

Programming Languages Questions & Answers

  Create a class which holds account number

Create a class named Loan which holds the account number, name of account holder, amount borrowed, term, and interest rate. Include methods to set values for each data field.

  Program to track which user is logged onto which computer

Write a computer program that could be used to track, by lab, which user is logged onto which computer.

  Creating loop to find number of items bought based on price

Make a block using a loop that will find the number of items that can be bought based on the price of the item and the total amount available to spend.

  Design implement application displays button-label on screen

Design an implement an application that displays a button and a label on a screen. Every time the button is pushed, the label will display a random number.

  Program to accept inputs from user beginning temperature

Physicists tell us that lowest possible temperature is absolute zero. Absolute zero is -459.69 degrees Fahrenheit. Accept inputs from user: a beginning temperature, ending temperature, and increment value (all Fahrenheit).

  Program calculate average number of days employee are absent

Write a program that calculates the average number of days a company's employees are absent. The program should have the following functions: a function called main that asks the user for the number of employees.

  Design program to ask user to enter amount of purchase

Design a program that will ask the user to enter the amount of a purchase. The program should then compute the state and county sales tax.

  Write program that computes loan payments

Write a program that computes loan payments. The loan can be a car loan, a student loan, or a home mortgage loan. The program lets the user enter the interest rate.

  Write program prompts to enter three sides of triangle

Write a program which prompts the user to enter three sides of a triangle and your program will display the three sides and its category of either equilateral, isosceles or all unequal.

  Instantiate button group object-add radio buttons to panel

Do the following to add radio buttons to panel: Declare three objects small, medium, and large of type JRadioButton. Instantiate button group object and add buttons to it.

  Write program in vb dot net for mortgage payment amount

Write down the program in VB.Net (not Web based) by using the loan amount of $200,000 with the interest rate of 5.75% and 30 year term.

  Write subclass for constructor accepting a double

Write a (non-abstract) subclass, ApartmentHouse, containing: a constructor accepting a double, passed to the superclass constructor, and an int used to initialize numberOfApartments

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd