From 345dbe7c4e3f278449f9d89870a817e685888bae Mon Sep 17 00:00:00 2001 From: Luka Murn Date: Thu, 20 Jun 2019 15:47:43 +0200 Subject: [PATCH] Add Technical overview section, do some general reorganization --- About-SciNote.md | 4 +- Home.md | 6 +- Setup-guide.md | 16 +++-- Technical-overview.md | 117 +++++++++++++++++++++++++++++++++++ _Sidebar.md | 5 +- images/Docker-Schema.png | Bin 0 -> 47254 bytes images/SciNote-Logo-2018.png | Bin 0 -> 8913 bytes 7 files changed, 135 insertions(+), 13 deletions(-) create mode 100644 Technical-overview.md create mode 100644 images/Docker-Schema.png create mode 100644 images/SciNote-Logo-2018.png diff --git a/About-SciNote.md b/About-SciNote.md index 8110de8..ff1e0e7 100644 --- a/About-SciNote.md +++ b/About-SciNote.md @@ -2,9 +2,9 @@ ## What is SciNote? -SciNote is a top-rated platform for researchers in academia or industry, who need electronic lab notebook, inventory management and project management functionalities. +SciNote is a top-rated platform for researchers in academia or industry who need electronic lab notebook, inventory management and project management functionalities. -For more information, visit the [SciNote website](https://scinote.net/). +For more information, visit the official [SciNote website](https://scinote.net/). ## What can you do in SciNote? diff --git a/Home.md b/Home.md index e41d6f3..ba9b24f 100644 --- a/Home.md +++ b/Home.md @@ -1,8 +1,10 @@ -![sciNote logo](https://scinote.net/wp-content/uploads/2018/05/SciNote-Logo-2018.png)


+[[images/SciNote-Logo-2018.png]] + +


Welcome to the [**SciNote** - open source electronic lab notebook](http://scinote.net/) ([ELN](https://en.wikipedia.org/wiki/Electronic_lab_notebook)), developed and maintained by SciNote LLC. -This wiki is the main source of documentation for **developers** & **administrators** working with (or contributing to) the SciNote project. For other information please visit [SciNote website](http://scinote.net/). +This wiki is the main source of technical documentation for **developers** & **administrators** working with (or contributing to) the SciNote project. For other information please visit official [SciNote website](http://scinote.net/). ## Contents diff --git a/Setup-guide.md b/Setup-guide.md index 726d6bd..a74c4a0 100644 --- a/Setup-guide.md +++ b/Setup-guide.md @@ -1,16 +1,20 @@ -## Build & run +## Technical overview + +To view the technical overview of SciNote, its architectural components, and everything related to containerization, visit [Technical overview section](Technical-overview). + +## Build & run (development mode) For instructions on how to build & run SciNote - including minimal **quick-start** setup - visit [Build & run section](Build-&-run). -## Production mode - -To host SciNote on a server, and run it in production mode (in Docker containers), visit the [Production mode section](Production-mode). - ## Environmental variables SciNote is configured using environmental variables. To see list of available variables, and a minimal `application.yml` file, visit [Environmental variables section](Environmental-variables). -## Rake/rails tasks +## Production mode + +To host SciNote on a server, and run it in production mode (in Docker containers), visit the [Production mode section](Production-mode). + +## Rake tasks SciNote server uses `rake`/`rails` tasks for various operations. For details regarding `rake`/`rails` tasks, when to run them and how to set them up, visit the [Rake tasks section](Rake-tasks). diff --git a/Technical-overview.md b/Technical-overview.md new file mode 100644 index 0000000..d9e32c7 --- /dev/null +++ b/Technical-overview.md @@ -0,0 +1,117 @@ +### Table of Contents + +* [Introduction](#user-content-introduction) +* [Prerequisites](#user-content-prerequisites) +* [Docker and containers](#user-content-docker-and-containers) +* [Engines and modularity](#user-content-quick-start) + +--- + +## Introduction + +SciNote is primarily designed as a [multi-tenant](https://en.wikipedia.org/wiki/Multitenancy) web application. + +SciNote is developed in [Ruby on Rails](http://rubyonrails.org/). It is a [monolithic web application](https://en.wikipedia.org/wiki/Monolithic_application), following Ruby on Rails [guidelines and best practices](https://rubyonrails.org/doctrine/). Some other important technological aspects of the SciNote platform: +* Back-end is following the Rails's MVC implementation. +* Front-end comprises of `.html.erb` views, rendered using [server-side rendering](), and [jQuery](https://jquery.com/) JavaScript code that often relies on AJAX calls to trigger dynamic actions to the server. Majority of JavaScript code is local to individual pages. +* Data is stored within [PostgreSQL](https://www.postgresql.org/), and all files are stored on either filesystem or [Amazon S3](https://aws.amazon.com/s3/). +* [Less](http://lesscss.org/) is used for CSS pre-processing. +* [Webpack](https://webpack.js.org/) is used to bundle front-end assets (`.js`, `scss`/`.css`). +* [Puma](https://github.com/puma/puma) is used as the web application server of choice. +* Background worker is implemented using [`Delayed::Job`](https://github.com/collectiveidea/delayed_job) gem. +* See [Gemfile](https://github.com/biosistemika/scinote-web/blob/master/Gemfile) for the list of used technologies. + + +## Prerequisites + +These are the minimal technical requirements required to install SciNote server on a computer: + +* 512+ MB of dedicated RAM, and a dual-core CPU, +* OS that supports [Docker](https://www.docker.com) (Mac, Windows or Linux), +* Makefile (`make`), +* [Docker](https://www.docker.com/), +* [docker-compose](https://docs.docker.com/compose/). + +As stated above, all major operating systems (Mac, Windows, Linux) support Docker. However, due to the nature of the Docker implementation, as well as the tooling required around SciNote (Makefile, docker-compose), it is **strongly suggested to deploy SciNote on a Linux operating system**. + +## Docker and containers + +SciNote relies heavily on [Docker](https://www.docker.com/) containers to separate its individual processes & services. + +The following separate containers are employed on a running SciNote server: + +1. Database data container **(persistent)** hosts all database engine files, and is placed by default into `/var/lib/docker/volumes` folder on the host system; +2. Files container **(persistent)** stores all generated & uploaded files when SciNote is configured to use local filesystem for storage (`PAPERCLIP_STORAGE` is set to `'filesystem'`); +3. Database engine container (non-persistent) hosts the database engine process; +4. Job worker container (non-persistent) hosts the background worker process; +5. Web worker container (non-persistent) hosts the web application process. + +SciNote can be setup to run in various ways, but the following schema provides the most common - *default* - way of how to setup the SciNote containers: + +[[images/Docker-Schema.png]] + +Generally, all parts of the system can be modified; PostgreSQL engine, as well as the database data, can also reside outside the Docker containers; similarily, load balancing could also be done on the containerized Puma server; due to the containerized nature of the setup, any container can be pulled out and hosted in a different manner. + + + +## Engines and modularity + +To achieve a level of modularity/extensibility, SciNote introducec a concept of **addons**. Modularity in the sense that additional features can be bundled alongside SciNote core in the form of addons. An addon is simply a [Rails engine](http://guides.rubyonrails.org/engines.html) that adds/modifies functionalities of SciNote core (like e.g. [Wordpress plugins](https://wordpress.org/plugins/)). + +Addons can be used to introduce new, toggle-able functionalities into SciNote at build-time. Often, however, addons will want to have some stitching points with SciNote core, which inherently means that they require to modify some of the SciNote core codebase (e.g. addons inject some of their components into existing SciNote core codebase). This is achieved by using the following methods: +* `ActiveRecord` models are modified using decorator pattern (using `class_eval`); +* `Controller`-s are modified using decorator pattern (using `class_eval`); +* `.erb` templates are modified using Ruby Gem called [Deface](https://github.com/spree/deface); +* `JavaScript` code is modified in different ways; but mostly, a new `.js` file is contained with the addon, and referenced from the injected `.erb` view. + +On an architectural level, all addons are - inherently - dependant on SciNote core, but they can also be dependant on one another. + +The addons are packaged alongside SciNote at a build/deployment time. This means that once the SciNote (actually, Rails server) starts, the addons are loaded alongside SciNote core, and further modification while the server is running are not possible. This is what is meant by build-time modularity: + +``` ++-----------------------------------------------+ +| SCINOTE | +| | +| SciNote core addon #1 addon #2 ... | +| +----------------++----------+----------+ | +| | frontend || frontend | frontend | | +| | __ __ __|| __ __| __ __| ... | +| |_/ \__/ \__/ ||_/ \__/ |_/ \__/ | | +| | backend || backend | backend | | +| +----------------++----------|----------| | ++-----------------------------------------------+ +``` + +To add an addon to a SciNote deployment, the following basic steps need to be done: + +* Addon source code must be added as a folder under: + + ```bash + /addons/ + ``` + +* Inside `Gemfile`, following reference must be added: + + ```ruby + gem '', path: 'addons/' + ``` + +* (If neccesary) Add the following reference inside `config/routes.rb`: + + ```ruby + mount My::Addon::Engine => '/' + ``` + +* (If neccesary) Add the following reference inside `app/assets/javascripts/application.js.erb`: + + ```js + //= require my/addon + ``` + +* (If neccesary) Add the following reference inside `app/assets/stylesheets/application.scss` (starting comment): + + ```css + *= require my/addon/application + ``` + +Of course, additional steps might need to be done (e.g. configuring the addon via the initializer, etc.). \ No newline at end of file diff --git a/_Sidebar.md b/_Sidebar.md index 628517f..80b2db4 100644 --- a/_Sidebar.md +++ b/_Sidebar.md @@ -1,11 +1,10 @@ [Home](home) * [About SciNote](about-scinote) - * [What is SciNote?](about-scinote#what-is-scinote) - * [What can you do in SciNote?](about-scinote#what-can-you-do-in-scinote) * [Setup guide](setup-guide) + * [Technical overview](Technical-overview) * [Build & run](Build-&-run) * [Environmental variables](Environmental-variables) - * [Production mode (in Docker containers)](Production-mode) + * [Production mode](Production-mode) * [Rake tasks](Rake-tasks) * [Mailer](setup-guide#mailer) * [Office Online integration](setup-guide#office-online-integration) diff --git a/images/Docker-Schema.png b/images/Docker-Schema.png new file mode 100644 index 0000000000000000000000000000000000000000..7b8d7df868278f8496786370aaf769640e2f0976 GIT binary patch literal 47254 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%0Av|QgE%dx`s+8$i27o-iPFPZiIEZ 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