Challenge Overview
Recently Topcoder has developed an Product Inventory Audit Web Application. First we developed a web crawler to pull the raw html from the site, and data extraction processes to parse data and put information into the Vertica database platform. We've also developed a REST API which allows clients to access the data in JSON format over HTTP and the first client for this service - a Product Inventory Audit Web application. HP is finding the extracted data quite useful and would like to expand the scope of the application. We have a command line application that retrieves product data information from Best Buy site.
In this challenge we need to update the REST API and the Web Application to support product reviews information from HP and other sites (Best Buy and Amazon sites).
- We'll provide the DB schema which supports saving product prices and product reviews from multiple sites. If you need to make additional changes to the Vertica data model to support the functionality requested then you'll need to provide the DDL scripts for your changes.
- You can populate product data into your local data by using the current data extraction application which is attached to this challenge and will be provided in the Code Document forums. It is straightforward to build and execute. Here is a set of raw HTML pages from the HP web site which will facilitate this. You'll need to upload at least a few products into the Product table so that your application knows which products prices and reviews to pull from Best Buy and Amazon.
- Then, you can use the command line application that retrieves the product data information from Best Buy site.
- Update the existing REST API
- Add a GET method to retrieve product reviews from all sites, or a selected site (HP, Best Buy and Amazon, or others in the future)
- The method should support paging and sort (by date, rating, username)
-
Update the existing Web application
-
Modify the /product-detail page
-
Add the reviews in a new tab, next to the "Accesories" tab.
-
Add a filter option similar to the one from /dashboard page that filters the reviews according to sites (HP, Best Buy, ...).
-
Add a sort option (by date, rating, username)
-
Display the review information using a similar look as the HP site (as for this product)
-
-
-
You can download a community edition of Vertica directly from HP: http://www.vertica.com/. You simply sign in for a free developer account. However, a direct Vertica installation requires a Unix/Linux server. The more straightforward way to standup Vertica is to use VMWare. VMWare also has free trials available. A server image can be found at my.vertica.com. But Topcoder is providing a recent disk image file for Vertica at the following link. This is a large download (~2 GB). Also attached to this challenge on Vertica/VMWare set up instructions.
https://drive.google.com/file/d/0ByjxTGykXQjAWkkwTWUzcXJucjQ/view?usp=sharing
JDBC Jar files for Vertica can be found here:
Here is a link to the raw HTML pages crawled from HP site with product information: https://drive.google.com/file/d/0ByjxTGykXQjAcDZGMk5hYnhHa1k/view?usp=sharing. You can use the data extraction application to extract the data from these pages and populate the Vertica database.
The applications should be extendable to support other sites.
Note: The winner must fix the Required comments from Review.
Final Submission Guidelines
- Upload all your source code in a zip file.
- Provide documentation for your application. It should contain complete build, deployment, and execution instructions.
- Screen sharing video is not required for this application.