I am seeking an UK based experienced Golang + HTML5/Javascript Developer to improve an existing UI to update about 6 variables in a golang .env file and display a summary of all variables in a localhost web-app (web-page). This is an extension to our pre-existing wizard-style UI that only initializes variables, but does not update nor has a summary view.
The project is split in 3 phases, which need to be completed one after the other.
– phase 1:
Update golang/html/js logic so that on the first run of the application, when .env is empty, the existing wizard initializes the .env and also indicates that this is a “first run”.
On a “subsequent run”, indicate that the run is an updating one and use the same wizard to allow updating the .env. The user should be able to see the old value and overwrite it with the new updated value.
The wizard has about about 5 steps already (about 5 divs in 1 html that show and hide) where each step updates one environment variable. Write one “summary div” which shows a summary of all the environment variables that have been set so far and is shown at the beginning of the wizard steps, but only when it’s in “subsequent run” mode. This div will have an “update” button to start the wizard in “subsequent run” mode
On that same div, create an .env delete button so that the user can delete all variables persisted in the .env; the result of that should reset everything and the wizard should start again in “first run” mode (and not show the summary div when in that mode). The delete logic is already coded and can be handled via a rest call.
— phase 2
The wizard is currently loading only when the “seller” flag is set when the golang program starts. Allow the wizard to run when the “buyer” flag is set and augment the previous code using the instructions below.
One of the existing wizard screens asks the user to drag a map pin to a location, however, in “seller” mode the pin is restricted to make a limited move within a gps obtained area ( an api call obtains this already ). However, in “buyer” mode we want to lift that restriction and let the user drag the pin to an arbitrary location.
On the same screen, we want to show pins of other “sellers”; these pins are obtained from an existing API call that retrieves all seller pins.
In the summary view, show a list of connected peer statuses; this one is the same for buyer or seller mode. There is a data structure in memory already that contains all connected pears but we need to implement one REST endpoint to fetch it and display it in the summary view.
– phase 3 –
The software you are using uses a companion “updater” software which simply downloads a new (when there’s one) deb from github and installs it.
Implement an API call to the companion to return a text displaying the current version
The updater is currently in auto-update mode but an API switch exists to turn that off. Implement an API call to manually trigger an update.
Use both endpoints to add UI elements in the summary view of the previous UI to
Display the current version
Switch auto update on or off
Trigger a manual update when autoupdate is switched off.
Requirements:
Proven experience in Golang programming. The webserver is written in golang and exposes a rest api which the UI communicates with. We don’t anticipate new code there but reading existing one is essential. Some minor tweaks might be necessary if they help you with the task.
Javascript/HTML5. The wizard uses pure javascript and material UI to render the elements; it’s essential to stay within the same framework (e.g. not switch to angular, react or anything else). The existing html+js is small, 600 lines combined, and you are expected to augment it with the new elements.
You will need familiarity with the Linux environment; the .env needs to be located in a linux directory structure (/etc/…)
= Must be based in the UK
= Must have identify verified
= Must communicate via freelancer.com only (no discord, gmeet, email etc)
= No off-platform work or transactions
Do not bid if you cannot meet these 4 last requirements.
Thanks