Challenge Overview

App environment:
- Meteor Javascript application: https://www.meteor.com/  

Basic requirements for this challenge:
- Continue update desktop native app with Meteor Javascript as the main framework
- Fix application logic as mentioned on challenge spec
- Follow updated storyboard design
- Need support Unit Testing when build the native app
- Testing on Windows 7 and Windows 10

Thor PDU Mass Commissioning - Overview
A PDU (Power Distribution Unit) is a device fitted with multiple outputs designed to distribute electric power, especially to racks of computers and networking equipment located within a data center.  The PDU Mass Commissioning tool that we are designing will allow users to create configuration files and networking capabilities for PDUs in a system.  The app will allow for the necessary configuration parameters needed for operation within the system.  Once all of the configuration parameters have been set within the app, users will be able to "export" the files to a USB drive, which will be plugged into the PDUs to be commissioned.

The PDU Mass Commissioning tool will be a simple user interface that allows customers to create all of the necessary configuration files to configure all of their PDUs. The app will have a variable number of input fields for all the configuration parameters in which users will enter their desired configurations. Once they have entered all of the configuration parameters they will click "export" and the application will build the configuration file hierarchy into a chosen USB drive.

About PDU Mass Commissioning App
- PDUs (Power Distribution Units) equipment have several parameters which need to be configured before the first use
- The Mass commissioning application to be developed aims at expediting  the commissioning process in case of large amounts of PDUs to be configured (from 20 to several hundreds of units)
- Targeted audience: industrial users

Basic process flow
- The user defines the value of the configuration parameters he wants to apply to the PDU in the PDU mass deployment Software tool (to be developed during the Topcoder challenge)
- The different parameters are exported to a standard USB key in the form of pre-defined configuration files (the files naming convention and file hierarchy must be respected)
- The user plugs the USB flash drive into the PDU(s) to be commissioned
- The PDU automatically detects the correctly formatted USB flash drive and reconfigures itself with settings found on the USB flash drive

Technology Stack
- Meteor Javascript
- Angular Meteor Integration
- Meteor desktop (https://github.com/wojtkowiak/meteor-desktop)

Deployment environment requirements
IMPORTANT: Your submission need build as desktop native app that will working on these required OS:
- Windows 7 to Windows 10
- NOT Mac OS

Base of App Updates:
https://gitlab.com/thor-pducomm/meteor-app  > Use dev branch
Check README.md to help you set up the app. Let us know if you have some questions.
There are desktop installer on this folder .desktop-installer folder. Please use the latest version: 0.0.4

Storyboard Design Source Files
Updated Storyboard: https://drive.google.com/open?id=1hlXH5M_5APHz43PJWghe40kBN0HfAZgN
MarvelApp flow: https://marvelapp.com/7761ed1/screen/52860677

Exported Folder Hierarchy
  • /eNMC/massConfig/ // Folder dedicated to the Mass commissioning
    • Log.csv // MANAGED BY PDU: Appended by each PDU during the commissioning concerning the matching between the PDU to upgrade with the USB folders
      • MAC_{MAC address 1}/ // we could decide to use the serialNumber as folder or Mac address or both ?
        • ConfigurationData.xml // Optional: To apply for commissioning)
        • ConfigurationPDU.xml // Optional: To apply for commissioning)
        • ConfigurationPrivateData.xml // Optional: To apply for commissioning)
        • Upgrade.txt // Optional: Contains the name of the firmware upgrade image: Image_ePDUG3_FW_03_00_0001.bin
        • old/   // Folder will be filled by ePDU to save the old (before the commissioning)  configuration backup and log of commissioning
          • ConfigurationData_{TIMESTAMP}.xml.old // MANAGED BY PDU: Optional
          • ConfigurationPDU_{TIMESTAMP}.xml.old // MANAGED BY PDU: Optional
          • ConfigurationPrivateData_{TIMESTAMP}.xml.old // MANAGED BY PDU: Optional
          • ConfigurationData_{TIMESTAMP}.xml //
          • ConfigurationPDU_{TIMESTAMP}.xml //
          • ConfigurationPrivateData_{TIMESTAMP}.xml //
          • Log_{TIMESTAMP}.csv // MANAGED BY PDU: Log saved by the PDU during the commissioning concerning the upgrade using the files including in this main folder
          • Identification.xml // MANAGED BY PDU:
      • SN_{SerialNumber 2}/
        • ConfigurationData.xml
        • ConfigurationPDU.xml
        • ConfigurationPrivateData.xml
        • Upgrade.txt
        • old/
          • ConfigurationData_{TIMESTAMP}.xml
          • ConfigurationPDU_{TIMESTAMP}.xml
          • ConfigurationPrivateData_{TIMESTAMP}.xml
          • Log_{TIMESTAMP}.csv
      • upgrade/
        • Image_ePDUG3_FW_03_00_0001.bin
        • Image_ePDUG3_FW_02_00_0054.bin

Technical Specification Requirements
1). General updates to all pages

- Replace Logo on the top left sidebar (Screenshot: 00 Overview@2x.png)
- Replace App Icon (Icons – new@2x.png)
- Replace Splash Screen (Screenshot: Splash Screen@2x.png).
- Note: Update the style and add progress bar of Splash screen to preload all required pages
- For the Save changes screen, need display: Last saved <DATE> instead of Saving status: success. Example: Screenshot: 01 General Settings – 1@2x.png
- Remove search button on header bar. Also remove unused recent search and search result page
- On the left sidebar, need make the Help button not cutting off when viewed as desktop native app

2). Overview
Screenshot: 00 Overview@2x.png
- Fix the Welcome to the Eaton Mass Configuration Tool to use 2 lines.
- Language dropdown need to be in same line with the Welcome title
- Replace Video with placeholder.
- Arrow button to close the sidebar need to be smaller and placed on the right side of the logo
- Also you need update the arrow button size on the right sidebar
- Active/Inactive icons on the left sidebar menu should remain in same position, not moving.

3). General Settings
Screenshot: 02 General Settings@2x.png
- Remove Reset Default Key section

4). Table on Asset Management Updates
Screenshot: 03 Asset Management_Basic@2x.png
- Update the arrow button size on left and right side to follow storyboard
- When sidebar collapsed need make the logo smaller (Screenshot: 05a Asset Management_Expert_Collapsed@2x.png)
- The Add device function design updated (Screenshot: 05d Asset Management_Adding_Device@2x.png)
- Add cancel button and confirm button on the last column
- Cancel button need cancel add device function
- The last modified feature/field on table looks need implemented when add or edit the table (the date need change when a line is updated)
- Delete feature need able to remove the data
- Table and wizard need updated with a new column each time a new parameter on the right sidebar is edited or configured.
- You can see the blue colored scrollbar on the bottom (Screenshot: 05e Asset Management_Additional_Columns@2x.png)
- Each time a new parameter on the right sidebar is edited or configured, need add to the filter.
- Filter modal showing up when click 3 dots button on the table header. Need remove the existing tooltip.
- This is the mockup design (Screenshot: 05f Asset Management_hide-show_columns@2x.png)
- Checked on/off the fields need show up on the table
- Done button need hide the Show/Hide filter
- Note: after select row and then change the value of Firmware Upgrade on the right sidebar content. Need able to modify the corresponding upgrade.txt text file.

5). Data Entry Wizard
Screenshot: 10 Data Entry Wizard Additional Column@2x.png
Screenshot: 11 Data Entry Wizard Additional Column@2x.png
- Remove Data Entry Wizard button
- User only need able to add data from Add New Device button
- We need filter works to search data from table and the updated modal window filter
- As possible all table column need show up the actual value without the ellipsis character (3 dots)
- Make the table column using scrollbar

6). Export files screen

a). Data Validation

Screenshot: 11 Export Steps – 1@2x.png
- Before exporting the files, the app performs some basic consistency checks to detect potential errors on this data validation:
- The same PDU SN and/or MAC address cannot have different configuration settings but the same IP can be used on different PDUs in case of separated networks (however, the same IP configured on different PDUs should rise some warning)
- The app is able to detect any error in the field format or type (Check whether the IPv4 or IPv6 field is correct)
- a MAC address should be XX:XX:XX:XX:XX where X is a character, etc…
- After validation, user can change the value on Asset Management page
- We no need display dummy lorem ipsum text. Need able to capture actual data

b). Hardware Security Key
Screenshot: 11 Export Steps – 2@2x.png
- Design updated. Match all required fields:

At least one device has never been configured
- This option if at least one device has never been configured.
- User need set new key and confirm new key

All my device have already been configured
- This option if all devices have been configured.
- This option allow user to set current key and confirm current key
- Also need allow to change to new key and confirm new key

I wish to opt out
- Selecting this option need use existing Authentication

IMPORTANT NOTES:
- Need able to click section title area to go back to the previous screen (for instance moving back from the Hardware security key screen to the Data Validation screen)
- Only the parameters which differs from the data model (ie explicitly modified by the app) , only THOSE changed should be exported and rest of the fields that is not changed MUST not be in the exported XML.

c). Select the USB
Screenshot: 11 Export Steps – 3@2x.png
- When export to USB, formatting the USB need remove the old content.
- There is problem before when there are duplicate folder after user export data
- Need use export and path data model. For example:
"export":
{
"file": "ConfigurationData",
"path": "System.Ethernet.MacAddress"
}
- This is the progress look: Screenshot: 11 Export Steps – 4@2x.png

7). After Commissioning
Screenshot: 12 After Commissioning@2x.png
- All rows should not be editable on this page
- Create different status color for emergency, info, notice and warning based on storyboard (Screenshot: 13 After Commissioning – Logfile@2x.png)
- Need able to restore the old config (Screenshot: 14 After Commissioning – Options@2x.png)
- Click Delete button need load the confirmation modal window
- Make sure all parameters captured when expand the right sidebar (Screenshot: 16 Multiple Outlets management@2x.png)
- After commissioning we will interpret the generated log.csv file by the PDU and this log file will include the status code whether the commissioning went fine or went bad etc and after commissioning in the app will capture this status from the log file and display just the status code and description.
- Refer the log.csv placement as mentioned on folder hierarchy above
- The PDU is reporting codes in the log.csv file which is at the root of the folder hierarchy (please refer to the files description). Here is the code description:

Priority handling
Value  Severity        Keyword       Mass commissioning Thor (SW) display
0        Emergency    emerg          Error (Red)
1        Alert             alert             Error (Red)
2        Critical          crit               Error (Red)
3        Error             err               Error (Red)
4        Warning        warning         Warning (Orange)
5        Notice           notice           Good (Green)
6        Informational info              Good (Green)
7        Debug debug Not shown

- Here is an example of Log.csv file: https://drive.google.com/file/d/1XH7adQPnloeMOCi0Ve2YQZL0PaK-M_jf/view

8). Maximum Limit
Screenshot: 17 Device-Row Limit@2x.png
- Need implement the maximum limit some number of rows exceed 40 for example
- Create configuration to limit data that need displayed
- When user import the data or create more than 40 rows need display this modal window message

9). Unit Testing
- Unit testing need incorporated when running the build command
- Make sure the passed 90% of source code coverage

10). Windows 7 & Windows 10 Support
- Make sure the application running smooth as desktop native app on Windows 7 and Window 10 with no error
- There are some issues about slow load on Window 7 need fix that.
- Fix all inconsistency styling on any pages

Final Submission Guidelines

Deliverables
- All source code that implement the challenge requirements.

ELIGIBLE EVENTS:

Topcoder Open 2019

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30083093