Barton MEAN Admin Tool - Device Profile Page - Code Challenge

Register
Submit a solution
The challenge is finished.

Challenge Overview

Welcome to Barton MEAN Admin Tool - Device Profile Page - Code Challenge!

We are pleased with the outcome of our first two challenges in this series BARTON MEAN ADMIN TOOL ANGULARJS POLYMER CODE CHALLENGE that set the stage for the Angular / Polymer framework hosted on Heroku. Now we are ready to build the next module, the Device Profile tab. Below you will see a mockup for what we have in mind. The logic is still very rough so we might not have all the answers and will give you more wiggle room for interpretation.


 
About Device Profiles
- This screen will be used by system admins, software engineers, and firmware engineers to describe and define the data points served up from a device into an IoT platform. It also describes other metadata about the device such as its model name.
- Collectively, all of this metadata about a device is called a Device Profile.

Genereal Requirements:
- Pull the full stack source for the app and install it locally or on Heroku.
- This is our latest Barton Admin Tool application, deployed on heroku: https://insidegatewayadmintool.herokuapp.com/ (Login info: admin@test.com / abc123)
- Update existing Device Profile page for this challenge requirements
- Challenge winner need responsible to do the Pull Request for this winning submission.

Update to existing Application
- On the black header bar, remove the "Welcome admin", "date/time", "help", "settings", "power expert insight gateway" and "logo"

Device Profiles Page Requirements:
- On the left side, you need display left sidebar contains all Device Profiles in the system
- Re-use existing functionality like on Users page, like search, and collapse/expand the left sidebar
- Select a device profile need render data on the right side.
- On the main content area, you need use 2 columns layout for Profile Information & Channel information

Profile Information
- Only Profile name, Version, Vendor and Model using text input, other fields can use plain label
- Id can use MongoDB object id
- Under Profile Channels, user can select checkboxes on the table rows. Click Remove Selected button need remove the selected row
- Display Growl notification after Profile channels removed. Re-use existing function

Channel information
- User can search MCL channels by using input on top.
- User can checked rows by toggle the checkboxes
- Then, Click Add Selected button will move the selected rows to the Profile Channels on the left side.
- When user moves channels to/from a profile, simply represent the change in the UI. Dont save anything until user click Save button
- When a profile is loaded, select the channels in the MCL list that are currently in the Profile Channels
- Notify user if they select another profile or Click New button
- Display Growl notification after MCL channels added. Re-use existing function

New Device Profile
- Click New buton clear all fields values
- Profile Channels need to be empty by default
- MCL Channels need display some existing rows to allow user select them.
- Click Save button need load the Save Confirmation

Download JSON
- Download JSON will allow user to dowload a JSON file of currently loaded profile
- See the format of the JSON file attached to the challenge (VA2gvaHyTj69MnJ01IVT_DeviceProfile.json)
 

Final Submission Guidelines

- Please submit a single zip file which includes the .git directory intact. You should create a new branch with the name of your tc handle.
- Deploy your solution on Heroku so we can see it in action and include the link to your submission.
- Provide documentation, (usage and deployment guide if ) for your solution in the main readme.md under a new section name Devices and/or edit the main readme to make it current.
- Provide a quick < 5-minute video of your solution in action. (You may annotate or narrate)
- A code walkthrough video is desired but not required.

ELIGIBLE EVENTS:

2017 TopCoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30057272