Challenge Overview
Welcome to "Lock My Laptop Java Swing Prototype challenge".
Our client wants to build new application named "Lock My Laptop" which will leverage Bluetooth pairing on a mobile or other Bluetooth device, and automatically lock the workstation when the Bluetooth signal is lost. In simpler terms, the user can walk away from their workstation and know that it will lock automatically once their device is out-of-range. The device can be any Bluetooth device already paired with their computer (wearables, smartphone, tablet, wireless headpohones, etc). The applicaton will be a desktop application for multiple operating systems.
The goal of this challenge is to create a responsive Java Prototype application based on provided Design Concept using Swing (and SwiXml).
You must provide all screens, even if you don't have a sample design image for it (i.e. the About screen).
You are not requried to implement the Bluetooth interaction or to persist any information.
The About screen should look similar to the Splash screen, without the progress bar.
The splash screen should be implemented as light as possible, using an animated gif file (follow the indications here: http://docs.oracle.com/javase/tutorial/uiswing/misc/splashscreen.html)
Note: You will be provided during the contest with a few extra screens or features, which you will be required to implement. Please take this into consideration.
Specific Java Requirements:
As part of this challenge you will need to document all Java code. We need clear explanation of the code to make it easier for future developers and the client to understand what you have built.
Your Java and XML code must follow best practices. A few quick rules: for indentation, use 4 spaces, not a tab; line should have a maximum of 120 characters. Use separated classes, especially regarding the main screen and settings screen.
All textual elements should be labels or other textual elements, not images, so that we can change the text. Only the logos can remain as images.
All animations should be implemented.
Your code must render properly in all operating systems: Mac, Windows, Linux.
All navigation buttons and links between screens should work properly.
All action links/buttons that are supposed to trigger an action should make use of a distinct method, which, for the scope of this competition, will provide mock data. This will properly isolate the functionality that should be replaced in the following Assembly competitions and will better structure the code.
Use mock data for the lists in the application. For instance, for Paired Devices you should have a private field with the list of devices (mock data) and use that list to display the list items.
You may use SwiXml to help you declare the layout. Do not provide XML that is generated by a tool, so that it can be easily maintained and modified in the following Assembly competitions. We need proper names for elements (i.e. "refreshListButton", not "button3").
Final Submission Guidelines
Submission Deliverables:
- A complete list of deliverables can be viewed in the TopCoder Assembly competition Tutorial.
- Please adapt the requirements to the required technology: Java and Swing.
- Include your source code, third party libraries and a Deployment Guide which explain how to deploy your application
- The submission can have this folder structure:
- /docs - the Deployment Guide
- /src/main - the Java source code and, if necessary, other files (XML)
- /src/main/java - the Java source code
- /lib - the third party libraries (ask in the forums for a confirmation before including them in your submission)
Final Submission:
- For each member, the final submission should be uploaded to the Online Review Tool.