• Compete
  • Learn
  • Community
ico-magnifying_glass
    ico-arrow-big-left

    SunShot - SolarActionNetwork - NodeJS Web Application

    PRIZES

    1st

    $1,200

    2nd

    $600

    Register
    Submit
    The challenge is finished.
    Show Deadlinesicon-arrow-up

    Challenge Overview

    Note - We are currently running a UI prototype F2F challenge so the provided prototype in challenge assets will be updated within the next day or so (as and when the F2F completes). There are no major changes from an API integration standpoint though so it should be easy for submitters to switch to new prototype as soon as it's made available.

     

    Welcome to the SunShot - SolarActionNetwork - Prototype Backend Integration Code Challenge.

    As part of earlier challenges, we've built a prototype (provided in challenge forums) which is fully responsive on Desktop, Tablet and Mobile layouts. Now, we want to implement some mock APIs and bring this prototype to life.

     

    Key Considerations

     

    • The prototype uses hardcoded data everywhere. We do not have access to client APIs so we want to mock them using JSON files. No input data should be hardcoded on any screen. The app should be written in a manner so that it uses wrapper APIs which currently read data from a JSON file but later can be replaced with actual endpoints which would return the same JSON data from the server.

    • Feel free to define the JSON format that’s best suited as per the form

    • Technologies - node.js, Angular.js



     

    Landing Page

    Screen Shot 2015-11-17 at 6.57.49 PM.png

     

    - When the User launches the application, they are taken to a landing page where a map populates with the location of the User. The location Pin is a graphic that looks like a solar panel. If the 'Auto' flag is true, the location address and GPS coordinates are determined using a location service and shown in the right section.

    - The user should be able to search any location (/searchLocation endpoint - GET request) by entering an address in the 'Search Location' box and hitting Enter should plot the location on the map and show it's GPS coordinates in the right section.

    Screen Shot 2015-11-17 at 7.07.21 PM.png

     

    - The Contact Us (/contactus endpoint - POST request) form should be able to capture all the fields and send an email to a configurable email id.

     

    Get Solar

     

    Screen Shot 2015-11-17 at 7.07.28 PM.png

    - Make the $1500 value configurable

    - The chart on the left should call the /solarChartData endpoint (GET request) which takes an argument of a JSON file that defines each category and it's corresponding value.

    - Make Lorem Ipsum text on the left as confgurable as SolarSavingText

     

    Screen Shot 2015-11-17 at 7.07.42 PM.png

     

    - Make Lorem Ipsum text on the right a configurable as SolarSavingSignupText

    - Address Line 1, Address Line 2, State, Zip should be auto populated based on the location from landing page.

    - Clicking Next hits /SolarAddressData (POST request, save to a JSON file) and takes the user to the ‘House Owner’ section

     

    House Owner (Form B)

     

    • Capture the values of all fields.

    • Clicking Next hits /HouseOwnerData (POST request, save to a JSON file) and takes the user to ‘Electricity Info’

     

    Electricity Info (Form C)

     

    • Capture the values of all fields.

    • Clicking ‘AUTHORIZED’ opens the Utility Account Organisation modal. The user needs to fill

      • Name

      • Signature (either hand-dawn) or uploaded as an image

    • Clicking Okay hits /ElectricityInfo (POST request, save to a JSON file) and takes the user to ‘Rental Agreement’ screen


     

    Rental Agreement (Form D)

     

    • Capture the values of all fields.

    • Clicking ‘Agree’ opens the Solar Rental Addendum modal.  The user needs to fill

      • Name

      • Signature (either hand-dawn) or uploaded as an image

    • Clicking okay hits /RentalAgreement (POST request, save to a JSON file) and takes the user to ‘Join Solar’ screen

     

    Join Solar

     

    • All data on the left must be read of a JSON file and exposed via an endpoint such as /JoinSolarBenefits (GET request)

     

    • Screen Shot 2015-11-17 at 7.18.49 PM.png

    • Capture the values filled by user in the form on the right side

     

    Screen Shot 2015-11-17 at 7.24.19 PM.png

    • When the user hits ‘Agree’, hit the /JoinSolar (POST request - save data to a JSON file) and an email must be triggered capturing all the form element values filled by the user and sent to the user for reference. The email template must be kept configurable.

     

    Off Grid

     

    Screen Shot 2015-11-17 at 7.28.53 PM.png

    • Remove all hardcoded data and read it from /OffGrid (GET request reading from a JSON file)

      • Device (Mobile Solar Charger, Portable Solar Generator, Mini Solar Station)

      • Rating

      • Price

      • Discount

      • You Save

      • Specifications

      • Image

     

    Invest

     

    Screen Shot 2015-11-17 at 7.32.31 PM.png

    • All data on the left must be read of a JSON file and exposed via an endpoint such as /InvestmentBenefits

    Screen Shot 2015-11-17 at 7.32.38 PM.png

     

    Screen Shot 2015-11-17 at 7.40.00 PM.png

     

    • Clicking ‘Pay’ - Capture all fields and hit the /Investment (POST request) to save the captured data to a JSON file

    • Clicking ‘Pay’ must also trigger an email  capturing all the payment amount filled by the user and sent to the user for reference. The email template must be kept configurable.

    Final Submission Guidelines

    • Submit the complete source code as a zip file

    • Deployment Guide must contain all deployment and verification instructions. Include instructions on how to deploy to Heroku

    • Deploy the app on Heroku and provide the Heroku URL as part of your Deployment Guide

    • Submit a demo video of your submission

    • The winner will be asked to merge/ commit his code on our Git repo.

    Reliability Rating and Bonus

    For challenges that have a reliability bonus, the bonus depends on the reliability rating at the moment of registration for that project. A participant with no previous projects is considered to have no reliability rating, and therefore gets no bonus. Reliability bonus does not apply to Digital Run winnings. Since reliability rating is based on the past 15 projects, it can only have 15 discrete values.
    Read more.

    ELIGIBLE EVENTS:

    2016 TopCoder(R) Open

    REVIEW STYLE:

    Final Review:

    Community Review Board
    ?

    Approval:

    User Sign-Off
    ?

    CHALLENGE LINKS:

    Review Scorecard