diff --git a/README.md b/README.md index 6b628d8..26b3526 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,14 @@ # FlowLab +[![GitHub release (latest by date including pre-releases)](https://img.shields.io/github/v/release/mahesh-gfx/FlowLab-Prototype?include_prereleases)](https://img.shields.io/github/v/release/mahesh-gfx/FlowLab-Prototypee?include_prereleases) +[![GitHub last commit](https://img.shields.io/github/last-commit/mahesh-gfx/FlowLab-Prototype)](https://img.shields.io/github/last-commit/mahesh-gfx/FlowLab-Prototype) +[![GitHub issues](https://img.shields.io/github/issues-raw/mahesh-gfx/FlowLab-Prototype)](https://img.shields.io/github/issues-raw/mahesh-gfx/FlowLab-Prototype) +[![GitHub pull requests](https://img.shields.io/github/issues-pr/mahesh-gfx/FlowLab-Prototype)](https://img.shields.io/github/issues-pr/mahesh-gfx/FlowLab-Prototype) + FlowLab Logo +

FlowLab by Mahesh Adhikari is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International

+ ## Project Overview FlowLab is a flexible node-based workflow tool for pre-processing data, creating and displaying data visualizations. @@ -14,17 +21,18 @@ FlowLab is a flexible node-based workflow tool for pre-processing data, creating - [Project Structure](#project-structure) - [Prerequisites](#prerequisites) - [Installation](#installation) + - [`git clone https://github.com/mahesh-gfx/FlowLab-Prototype`](#git-clone-httpsgithubcommahesh-gfxflowlab-prototype) - [`npm i lerna`](#npm-i-lerna) - [`npx lerna bootstrap`](#npx-lerna-bootstrap) - [Available Scripts](#available-scripts) - [`npm run build`](#npm-run-build) - - [`npm run build-nodes`](#npm-run-build-nodes) - [`npm run start`](#npm-run-start) + - [`npm run dev`](#npm-run-dev) + - [`npm run dev:backend`](#npm-run-devbackend) - [`npm run start:frontend`](#npm-run-startfrontend) - [`npm run start:backend`](#npm-run-startbackend) - - [`npm run dev:backend`](#npm-run-devbackend) + - [`npm run build-nodes`](#npm-run-build-nodes) - [`npm run test`](#npm-run-test) - - [`npm run dev`](#npm-run-dev) - [Development](#development) - [Architecture](#architecture) - [Deployment](#deployment) @@ -44,13 +52,14 @@ The project is organized into the following packages: ## Prerequisites -- Node.js (version 14.x or higher) -- npm (version 6.x or higher) +- Node.js v19.9.0 +- npm 9.6.3 - Git ## Installation 1. Clone the repository: + ### `git clone https://github.com/mahesh-gfx/FlowLab-Prototype` 2. Install Dependencies ### `npm i lerna` ### `npx lerna bootstrap` @@ -63,14 +72,18 @@ In the project directory, you can run: Builds all packages in the project. -### `npm run build-nodes` - -Builds the nodes package and updates dependencies in the backend and frontend packages. - ### `npm run start` Starts all packages in the project concurrently and the app opens on your default browser +### `npm run dev` + +Runs both the backend (in dev mode) and frontend concurrently, with color-coded output. + +### `npm run dev:backend` + +Runs the backend in development mode. + ### `npm run start:frontend` Starts only the frontend application. @@ -79,18 +92,14 @@ Starts only the frontend application. Starts only the backend application. -### `npm run dev:backend` +### `npm run build-nodes` -Runs the backend in development mode. +Builds the nodes package and updates dependencies in the backend and frontend packages. ### `npm run test` Runs tests for all packages. -### `npm run dev` - -Runs both the backend (in dev mode) and frontend concurrently, with color-coded output. - ## Development This project uses Lerna for managing multiple packages in a single repository. @@ -99,23 +108,24 @@ This project uses Lerna for managing multiple packages in a single repository. FlowLab follows a modular architecture: -1. **Frontend**: Built with React, it provides an interactive user interface for creating and viewing visualizations. -2. **Backend**: Powered by Express and Node.js, it handles data processing, storage, and serves the API. -3. **Nodes**: Declarative class based nodes for creating data processing and visualization logic. +1. **Frontend**: Built with React, it provides an interactive user interface for creating information visualisation workflows. +2. **Backend**: Powered by Express and Node.js, it handles data processing, storage, and serves the APIs. +3. **Nodes**: Declarative class based nodes for creating data processing and visualisation logic. 4. **DruidJS**: A specialized package for efficient data querying and analysis developed by Rene Cutura; Christoph Kralj; Michael Sedlmair. [DRUIDJS — A JavaScript Library for Dimensionality Reduction](https://doi.org/10.1109/VIS47514.2020.00029) Github: [saehm/DruidJS: A JavaScript Library for Dimensionality Reduction](https://github.com/saehm/DruidJS). There were some build related issued by incompatibility of the package with the project's configuration. Hence, this package was cloned, typedefinitions were written for the modules used in the project, and the package was built. 5. **Shared**: Contains common utilities and types used across the application. ## Deployment -1. Build the project: -2. Set up environment variables: +1. Set up environment variables: - Create a `.env` file in the root directory - Add necessary environment variables (refer to `.env.example` inside the package directories) -1. Deploy the backend: +2. Build the project: `npm run build` + +3. Deploy the backend: -- Backend can be deployed in services like AWS EC2, using PM2. Currently exploring other options. +- Backend can be deployed on services like AWS EC2, using PM2. **(Currently exploring other options)**. 1. Deploy the frontend: @@ -141,5 +151,3 @@ To view a copy of this license, visit [https://creativecommons.org/licenses/by-n ## Acknowledgements - My sincere gratitude to René Cutura and the contributors of the DRUID.js project for their invaluable work. The DRUID.js library, as hosted on their GitHub repository, has been an important component of this project. - -

FlowLab by Mahesh Adhikari is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International