I need you to develop a cross-platform time-tracking application in Java. The application should reside in a system tray.
Application launch procedure:
1. Application reads server address from .properties file.
2. If application is not yet configured the configuration dialog should show. (see Configuration item below).
3. Upon start the application should load the settings from the server by invoking REST API.
Following actions should be available via system tray menu:
1. Start tracking.
The application should receive a list of projects and tasks assigned to the user and display them in the menu. User clicks on the task to start tracking the time. Once user started the task, the application should invoke REST API in order to indicate that user have started working on the task.
Alternatively, there are tasks in the system which are not yet assigned to the user, but still assignable. These tasks are not available directly in the menu. In order to start working on such a task user selects More... from the menu. A dialog window should display which lets the user to choose among available tasks to work on.
Application should invoke REST API from time to time in order to indicate that user still works on the task. The time interval are available from application settings.
2. Stop tracking. Once user clicks stop tracking, the application should invoke the REST API and mark task in the menu as inactive.
3. Close task. Acts exactly as stop tracking, but invokes a different method on the REST API.
4. Configure. This menu item shows a dialog window and lets the user to enter her email and password in order to use the application.
The application should take screenshots from time to time using Robot API and submit them to the server via REST API. Screenshot time interval available via settings received from the server.
The application communicates with the server via REST API. You can use resteasy library in order to develop rest client. REST API interface and entity model will be provided to the selected bidder.