Challenge Overview

Challenge Objectives

  • Integrate the new backend API with the pages described below.
 

Project Background

  • The Scout web app, now available at scout.energy.gov, was developed over the past two years through a collaboration between BTO, the national labs, and Topcoder. The app improves the user-friendliness of several key Scout features; for example, it allows one to easily estimate the portion of U.S. building energy use and CO2 emissions that a candidate technology might affect; to rapidly create new Scout energy conservation measure (ECM) definitions and send them to BTO for review; and to interactively visualize energy use, cost, and CO2 emissions results for ECM portfolio simulation runs.
  • The app’s capabilities improve the accessibility of Scout data and results and might expand the base of users that wish to contribute new Scout ECM definitions or run custom Scout analyses. Looking ahead, further enhancements to the app will continue to improve the tool’s potential for broader impacts across the building simulation community.
  • In this round of Scout web app development, we have the following major objectives:
    • enable end-to-end Scout analyses within the web app,
    • add user accounts to support saving custom ECMs and analysis results,
    • update existing app components to reflect new Scout features, and
    • apply final fixes and performance improvements to existing features and app architecture.
 

Challenge Background

  • We built the current version of the Scout web app with a simple node.js based backend using SQLite as the datastore. It allows public access and doesn’t support user accounts, which is limiting what users can do with the web app.
  • In previous challenges, we have completely re-written the backend to support more features and it’s now using PostgreSQL as the datastore.
  • In this challenge, we are integration some of the pages front the frontend with the new API.
  • We plan to run the web app in docker, please keep that in mind and make all configurable parameters such as the API endpoint easy to configure through environment variables.
 

Technology Stack

  • HTML5
  • CSS
  • Javascript
  • Node.js
  • PostgreSQL
  • REST
  • SMTP
  • JSON
  • Docker
 

Detailed Requirements

In this challenge, we are looking to integrate the following pages/features with the new API and make sure they are functional after the integration:

  • ���Ignore the notification and task icons for now (the ones to the left of the user’s name after login)
  • home.html
  • signin.html
    • Login via Google needs to work too
    • Note there are two different roles supported: user and admin, both need to work
  • register.html:
    • We don’t need the reCAPTCHA for now, please hide it
  • profile.html
    • All features on this page need to work
  • accounts.html
    • this is admin only and all features on this page need to work.
  • ecms.html
    • Please note this page has many features like searching, filtering, download, edit, etc, they all need to work except for New ECM feature
    • This page also allows anonymous users to view the default ECMs, please double-check the requirements spec in the forum to understand the access details for different users.
    • On ECMs tab, the pause icon should be removed, we don’t need that
    • Some of the charts (when clicking an ECM to view details) are currently static, but they need to be fully functional, there were working in the existing application here: https://scout.energy.gov/ecms.html
    • Right now download would download a dummy PDF file, that’s wrong, it should download a json like the existing application.
    • On the chart view, exporting as csv / png / svg needs to work, download needs to work, but edit must be disabled for anonymous users.
  • Sign out
  • The following changes need to be made to the UI / backend during integration:
    • Please update this popup as shown here and integrate with the API properly: https://take.ms/TXjIe
    • The frontend is missing a UI for forgot password feature, please add a new page that allows the user to enter the email, verification code, and new passwords. Please keep the style consistent with register page.
    • Right now the API sends a verification code for email verification, please send a link instead that when clicked will verify the email (still needs to use a code to verify the request).
  • The UI is 501 and 508 compliant, make sure you don't break it.


Final Submission Guidelines

FINAL DELIVERABLES

  • Full code that covers all the requirements.

  • A detailed README file including information on how to configure, run, and verify your application.

ELIGIBLE EVENTS:

2020 Topcoder(R) Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30127505