This page is still being edited and reviewed.
Both the native and Docker installation for development will result in cloning the source code (or a fork of it) for Chemotion ELN project. The source code can be found on GitHub. The images in this chapter are provided from the Docker installation, where the source code can be found in
The project is built with the Ruby on Rails framework in version 5. It uses the Model-View-Controller (MVC) architectural pattern. However, this project differs from a typical Ruby on Rails project with the following points:
- It is using JSON API.
- Rails comes with built-in support for SQLite, but the project is using PostgreSQL. Redis might be used in the future as well.
- Front-end: Written in React framework. The main page is a single-page application (SPA) along with a few other pages.
For compiling assets Webpacker is used in addition to (or in the future replacement of) the Rails Asset Pipeline. There are currently multiple directories containing assets (e. g. under
It contains the configuration of the application. database.yml contains the configuration of the database. There is also the environments directory which contains the three environments provided by Ruby on Rails by default which are development, production and test environments. Another directory here is the initializers where the configuration of extensions is located. For instance, devise is a package for authentication where the configuration of the mail sender and passwords happen.
Modules related to the application are added to this directory, such as PubChem, DataCite, OpenBabel. It also has the storage directory where the files are uploaded.
It contains the installed node modelus, that are installed by yarn.
It contains the static files. The directory images contains the images of the molecules for instance, but it is difficult to query them as they have hexadecimal identifiers. When creating, e.g., a new reaction, the application will create an image for it and store it in the images/reactions directory.
It contains the attachments uploaded by the user.