Spinalcore standard library organization

SpinalSystem Overview

Intelligent system powered by spinalcom are using a model/process architecture, which can be seen as a extension of a model/view architecture. The model and process are defined in the Overview page and can be summarized like this :

  • model = digital twin: the data structure or object that represent the reality, and that will be automatically synchronized through all the organs of the system thanks to Spinalcore object replication system
  • process = organs: the process are distributed in all the organs of the system/ Each process can react to any model modification thanks to Spinalcore distributed event management system. We distinguish four types of process (organs) as described in the overview :
    • UI
    • analtyics
    • database, storage & retrieval
    • monitoring & actionning


When building a spinal system, you are going to define the system architecture (list and function of the organs that contains specific process) and the digital twin architecture.

The first objective of this framework and best practices page is to help you organizing your developments so you can easily and quickly build a powerful intelligent system.


The second objective is to give you a good understanding of the predefined tools that spinalcom has designed for you to help developing intelligent system with real time capabilities for 3D, documentation, messaging, monitoring…. We call these predefined tools the environments. As today we provide 3 “browser” environment :

  • admin environment
  • drive environment
  • 3D viewer environment (Based on Autodesk Forge open source viewer)


System organization


Framework & Naming conventions

In order to organize the development we have developed a framework and a naming convention for all the repositories of the plateforme that respect :

  • the intelligent system definition provided in the overview
  • the fact that we use npm as our main package manager
  • the necessity to organize the sources of the organs that correspond to web pages in a place where the Spinalhub web server can find and serve them.

Framework

Naming conventions

package name

desciption

examples

spinal-core-...

repositories for the hub and javascript connector

spinal-core-hub, spinal-core-connectorJS

spinal-model-...

repositories where the models are defined

spinal-model-graph, spinal-model-visas...

spinal-organ-...

repositories where you define the source of your specific process


spinal-browser-...

repositories where you define the source of your specific web page process that will be served by spinalhub web server (the web browser organs)


spinal-env-...

repositories that contained the source of the prédefined environment provided by spinalcom

spinal-env-drive, spinal-env-admin, spinal-env-viewer

spinal-env-...-plugin-...

repositories where you define the plugin processes that work on top of the environments

spinal-env-drive-plugin-log

spinal-env-viewer-plugin-doc

spinal-env-...-join-...

repositories that define how to “join” the environment plugins with the environments