Skip to content
Patrick Upson edited this page Jul 8, 2024 · 9 revisions

DART (DFO At-sea Reporting Template)

DART is intended for two main purposes.

  • At-sea reporting
  • Upload data to BioChem

At-sea reporting

When at sea DART needs to be setup as a standalone instance on a sea-going machine. There is no guarantee of an internet connection. DART will have to have access to Elog log, CTD BTL and various sample files (Eg. Salt, Oxygen and Chlorophyll). This could be done over a local network or using USB devices to transfer files from various locations around the ship to the DART machine.

To facilitate these requirements DART has been designed to run on a standalone python based Daphne server with SQLlite as a back-end database. The application is accessed through a web browser interface over a localhost using the 8000 port (localhost:8000).

Upload data to BioChem

After a sea going mission has completed DART is then used to load calibrated data and additional samples processed in labs. Once all the data has been collected it gets uploaded to the national BioChem database. This is done by creating BioChem staging tables that are then uploaded to an Oracle staging database and pulled into BioChem using processing scripts.

The application is run the same way as if it was running at-sea, but an Oracle Database connection is supplied by the data processing team to allow for uploading data from the local SQLlite database to BioChem staging tables where the data will be discovered and pulled into the national BioChem database.

Documentation

  • User Documentation is provided with the application and is accessed using the circle-question mark icon in the top left of the webpage
  • Developer Documentation

Requirements

  • Python 3.10+
  • Git
  • C++ Visual Build Tools - required for oracle connections

Installation

  1. Before installation you must have Python 3.10 and Git installed.

Windows

  1. Open a windows file explorer and navigate to the directory you wish to install DART
  2. In the address bar, where the current working directory is specified, type cmd
  3. In the command window type git clone https://github.com/upsonp/dart
  4. When the application has been checked out, type 'cd dart' to change to the dart project directory
  5. Type start_dart.bat to start the application for the first time.

The first time running the application may take several minutes to start while python packages and the initial local database is created. When you see Listening on TCP address 127.0.0.1:8000 in the command window, open a web browser and enter localhost:8000 in the address bar.

NOTE:
If the application had issues installing the cx_Oracle package you'll have to install Microsoft Build Tools

To stop the server, close the command window.

Starting DART

The initial setup of the application should be run using the start_dart.bat file. After which the Dart server can be started at any time by navigating to the dart directory and double clicking the 'start_dart.bat' file or 'server.bat' scripts.

start_dart.bat is an update script that will download any new updates for the application from the github location. It then calls the update.bat script to install python packages, initialize the local database, if it doesn't already exist, and populate default tables with the standard Dart fixtures.

server.bat will skip the process of updating the application from git hub and will start the webserver in its current state, at which point entering 'localhost:8000' in a web browser (Chrome or FireFox are preferred) will access the applications main page.

Settings

After starting the application with the start_dart.bat script, if no environment (.env) file was supplied, the start up script makes a copy of the .env_sample file to use as the base environment file.

The .env file can be modified to change the name of the local_dart.sqlite3 database used by the application to record user settings or to turn on debugging if the application is giving unhelpful 500 server errors, but it will work as is by default. If the .env file is missing, copy the .env_sample file, naming the copy .env