PLEASE ADDRESS THE BID REQUIREMENTS (see below) IN YOUR PROPOSAL
Stark Engineering Consulting operates and maintains renewable energy plants. This includes remote monitoring and troubleshooting.
SCOPE
-----------
For remote access to some of our plants we want to use VNC through an OFFLINE custom webapp which will be hosted on an industrial device, similar to a raspberry pi. It requires two VNC clients on a single page so we need to rework the standard Apache Guacamole webapp (ie. the client) a bit.
Start here: [login to view URL] - I suggest you use the existing server API (Java, Javascript ...) and source code of the client (Java) as a starting point - no need to re-invent the wheel. (client source available on GitHub: [login to view URL]).
Alternatively, a node.js solution as a starting point: [login to view URL]
The complete app with user interface consist of: log-in page, main page and config page - sample images attached.
The authentication requires some thinking: although basic authentication is acceptable, there will be two types of login: standard and admin. Only the admin user has access to the configuration page. The user will be logged out automatically after a certain amount of inactivity. The user will also have the option to log out or change his login. For the VNC connections, the IP address, port and password for both screens should be accessible in the config screen.
The main page has, other than the 2 VNC windows, also a number of buttons that will interact with a NodeRed interface: send a message when clicked and change to 'active' when NodeRed wants them to. This might be possible through javascript, or a REST api in Nodered.
The configuration page allows for setting of IP addresses of the Raspberry Pi on which this will run: two ethernet ports, so 2 IP addresses. Changing the IP address will either be through a script in the webapp, or preferably just sending the desired IP address to NodeRed where the scripting is handled. Retrieval of existing settings (IP adress etc) should be handled internally in the app in our opinion.
The backend of the app should be a modified version of the Apache Guacamole project, running on Jetty or Tomcat. We don't want the VNC clients to simply be captured in an iframe.
The ui should be responsive html/css that scales well on either smart phone, tablet or pc. We did a rudimentary version in html/css which we will send through as starting point.
Did we say this should work offline? No dependencies on any online repository or other online resource!
Note: the NodeRed scripting/interfacing may be excluded from the scope if you're not familiar. NodeRed: [login to view URL]
DELIVERABLES
------------------------
1. Fully compiled and functional app that can be added to an existing Jetty/Tomcat server
2. Any source code
3. Functional description of the project
TIMING
-----------
3 weeks from award
REQUIREMENT FOR BID
---------------------------------------
- Clarify your experience with JETTY/TOMCAT webapps
- Clarify how you will make the interaction with NodeRed
- Clarify how you will obtain the necessary info for the 'current settings' in the Config page
- Suggest milestone payments / tasks