Technology

Introduction

The Simplified Analytics Workbench (SAW) was the first module in DCP, not relying on Angluar for Frontend and C# in Backend. Instead, SAW is utilizing Vue (v.3) for Frontend and php with the Laravel Framework for the Backend.

Backend Technologies

SAW relies on php and builds on top of Laravel. Additionally, a messenging queue is used.

Laravel

The system operates on top of Laravel 10.x and requires:

  • PHP 8.1+ with following extensions installed: (To make the links bellow useful the resources.zip archive should be extracted to resources folder)
    • pdo_sqlsrv (dll) - SQL Server connections support
    • oci8 (dll) - Oracle Database 19 connections support
    • pdo_snowflake (dll, cacert) - Snowflake connections support
      • extension=php_pdo_snowflake.dll
      • pdo_snowflake.cacert=path/to/snowflake_cacert.pem
    • pdo_pgsql - PostgreSQL connections support
    • pdo_mysql - MySQL connections support
    • svm (dll) - RubixML dependency
    • tensor (dll, libopenblas) - RubixML dependency
  • Apache/Nginx Server
  • SQL Server
  • Composer

php Dependencies

The system requires the following composer packages:

  • php-amqplib/php-amqplib - RabbitMQ support (dataset/mutation requests and core batch events subscriptions)
  • yajra/laravel-oci8 and yoramdelangen/laravel-pdo-odbc - Snwoflake support (connections)
  • rubix/ml and rubix/tensor - RubixML support (mutations)
  • php-parallel-lint/php-parallel-lint - PHP Scripts (mutations)
  • darkaonline/l5-swagger - Swagger documentation
  • firebase/php-jwt - JWT authorization
  • google/apiclient - Google Sheets support (connections)
  • rtconner/laravel-tagging - Tagging (connections, datasets)

RabbitMQ

As the other modules of DCP, also SAW interacts with a central instance of RabbmitMQ.

Frontend Technologies

Project is based on the Vue 3

The project having couple of main dependencies

  • Vue Prism Editor
    • Code editor library that we are using for our custom code editor component
  • VueTribute
    • We are using a local version of this library. Its help us to work with constants across the application
This page was last edited on 03 May 2024, 07:57 (UTC).