Starting from:

$30

CSP 584 Assignment #4

Assignment #4

Deliverable:
 Use the object-oriented design principles and utilize the
MVC architecture discussed in the class to produce an
object-oriented web-based enterprise application that is
reusable, flexible, and extensible.
 Use Servlets to implement the functionalities listed
below.
 Record 10 minutes demo of your assignment’s run using
screencast. The tool can be downloaded from this URL
http://screencast-o-matic.com/home
 Capture most important 10 screen-shots of your output
and save them in a file called output.pdf
 All source code and byte code shall be submitted.
 Readme text file that illustrates how to compile/install/run
your application
 Post your homework as a single zipped file on Blackboard
with the name “HW4_YourLastName,FirstName”
Important Notes:
 NO IDE to be used in any shape/form in the
implementation of this assignment
 Do NOT communicate or share your assignment with
others
High-Level Requirements:
Extend Assignment#3 to add the following features:
1. Search Auto-Completion
2. Graph database
Required Functionalities
Search Auto-Completion:
See below an illustration for a screen-shot of BestBuy web site for the
Search Auto-Completion feature
 Your auto-complete-feature must be implemented as follows:
When the app-server starts up, the Products are first read into a
hashmap from ProductCatalog.xml file and then stored in MySQL
database; follow this sequence.
 Since a store manager can insert/update/delete products, all of
these operations must be reflected in the hashmap and then
MySQL database
 All new code added for the auto-complete-complete feature shall
be placed in a class called AjaxUtility.java
Textfield is available
for users to enter search
keywords
Once the user starts typing search
keyword, a table of potential
keyword-matches will be displayed
1
2
Graph database:
Create a new table in MySQL with the name transactions that has the field
names listed in the attached CSV file. You must produce at least 30
transactions. Use random values for expected and actual deliver dates,
transaction status, order returned. Every time a customer places an order a
new transaction is created and inserted in the transactions table.
Create a CSV file for the Transactions table in MySQL and build the Graph
database application in Neo4J database engine.
Consider the following Labels for the Nodes:
 - Customer
 - Product
 - Manufacturer
 - Order
 - Delivery
 - Delivery_ZIP_CODE
 - etc.
Consider the following Types Relationship Types
- PLACED_ORDER
 - HAS_DELIVERY
 - MANUFACTURES
 - etc.
Write Cypher code to produce the output for the following:
1. Get the number of transactions that were NOT delivered on time for
every Delivery Zip Code
2. Get the number of disputed transactions and the list of customer
names for these disputed transactions for Delivery Zip Code
3. Get the number of disputed transactions for EVERY CUSTOMER that
has more that one disputed transaction
4. Get the top 3 customers that reported the maximum number of
returned orders
5. Get the number of returned orders and got review rating 1 for every
product category in every Delivery Zip Code 

More products