Skip to content

Disconnected Nature

Liam Fruzyna edited this page Jan 27, 2024 · 1 revision

Web Servers

It is important to understand the application's relationship with web servers. In order to be both flexible and offline, the application was designed so only a generic web server is needed to use most features. A few features do require a custom web server. These features are uploading and importing results directly from either a local or remote web server. Only a single "central server" needs to be using a custom web server to use these features, but if manual file transfer is desired to avoid a wireless connection, all clients must be running this web server. Further discussion of configurations can be found in the Synchronization Concepts section.

There are a variety of provided custom web servers to enable this functionality. The primary server is a custom implementation of the Python 3 HTTP Server. This server will always be up to date with the latest version of the application and can be run with python3 python/post-server.py. Of course there are mobile clients are well. Both WildRank Android and WildRank iOS run their own custom web server and webviews for their respective mobile operating systems. The Android version is available on the Play Store, but the iOS version will need to be built with Xcode.

Internet

An internet connection is required to preload event data before scouting begins, but this can be performed without an external server. Once all teams and matches are downloaded from TBA, an internet connection is no longer required and won't be until the next event for most features. Ranking data is also fetched but is obviously not complete before an event. Features using ranking data as well as actual match times are not intended to be used by regular scouters but by strategy leads who may be operating with more flexibility for finding an internet connection. The whiteboard will attempt to pull match Zebra data for each match to use the actual robot starting positions and draw paths, but will operate normally without a connection or available results. Finally, in a pinch event data may be transfered between clients using the zip export/import features.

Data Storage

Data is stored in JavaScript localStorage as JSON strings. Results may be exported as either zipped JSON files or a bulk CSV.

Image Storage

Pit scouting mode allows a scouter to capture a single image of each robot. Due to limits on localStorage space images are no longer stored on the device are limited to 360p (note: this is still likely too big and may have to be reduced later). However, full resolution images are uploaded to a custom server if in use. Images from localStorage can also be backed up to a custom web server later with the normal pit upload results functionality. Warning: pit uploads will overwrite high resolution automatic uploads. Note: image capture is not available on the iOS app due to limitations of WebRTC on WKWebView.

Clone this wiki locally