CS602 Module2 Assignment
Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit
CS602 Module2 Assignment
General Rules for Homework Assignments
• You are strongly encouraged to add comments throughout the program. Doing so will help your instructor to understand your programming logic and grade you more accurately.
• You must work on your assignments individually. You are not allowed to copy the answers from the others.
• Each assignment has a strict deadline. Assignments submitted after the deadline will have a penalty.
• When the term lastName is referenced in an assignment, please replace it with your last name.
Download and extract the starter template zip file, CS602_HW2_lastName. Rename the folder with your last name. Complete the corresponding JavaScript and View files in this folder.
Part 1 – net Module (25 Points)
Use the subfolder part1 and complete the following files. Copy the zipCodeModule_v2 .js from Module1 assignment. Complete the server application (server/server .js) and the client application (client/client .js) using the net module. The clients communicate with the server using the following commands:
• lookupByZipCode,<zip>
• lookupByCityState,<city>,<state>
• getPopulationByState,<state>
The server application listens for client connections and when the client command is received, processes the request by invoking the corresponding function available through the zipCodeModule. The server then uses JSON .stringify to send the result back to the client.
The client application reads commands from the user’s console in a loop and sends the commands to the server. When the data is received back from the server, the corresponding result is printed to the console.
Test the application with the server running in one window, and a client running in a separate window.
The sample output of the server and the client application is shown below. You can optionally use the colors module for colors in the output.
Part 2 – Express, Handlebars & REST Endpoints (75 Points)
Use the subfolder part2 and complete the following files. Copy the zipCodeModule_v2 .js from Module1 assignment. Complete the Express server application (server .js) and the corresponding views to do the following:
• GET request – /
Render the home view with a welcome message.
• GET request – /zip
If the request query id parameter is present, lookup the corresponding data and render the lookupByZipView.
Otherwise, render the lookupByZipForm .
• POST request – /zip
Lookup the corresponding data for the request body id parameter and render the lookupByZipView.
• GET request – /zip/:id
Should be capable of handling json, xml, and html requests .
Use the named routing id parameter and lookup the corresponding data. For html request, render the lookupByZipView.
• GET request – /city
If the request query city parameter and state parameter are present, lookup the corresponding data and render the lookupByCityStateView .
Otherwise, render the lookupByCityStateForm .
• POST request – /city
Lookup the corresponding data for the request body state and city parameters and render the lookupByCityStateView .
• GET request – /city/:city/state/:state
Should be capable of handling json, xml, and html requests. Use the named routing city and state parameters and lookup the corresponding data.
For html request, render the lookupByCityStateView .
• GET request – /pop
If the request query state parameter is present, lookup the corresponding data and render the populationView.
Otherwise, render the PopulationForm .
• GET request – /pop/:state
Should be capable of handling json, xml, and html requests
Use the named routing state parameter and lookup the corresponding data.
For html request, render the populationView.
TESTING THE APPLICATION (BROWSER)
Test the application for html requests using the browser. The default home page can be as shown below.
Click the Lookup By ZipCode link. The following form is displayed to the user.
If the user enters, say 02215 for ZipCode and clicks the Submit button, the above form is submitted with the POST request. The resulting view is as shown below:
If the user types the direct URL as shown below, the resulting view is as below:
Click the Lookup By City,State link. The following form is displayed to the user.
If the user enters, say BOSTON for City, MA for State, and clicks the Submit button, the above form is submitted with the POST request. The resulting view is as shown below:
If the user clicks on a particular zip code in the above view, the result is processed with a GET request as shown below.
In the above view, if the user clicks the last link, the result is processed with a GET request as shown below.
If the user types the direct URL as shown below, the resulting view is as below:
Click the Get State Population link. The following page is displayed to the user.
If the user clicks on a state, say MA, in the above view, the result is processed with a GET request as shown below:
If the user types the direct URL as shown below, the resulting view is as below:
TESTING THE APPLICATION (REST Endpoints)
The REST endpoints for JSON and XML data can be tested with curl or
Postman.
The curl outputs are shown below (If curl is not installed, see
https://curl.haxx.se/download.html)
Test the application for the JSON GET requests as shown below.
Similarly, test the application for the XML GET requests as shown below.
The Postman outputs for JSON GET requests are shown below. (For installation of Postman: https://www.postman.com/downloads/)
The Postman outputs for XML GET requests are shown below.
Submission: Export your CS602_HW2_lastName folder
containing all the relevant files as a zip file, and upload the zip file to the Assignment section.
2022-07-19