Challenge Overview
Project Overview
WWF is a web application that allows comparison of reported trade data to identify discrepancies in reports of imports and exports between countries.
This challenge is part of the Living Progress Build Challenge Blitz program.
Competition Task Overview
For this challenge, you'll need to code the back-end services to connect them to the front-end pages. The front-end pages have been coded in AngularJS but there will be some modifications required to implement them completely. More specifically the tasks include the following:
1. Build backend web services using ASP.NET MVC Web API, the services must be REST and will need to cover the following:
1.1. Login (including Social Login)
1.2. Registration
1.3. User Profile Management (including upload of avatar)
1.4. Forgot Password (Let user enter their email and a password reset link is sent to their email so they can reset their password, the link should auto expire if not visited for a configurable period of time)
2. Implement the frontend pages from the provided prototype and wire them with the backend services. The frontend has been built with Angular.js and should cover the following pages:
2.1. Landing Page
2.2. Login Page - You do not need to implement the "Remember Me" feature. Please remove that checkbox.
2.3. Register Page
2.4. Profile Page
2.5. Forgot Password (we don’t have a page for this in the prototype, but it’s a simple page that will let you to enter your email and submit, then the password reset page will just have two password fields for you to enter new passwords and submit, you can copy styles from other pages). Perhaps we can use the “Share Data” dialog shown below as a design/prototype model for this type of functionality. That will be consistent with the rest of the site.
3. For registration and profile pages, we only need the following fields:
3.1. Username
3.2. Password
3.3. Confirm Password
3.4. First Name
3.5. Last Name
3.6. Title
3.7. Organization
3.8. Country
3.9. Phone
3.10. Email
3.11. Twitter
On the profile page, we also need to have a checkbox next to each of these fields except for passwords, when user checks such a checkbox, it means that fields will be shown in their public profile that other users can view.
4. This challenge should set up a working web app, which will be used as base for upcoming challenges. Essentially there will be two separate projects that will be deployed independently from each other. The C# based backend project should be developed using Visual Studio, the Angular.js based frontend project can be developed using any text editor since it’s basically just CSS, Javascript and HTML.
5. For the backend services, you must provide unit tests and postman file to test the REST services.
6. For the frontend, make sure service root endpoint is configurable.
7. We've asked our front-end 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.
8. All code must be well documented.
Technology Overview
C# / .NET 4.5+
Visual Studio 2015
ASP.NET MVC Web API
SQL Server Express 2016
REST
Angular.js
CSSFinal 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.
Submission Guidelines
- Please fork the following repository: 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.
- You will need to request access to the repository by providing your GitHub ID in the GitHub Access thread in the forum.
- The winner will be asked to provide a pull request to the repository 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