High-Level Architecture of the Main Framework Used in the Application
The map below illustrates the organization of files, modules, databases, and the Frontend-Backend connection within the MEDomics platform. This visual guide is designed to support new contributors in understanding the application’s structure, streamlining the integration of new features, and aiding efficient navigation through the codebase.
{% embed url="https://miro.com/app/embed/uXjVKiE9qtw=/?embedId=366443778390&frameId=3458764605680580664&pres=1" %} the MEDomics platform detailed architecture {% endembed %}
{% hint style="info" %} Go visit our GitHub development branch! {% endhint %}
Follow the installation instructions depending on your OS for MongoDB Installation.
{% tabs %} {% tab title="Windows" %} Install MongoDB on Windows
- Do not install MongoDB as a service.
- You do not have to install MongoDB Compass.
- You do not have to install mongosh.
- Do not forget to add MongoDB binaries to the System PATH. {% endtab %}
{% tab title="Linux" %} Install MongoDB on Linux (Ubuntu)
- Install the latest version of MongoDB {% endtab %}
{% tab title="Mac" %} Install MongoDB on Mac {% endtab %} {% endtabs %}
Follow the installation instructions depending on your OS for MongoDB Database Tools Installation.
{% tabs %} {% tab title="Windows" %} Install MongoDB Database Tools on Windows
- Install with the MSI Installer. {% endtab %}
{% tab title="Linux" %} Install MongoDB Database Tools on Linux
- Install with the DEB package. {% endtab %}
{% tab title="Mac" %} Install MongoDB Database Tools on Mac
- Install with Homebrew. {% endtab %} {% endtabs %}
nvm install lts
nvm use lts
{% hint style="warning" %} We are currently using develop as our integration branch. {% endhint %}
{% tabs %} {% tab title="HTTPS" %}
git clone -b scalability https://github.com/MEDomics-UdeS/MEDomicsLab.git
{% endtab %}
{% tab title="SSH" %}
git clone -b scalability git@github.com:MEDomics-UdeS/MEDomicsLab.git
{% endtab %} {% endtabs %}
- Download the latest stable release of Go from the official website: https://golang.org/dl/
- Follow the installation instructions for your operating system.
{% tabs %} {% tab title="Windows" %} Execute these commands in a CMD prompt:
setx GOPATH %USERPROFILE%\go
setx PATH "%PATH%;C:\Go\bin"
{% endtab %}
{% tab title="Linux and Mac" %}
Execute these commands in a terminal:
echo 'export PATH=$PATH:/usr/local/go/bin' >> $HOME/.bashrc
echo 'export GOPATH=$HOME/go' >> $HOME/.bashrc
echo 'export PATH=$PATH:$GOPATH/bin' >> $HOME/.bashrc
{% endtab %} {% endtabs %}
After, close all your terminals because these commands will take effect on the initialization of any terminal
- Open a new terminal
- Run the command
go version - If Go is installed correctly, you should see the version number printed to the console.
- Open a new command prompt and go to the
<repo path>/go_serverdirectory. - Run the command
go run main.go(on first time, it should download the required libraries and launch the server) - You can terminate the process by pressing
CTRL + C - Finally, build the app by running
go build main.go(It should create an executable file -> that file will be run by the client-side JavaScript, so modifications to.gofiles must be followed by a rebuild. Congratulations, you're now ready to start developing Go applications!
cd <.../MEDomicsLab/>
git checkout dev_lab
cd ../MEDprofiles
git checkout fusion_MEDomicsLab
{% code fullWidth="false" %}
cd <.../MEDomicsLab>
npm install
npm run dev
{% endcode %}
{% hint style="warning" %}
On Windows, if you encounter error messages when running npm installrelated to tensorflow .dll files missing, revert your node version by following these steps:
- Download node v18.16.1
- Add to the PATH variable the path to your new node placing it higher than the old node.
- Test your node version using:
node --version{% endhint %}
{% hint style="info" %} MongoDB configuration
The MEDomicsLab platform uses port 54017 as the default MongoDB connection port. For database visualization and management, we recommend using MongoDB Compass, the official GUI client from MongoDB.
Key Details:
- Default Port:
54017 - Recommended Client: MongoDB Compass
- Connection String Format:
mongodb://localhost:54017/{% endhint %}
{% hint style="info" %}
- Go to file
medomics.dev.js - Here is a description of the Object:
const config = {
// If true, the server will be run automatically when the app is launched
runServerAutomatically: true,
// If true, use the React dev tools
useReactDevTools: false,
// the default port to use for the server, be sure that no programs use it by default
defaultPort: 5000,
// Either "FIX" or "AVAILABLE" (case sensitive)
// FIX -> if defaultPort is used, force terminate and use defaultPort
// AVAILABLE -> if defaultPort is used, iterate to find next available port
portFindingMethod: PORT_FINDING_METHOD.FIX
}{% endhint %}
{% tabs %} {% tab title="Windows" %}
npm run build:win # build and package the application
.\build\dist\win-unpacked\MEDomicsLab.exe # Run the executable of the built version
{% endtab %}
{% tab title="Linux" %}
npm run build:linux # build and package the application
bash build/dist/linux-unpacked/medapp # Run the executable of the built version
{% endtab %}
{% tab title="Mac" %}
npm run build:mac # build and package the application
bash build/dist/mac-arm64/MEDomicsLab.app/Contents/MacOS/MEDomicsLab # Run the executable of the built version
{% endtab %} {% endtabs %}
The built app will be located in the
build/distfolder
