Key Information

Register
Submit
The challenge is finished.

Challenge Overview

Welcome to the Thunderbird TIC Challenge Ideation!  In this challenge, we’ll be reflecting on a system already built, but has flaws in its design.  We need to come up with a recommendation for the client of how to succeed within the specific environment that this product needs to live.

Challenge Requirements

In this challenge, you are being asked to reuse existing assets, but augment the system to allow it to work reliably given the environment constraints.

Current System Description

The tooling inspection checklist (TIC) process consists of a checklist of certain tools within a nuclear reactor before and after their use in the reactor. This is done to mitigate/prevent the introduction of foreign materials into the reactor pool. Currently, this process is manual which makes it difficult to reconcile and validate information. It includes a checklist for each applicable tool (paper-based) as well as video recordings (pre & post-use) of the tool.

Tablet devices can’t be taken out of the area due to the fact they are not contaminated by being in a radioactive environment. The devices will be shipped in special containers for radioactive material back to our Nuclear site but it could be a delay of 1-4 months. The program managers and leaders at headquarters need to have access to the data in the case of problem or review is necessary.

Currently, the system is designed such that:

1. TIC are captured on an iPad
2. The iPad is connected (wired, or wireless router) to a “Master Laptop”, which is a device on the nuclear reactor network with access to the internet.
3. The Master Laptop uploads the TIC to a main server.

The restrictions in the customer environment include:

- iPads do not have cell access.
- Only allowed to use wireless router as a local area network without connectivity to the internet, only other machines on the same router.
- Some customers do not allow wireless networking of any kind. We would need an alternate solution to sync data.

The expectation is we can have up to 5-6 ipads with 40-50 checklists on each device with an average of 4 videos (2 pre-use and 2 post use).  Video size will be approximately 25-30MB for 5 min. video for ipad recordings (80% of total) and 20% of videos being recorded using external handicam with large videos of 160-200 MB for 5 minute video.

The tooling inspection checklist (TIC) application, as it stands now, fails when a large number of checklists with corresponding videos were added to the application and it could not sync manually. It currently has issues with the sync mechanism from the ipad to a Master laptop.  

The current wired sync mechanism:

- Must be run from a pc (this is not an issue, necessarily)
- Scans the windows process manager
- Listens for a connection to iTunes
- Uses a Python Script to connect back through to the iPad to pull TIC entries back to the master laptop.

Answer These Questions

Given the backstory, the code for the master laptop and ipad app, and the restrictions outlined above:

1. What hardware changes would you recommend and why?
2. How would your recommended system provide for (in order of importance):
A. Connected/wired sync
B. Wireless local sync (no internet)
C. Internet-based sync
3. How would you guarantee the TIC with videos sync successfully?
4. What assets do you think can be reused?
5. What project assets need to be discarded and rebuilt?

How This Will Be Reviewed

The reviewers are looking for end-to-end proof that your system is well thought out.  Please provide:

1- Hardware Recommendations and Why
2- Any Major Code/Framework Changes & Why
3- Any Libraries or Examples
Note:
- You do not need to submit any code.

How to Setup the existing Solution

Gitlab Access

We have two repos : 
iPad app : https://gitlab.com/tc-thunderbird/frontend
Java Backend : https://gitlab.com/tc-thunderbird/backend

1.You can get access to the Gitlab repo group in this tool https://tc-ragnar.herokuapp.com/ragnar/groups/564783092789620e00fa75d1/629771 
If you are having trouble with the auto registration tool, please post here for help.
2. Follow readme in both repos to setup and get the app up and running.
3. The java application requires Windows OS but in order to get it running in Linux or Mac OS X you need to execute the following :

- navigate to src/main/resources/usbmuxd/tcprelay.py and start it using command sudo "tcprelay.py" -t 25566:8888
- update serverport to 8888  in src/main/resources/configuration.properties
- Update pythonInvoker#getPythonCount to return 1
- Then start the java application. Starting tcprelay manually will skip pythonInvoker step which require accessing windows task manager. 
-  Then start the application, connect via wifi and login
- To turn off wifi syncing (to make wire cable syncing), keep cable disconnected, then create TIC records, answer the wizard questions and upload videos, then save it. When done, connect cable, monitor the java application log and iPad xcode log for how syncing works via wire.


Final Submission Guidelines

.

ELIGIBLE EVENTS:

2017 TopCoder(R) Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30055108