Challenge Overview
BASIC REQUIREMENTS FOR THIS CHALLENGE:
PROJECT BACKGROUND
JavaScript Framework
Miscellaneous
JavaScript Graphics
JavaScript Libraries
Add Certificate
REPRODUCE CURRENT MEMORY LEAK APP PROBLEM:
Access the Memory tab open in Chrome Developer tools:
SUCCESS CRITERIAS
BROWSER REQUIREMENTS:
JUDGING CRITERIA
- Identify if upgrade to latest Polymer framework (version 3.0) will fix the issues with the SUCCESS CRITERIAS mentioned below for the Thor Power Xpert application
PROJECT BACKGROUND
- The Power Xpert Dashboard provides a graphical user interface to monitor, control, and diagnose Eaton switchgear from a safe location. It provides features required to maintain a switchgear assembly such as:
- Rich interface to monitor parameters of all devices and study the trends of those parameters
- Ability to configure and monitor alarms for devices
- Remotely open/close and enable/disable Arc flash Reduction Maintenance Systems (ARMs) on circuit breakers through control mode
- Configure, monitor, and control for various Main and Tie Breaker source arrangements
- Main navigation on the application are:
- One-line view
- Elevation view
- Timeline view
- Documents Elevation view
- Before you started, click around across the application to get familiar with the functionality.
- Let’s discuss any questions you have on challenge forum.
JavaScript Framework
- AngularJS 1.5.5
- Polymer 1.7.0
Miscellaneous
- PDF.js 1.8.188
JavaScript Graphics
- Highcharts 4.2.1
JavaScript Libraries
- Hammer.js 2.0.7
- Moment.js 2.18.1
- Snap.svg 0.5.1
- jQuery 2.2.4
- jQuery UI 1.12.1
- Check Ragnar link on challenge forum
- Install application from our repo, let us know if you face some problems.
- Follow description below to setup the application
- Download app as zip from our repo, then extract the zip and navigate to the folder
- Remove existing /node_modules/ folder
- Remove ""install": "bower update && bower install"," line from package.json
- Remove "px-blue-resolver": "git+http://esgit.tcc.etn.com:7990/scm/pxblue/px-blue-resolver.git", line from package.json
- npm install
- npm run serve
Add Certificate
- You need access https://localhost:9003 to see the app
- At the first time you need to add HTTPS certificate to your Keychain Access. Read reference here: https://tosbourn.com/getting-os-x-to-trust-self-signed-ssl-certificates/
- Here’s tips for Windows OS: https://gitlab.com/Pxpert-Bugfix/pxpertsource/issues/29#note_126630944
- Video reference for Windows OS: https://drive.google.com/file/d/1IphINnr-xAdv4iOd6Mu9mc_-yio_SLM3/view
- Then later you can access the app on https://localhost:9003
- Access https://localhost:9003 to see the app.
- Change IP address to: https://192.31.41.238
- You can login with these credentials:
- Username: admin
- Password: Eatonit2018$
REPRODUCE CURRENT MEMORY LEAK APP PROBLEM:
Access the Memory tab open in Chrome Developer tools:
- Navigate to any page on Dashboard (settings/network for example)
- Click "Take a heap snapshot" in the upper left corner of the Chrome Developer tools window
- Navigate to a different page on the Dashboard (settings/safety for example)
- Click "Take a heap snapshot" again
- Return to the page you navigated to in step 1
- Click "Take a heap snapshot" again
- Repeat steps 3 through 6 as many times as you want
- Check "Profiles section" in the Chrome Developer tools, you'll see all of the heap snapshots.
- Every time you took a snapshot, it garbage collected and saved a snapshot of what was in memory.
- Normally all the memory on the previous page should be freed after page navigation and garbage collection.
- So each time you return to a page, the memory use should be about the same as the last time you visited.
- In our case though, the heap snapshots just keep getting bigger each time we navigate which indicates that memory isn't being freed and is "leaking".
SUCCESS CRITERIAS
- We plan to upgrade current Polymer framework to the latest version 3.0 : https://polymer-library.polymer-project.org/3.0/docs/install-3-0
- We need to identify if upgrade to latest polymer version 3.0 will fix the issues with these client expected SUCCESS CRITERIAS:
- Memory leak: Upto 5-10% of un-avoidable memory leak by the framework is tolerated
- Load all screens within 3 seconds.
- Your submission on this challenge will be a guidebook on the next challenge to upgrade the Thor Power Xpert application.
- List any libraries that possible or not to upgrade
- Is it possible to maintain current look and feel after upgrade to the latest Polymer framework?
- Is it possible to maintain current code configuration after upgrade to the latest Polymer framework?
- Describe any advantages OR obstacles by upgrade to the latest Polymer framework
- Create document contains to-do list as clear as possible for the future developers to follow when upgrade the existing application
BROWSER REQUIREMENTS:
- Latest Google Chrome,
- Firefox,
- Safari and
- Internet Explorer (Edge) on Windows/macOS.
- IE11 and below versions are out of scope.
- Safari on Windows is out of scope.
JUDGING CRITERIA
- This challenge will be using subjective decision, we will score against the following:
- Accuracy of written brief describing Power Xpert Memory Leak root cause
- Documentation proving root cause (screenshots, logs, other resources)
- Action plan which suggests ways to mitigate the issue (doesn't need to be code solutions or fixes, just suggestions like if caused by a specific framework interaction, these framework interactions can be changed as suggested in this resource: <example resource>)
- You may submit in PDF, Word, or any standard document type
- Submit and listed any issues you think are the Memory Leak root cause.
Final Submission Guidelines
WHAT TO SUBMIT?- Document describing your solution to upgrade Power Xpert Memory Leak to use the latest Polymer v3.0
- Possible to achieve the expected Success Criterias?
- Verification document contains steps to verify your solution.
- Follow BASIC REQUIREMENTS FOR THIS CHALLENGE as explained above
- Video/Image screenshot for Validation Purposes