联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp

您当前位置:首页 >> Java编程Java编程

日期:2020-02-25 09:35

COMP 2406 – F20 – A2 Due Friday, February 28

th at 11:59 PM

1

Assignment 2

Server-side programming and AJAX

Submit a single zip file called assignment2.zip.

This assignment has 100 marks.

You should read the marking scheme posted on cuLearn for details.

Assignment Background

In this assignment, you will develop a server capable of serving the order form

resources from assignment #1. The server will also be responsible for tracking some

sales data for each restaurant and providing that sales data in HTML format when

requested. All order data that your server stores for this assignment may be stored in

RAM. That is, there is no need for persistence. If your server is restarted, it is

acceptable to start from an empty set of orders. The only external modules you may

use for this assignment are template engine modules. For the parts that require a

template engine, you may use any available template engine you desire.

Before starting your design for the assignment, you are encouraged to read through the

entire specification. It is possible that later problems will inform your design decisions

and, by preparing in advance, you can avoid having to significantly refactor your code

as you progress through the assignment.

To begin this assignment, download the assignment2-basecode.zip file from

cuLearn. This zip file will contain a basic solution to assignment #1, as well as a

restaurants directory containing three .json files. Each of these files contains the

restaurant data for one restaurant in JSON format. Note that JSON within a file can be

easily read into your Node.js server and converted to a Javascript object using the

require directive.

The first part of this assignment will involve serving resources like those created

for assignment #1. You may use your own assignment #1 solution (recommended

if it meets the requirements), start from the files provided in the zip, or write a

new solution that meets the minimum requirements listed in the problem

description.

COMP 2406 – F20 – A2 Due Friday, February 28

th at 11:59 PM

2

Server Load (10 marks)

When your server loads, it must first read and store all relevant information contained in

the files within the restaurants directory. Your code should be written in such a way

that new files may be added to the directory containing additional restaurants'

information without requiring changes to your code. Your server should not start until

this initialization process has completed.

Home Page and Header (15 marks)

Your server must serve a home page in response to GET requests for the URL "/". At

minimum, this page is required to display a basic welcome message, though you are

free to add extra content. In addition, this page and all other pages within your

application must display a header containing links to the following resources:

1. The home page

2. The order form

3. The restaurant stats page

Order Form (30 marks)

When requested (e.g., through clicking the link in the header), your server must respond

with the resources required for the order form to function. As mentioned above, you can

modify your own resources from assignment #1, use the provided resources, or write

new resources. The requirements for the order form are listed below:

1. When the page loads, the list of restaurants used to populate the drop-down

menu must be requested from the server.

2. When a restaurant is selected from the drop-down menu or the drop-down

menu selection changes, the new restaurant data must be requested from the

server. The previously selected restaurant's data must be removed.

3. The page must provide, at minimum: a list of all menu items for the currently

selected restaurant, the price of each of those items, a way to add items to

the order, and a summary of the order contents/price. If the page does not

support this, there will be no way to test much of the server functionality and

your grade will reflect that.

4. When the Submit Order button is clicked, the order must be sent to the server

(i.e., using an XMLHttpRequest). Your server must process the received

order data and update any local state required to implement the rest of the

assignment requirements (e.g., updating restaurant order totals, etc.). Once

the request has been processed successfully by the server, and a response

has been received, the client's page must be reset to its initial state.

COMP 2406 – F20 – A2 Due Friday, February 28

th at 11:59 PM

3

Restaurant Statistics Page (30 marks)

When requested (e.g., through clicking the link in the header), your server must respond

with a page containing the following information for each restaurant:

1. Total number of orders received

2. Average order total (subtotal + 10% tax + delivery fee).

3. Name of the most popular item, or the name of one of the most popular if

there is a tie. The most popular item is the one that has sold the most units

(multiple units in an order should be counted multiple times).

You must use a template engine for this page. Solutions that do not make use of a

template engine will receive no marks.

Code Quality and Documentation (15 marks)

Your code should be well-written and easy to understand. This includes providing clear

documentation explaining the purpose and function of pieces of your code. You should

use good variable/function names that make your code easier to read. You should do

your best to avoid unnecessary computation and ensure that your code runs smoothly

throughout operation. You should also include a README.txt file that explains any

design decisions that you made, precise instructions detailing how to run your

server, as well as any additional instructions that may be helpful to the TA.

Recap

Your zip file should contain all the resources required for your assignment to run.

Submit your assignment2.zip file to cuLearn.

Make sure you download the zip after submitting and verify the file contents.


版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp