Version 2.0.0

Overview

UF Brain Recording and Analysis Visualization Online (BRAVO) Platform Version 2.0.0 is a complete revamp of the initial UF BRAVO software published at BRAVO Demo Site. The initial site, written originally in March 2020, was completely written in Python Django Framework. The site uses both Django Template frontend and Django Server to provide an all-in-one package of the the system. However, there are limitations pertaining to server-side rendering (SSR) system, including loading speed and cache performance. In addition, the Django template files written combined both scripts and html sources in one dynamically rendered pages, leading to difficulty in reading and may not be easy for sharing and reuse.

Below are outlines of all the major changes made to the server since Version 1.0.0. Version 1.0.0 will continue to be hosted on BRAVO SSR Repository because, functionally speaking, it is a properly working software. However, features will not be continuously updated.

Major Changes

1. Separation of Server and Client - Server-side Rendering (SSR) to Static-site Generator (SSG)

Client software is now isolated from the django server as a standalone application. The client software is completely rewritten in React.js for better templating and rendering than Django template. The primary HTML template is based on the free MUI Core library with a free MIT licensed style template.

One of the primary benefits I see with React.js is the ability to keep different part of the webpage as individual modular components. This also means that each individual graph is its individual file for editing without having to mess with other components in the webpage. This allow easy integration and modular editing.

2. User Authentication from Session Authentication to Token Authentication

Version 1.0.0 uses Session Authentication with cookies because server and client are the same site. In Version 2.0.0, the whole authentication system got modified to Token Authentication.

Since early 2022, the BRAVO platform has been expanded with multiple side projects, including mobile apps for wearable devices and speech analysis. These applications cannot use Session Authentication but Token authentication is good choice. By switching to Token authentication, it allows client to be hosted in a completely different state from the server.

3. SQL Database Changes

SQL Database is changed, both in naming convention and organization. This leads to incompatibility between old server and new server. However, to facilitate better transition, a migration guide is available for user who started using BRAVO in the initial version. Check Tutorials for migration guide.