Register
Submit a solution
The challenge is finished.

Challenge Overview

Describe what you want to accomplish. 
 

For the Hercules client, we build a lot of web apps that run on an embedded environment.  The web browser used on the embedded system is older and has compatibility issues with modern desktop browsers.  This means we spend a lot of time working through compatibility issues.

In an effort to catch these issues earlier, we have generated a build of the embedded browser that runs on Windows.  This has worked alright, but the functionality could be improved to be more useful to testers and other developers.

Code

The embedded browser can be found here for Raspberry Pi:  https://github.com/Metrological/buildroot

This repo holds a set of code that can be flashed to an rPi for testing.  The app we are targeting is the "qtbrowser" executable.  It does appear that the code is here as well:  https://github.com/Metrological/qtbrowser

In the forum will be instructions for building the app on Windows.  Windows will be the target of this challenge.

New functionality

This challenge will add some new basic functionality to the app:

Address bar:

We want to add an address bar that the user can use to:

* Enter a new URL to load
* Go back
* Refresh the page

New menu:

1.  A new "Resolution" menu should be added to the app that has these options:

* 854x480
* 1280x720
* 1920x1080

The user should be able to pick one of these options to set the viewable area of the HTML to match one of those resolutions.  Make sure this affects the HTML area only - we don't want to take into account any other UI, like the address bar or things like that when calculating the size.  This is important to allow us to easily mimic the embedded system's browser, which will only run at one of those resolutions.

2.  A "History" menu that allows the user to see their history of browsed pages so they can click on one to go back.  There should be a button at the top of the menu to "Clear History".  This history should be persistent between app launches.

Resizing

Right now, the app doesn't handle resizing well - it just launches to a set resolution (the size of the screen) and resizing just shows or hides content.  We want the app to react to resizing as a normal browser would.

App launching

The app should be easily launchable by double-clicking.  Right now it requires the command line because options have to be passed into it.  

Build

Your deployment instructions must contain information on how to:

* Get the code
* Install the dependencies for Windows
* Build the browser app
* Run the app, ensuring the results can be displayed in a window
* Validate the changes above

This should mostly be handled already by the instructions in the forum - we just need a few details added to the README about validation.

Dependencies

Your build must output a standalone EXE.  It cannot rely on any other dependencies like QT being installed - those should be statically linked into the executable.  The goal is to be able to build an EXE that can be easily distributed to developers without requiring all sorts of dependency work.

Markdown

The deployment guide can be provided in Markdown format.  No video is required.

Additional functionality

If the same functionality added above also applies and works on the Mac build, that would be considered additional functionality.



Final Submission Guidelines

Please see above

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30055747