Challenge Overview

Project Overview

Detect IT is a web application that is being developed by the World Wildlife Fund that allows comparison of trade data to identify discrepancies in reporting of imports and exports between countries which may be a sign of illegal activity.  For example: if Russia reports significantly less exports of king crab to South Korea than South Korea reports in imports of king crab from Russia, this suggests there may be some illegal trade occurring in king crab between the two countries. 

This challenge is part of the Living Progress Build Challenge Blitz program.

Competition Task Overview

This is a continuation of the previous challenge, in which we tried to implement all the real-time search features. We got a pretty good submission but there are still issues / missing features that need to be completed as the challenge was large in scope.  The goal of the challenge is to complete the real-time search page, display results and charts in a consistent and appealing way, and to be able to save, retreive, and execute saved real-time search queries.  

In general, the same requirements from the previous challenge still apply to this challenge, we need to make all these features work as described with special attention paid to the following issues:

1. Implement map feature - Importer Countries should be blue and Exporting Countries should be green.  Map should display country name along with the weight in KG or trade value of the commodity currently being traded.
2. Implement minified charts on query list.  Your implementation should to reuse the code from data comparison page to minimize code duplication.
3. Implement key findings.  Here are the status that should be displayed in this section of the page:

a.  The aggregated total and average weight per year in KG of the Imports over the time period requested.
b.  The aggregated total and average value per year in USD of the Imports over the time period requested.
c.  The aggregated total and average weight per year in KG of the Exports over the time period requested.
���d.  The aggregated total and average value per year in USD of the Exports over the time period requested.
e.  The aggregated total of the difference for all the years and the average difference in weight per year between Imports and Exports over the time period requested.
f.   The aggregated total of the difference for all the years in trade value and the average difference in trade value in USD per year between Imports and Exports over the time period requested.

4. Add unit tests for frontend
5. Implement country code auto-completion just like http://54.218.19.28/
6. Implement commodity auto-completion just like http://54.218.19.28/ (if this hasn't been completed yet).  User's should be able to search by commodity name.
7. Implement this: each saved query has a panel with a slightly reduced size picture of the chart generated above.
8. Implement the query-list page so it has 4 filter parameters: query-name, importer, created-on, last-updated-on. Right now only query-name is supported.
9. Update the query-list fetch api so it supports paging.
10. Fix the this: on the search-data page, enter the following inputs:

year: 2003 -> 2015
commodity: 030211
importer: USA, Puerto Rico and US Virgin Islands
exporter: United Kingdom
Then click "Run Query", it redirects me to the details page with no results. 
The results only display after I click the "apply" button on the right-side-filter panel. 

11. The created-by/last-update-by/created-on/last-updated-on field values on details page are all dummy.    
12. On query-list page, for each query, you should also display the Created-on and last-updated-on fields.  There is no need to display Trade-by.    
13. On query-list page, click the "eye" icon to run query, it redirects me to the details page, but none is displayed.    
14. On query-list page, for the importer, exporter, and commodity on the query panel, you should display the actual names instead of codes. 
15. The paging is not implemented on the query-list page.
16. If I selected "Other Asia not elsewhere specified" as importer or exporter, then click the "+" icon, it becomes two different countries.    
17. The table on details page disappears if I click Map view and then click the Chart view.    
18. The line chart should be center aligned, and the legend should be displayed as well.
19. Fix errors in the updated files when running "gulp vet"

NOTE: make sure you read the requirements from previous challenge page, we need all these features working by the end of this challenge.

Testing

For the backend services, you must provide unit tests and postman file to test the REST services.

For frontend, we've asked our prototype developers to create some basic unit tests for their AngularJS code.  Please make sure that you update the front-end unit tests to ensure they are still functional.  Any additional unit tests that you think would be helpful for future developers to understand your updates would be appreciated.

Technology Overview

C# / .NET 4.5+
Visual Studio 2015
ASP.NET MVC Web API
SQL Server Express 2016
REST
Angular.js
CSS
Vertica
D3.js



Final Submission Guidelines

Submission Deliverables

1. Complete projects that cover all the mentioned requirements
2. For the backend, we need a word based deployment guide with details on how to configure and deploy the services to IIS, and details on how to test / verify the REST services.
3. For the frontend, please provide a README in markdown format with details on how to deploy and test the pages.
4. Please keep your frontend and backend code in separate and independent folders, because they will need to be merged into different repos.

Final Submission

- For frontend, please fork the following repo: https://github.com/topcoderinc/HP-LP-WWF-Detect-IT. We are working from the angular-dev branch (which is the default).  This contains the existing front-end website code.
- For backend, please fork the following repo: https://github.com/topcoderinc/HP-LP-WWF-Detect-IT-Services. We are working from the master branch (which is the default). This contains the existing backend services code.
- You will need to request access to the repos by providing your GitHub ID in the GitHub Access thread in the forum.
- The winner will be asked to provide a pull request to each of the repos with his or her updates.
- You will still need to submit a submission.zip with your source code, build scripts, and configuration files via the challenge detail page on topcoder.com.
- Check README file to deploy this Angularjs app
- For each member, the final submission should be uploaded via the challenge detail page on topcoder.com.

ELIGIBLE EVENTS:

2017 TopCoder(R) Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30055882