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:
-
Implement the Time Sensitive Valuation changes described in the forum.
-
Implement notification and task features (the ones to the left of the user’s name after login)
-
Implement calculator page (baseline-energy-calculator.html)
-
This challenge will mark the completion of the integration, all features are supposed to be working once this challenge finishes, please double-check and fix any issues found during integration.
-
Double-check the following changes are working properly and implement them properly if not:
Final Submission Guidelines
-
Full code that covers all the requirements.
-
A detailed README file including information on how to configure, run, and verify your application.