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
In this challenge, we’re going to be developing some graphs and charts that provide some context to users about the overall trade in seafood around the world and provide some information about the most active trading partners and commodities. We’re going to develop the following five dashboard components as part of this challenge:
1. Top 20 wild-caught Commodities (Worldwide) by Export Trading Value (USD) over 2005-2015
2. Leading Exporters of Seafood and their trading partners (show by weight in KG)
3. Leading Importers of Seafood and their trading partners (show by weight in KG)
4. Leading Importers of Seafood - list of what they import (show by value)
5. Top 10 wild-caught Commodities by Import Trading Value per Kilogram
In a previous challenge, the Topcoder community developed the REST-based data services required to support each of the dashboard components listed above:
/aggregatedCommoditiesByCountry
/exporters
/importers
/commodityValueForWeight
The DashboardController has been coded in our ASP.NET code to support these endpoints. You should plan to spend a little time with the specifications from the previous challenge to see what data each call is supposed to return.
Unsurprisingly, the dashboard components should be displayed on the dashboard page (/dashboard). The current charts and graphs are simply placeholders and besides overall look and feel they can be ignored. They should be removed and replaced with our working dashboard components from the list supplied above.
You have some latitude about the construction of the dashboard. We’re hoping for some creativity and visual appeal from your submissions. Here are some general guidelines:
1. The dashboard component should clearly convey the relevant/important information which is the topic of the component. We want to the dashboard to be visually appealing and informative.
2. Some variety in the types of graphics is ideal: a combination of charts, maps, info graphics is ideal.
3. The graphics should be complementary with the current color scheme and fonts. They should also be generally compatible with the graphics on the /datacompare screen. We’re currently using d3.js library to render these components. You can enter some parameters on the /searchdata screen (Search Data tab) to see the charting components in action. Use of this library is encouraged.
You can see the current prototype in action here: http://54.218.19.28:8080/
There is a print button and a download button currently associated to each graphic. The print button should create pdf file of the current graphic. The download button should allow users to download a csv file of the data supporting the current graphic.
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
Java 1.5
C# / .NET 4.5+
Visual Studio 2015
ASP.NET MVC Web API
SQL Server Express 2016
REST
Angular.js
CSS
Vertica
D3.jsFinal 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.