$29
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 “HW2_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 #1 for the online retailer SmartPotables to add the following features:
All accounts login information must be stored in SQL database (MySQL)
All Customers transactions/orders must be stored in SQL database (MySQL)
All order updates to insert/delete/update orders must be reflected in the MySQL database; not only the HashMap objects
Customer must be able to submit product reviews
Product reviews must be stored in NoSQL database (MongoDB) Add Trending & Data Analytics feature (detailed below)
All new code added for MySQL shall be placed in a class called MySQLDataStoreUtilities.java
All new code added for MongoDB shall be placed in a class called MongoDBDataStoreUtilities.java
Required Functionalities:
Extend Assignment #1 to use MySQL and MongoDB database engines to support the following functionalities.
Use MySQL to store all accounts login information
Use MySQL to store All Customers transactions/orders
Extend Assignment #1 in order to allow the customer to write and submit a Product Review online that has the following form:
ProductModelName: Samsung Galaxy 6
ProductCategory: phone
ProductPrice: $499
RetailerName: SmartPortables
RetailerZip: 60616
RetailerCity: Chicago
RetailerState: IL
ProductOnSale: Yes
ManufacturerName: Samsung
ManufacturerRebate: Yes
UserID: whksa8
UserAge: 24
UserGender: Male
UserOccupation: accountant
ReviewRating: 4
ReviewDate: 12/15/2015
ReviewText: It has excellent video/audio clarity, however, it overheats after 5 hours of use
Extend Assignment #1 to add Trending link on the left navigation bar that the user can use to see trends for sold products
Once the user clicks the Trending, the user must be presented with :
Top five most liked products
Top five zip-codes where maximum number of products sold
Top five most sold products regardless of the rating
Product Review Form:
The product review Form has the following fields:
ProductModelName: Samsung Galaxy 6
ProductCategory: phone
ProductPrice: $499
RetailerName: SmartPortables
RetailerZip: 60616
RetailerCity: Chicago
RetailerState: IL
ProductOnSale: Yes
ManufacturerName: Samsung
ManufacturerRebate: Yes
UserID: whksa8
UserAge: 24
UserGender: Male
UserOccupation: accountant
ReviewRating: 4
ReviewDate: 12/15/2015
ReviewText: It has excellent video/audio clarity , however, it overheats after 5 hours of use
Bonus Features
if you want to earn EXTRA points
(50% Bonus points for this assignment)
The bonus points can be considered for grading ONLY if the functionalities listed above are completely implemented.
No hard-coded queries will be accepted. You are allowed only to extend the required functionalities listed above to implement the bonus features listed below. If you HARD-CODE the queries in your implementation, you will get ZERO credit for the bonus feature.
For the Data Visualization/Trending feature in requirement #12 listed below, consider Google charts documentation at the following URL:
https://developers.google.com/chart/interactive/docs/gallery/barchart
Requirements:
Add the Data Analytics link that is accessible only to the Store Manager
The Data Analytics link will allow the store manager to perform different analytical queries.
The following are only some examples (a sample of queries)
that your implementation must be able to answer (Please do NOT hard-code those queries in your source):
Print the list of all products and their ratings
Print a list of reviews where rating greater than 3
Get a list of products that got review rating 5 and price more than thousand
Print a list of how many reviews for every product
Get the list of reviews for shoppers in Chicago
Find highest price product reviewed/sold in every city
Find highest price product reviewed/sold in every zip-code
Get the top 5 list of liked products for every city
Print a list of reviews grouped by City
Print a list of reviews grouped by zip-code
Get the total number of products reviewed and got Rating 5 in Every City
Provide a Trending (Data Visualization) button that shows a Bar Chart for the total number of submitted reviews of every product for top 3 most liked products in every city. (x-axis is the total number of reviews submitted, y-axis is the city name, the 3 bar charts per city will represent the 3 top products per city along with total number of reviewes)
Print the median product prices per city
Get top 5 list of most liked and expensive products sorted by retailer name for every city
Get the top 5 list of most Disliked products sorted by retailer name for every city
Get the top 5 list of most Disliked products sorted by retailer name for every zip-code
Get the top 2 list of zip-codes where highest number of products got review rating 5
Get a list of reviews where reviewer age greater than 50 and the list is sorted by age in every city
Get the top 5 list of most liked products sorted by manufacturer name for every city
20. Search reviews text for keywords (pattern-matching) and print the list of reviews that have the matched keywords. For example, print the list of reviews that have “ XBOX overheat” keywords in the review text