Developers
warning
This guide uses Linux/Unix commands.
Windows users may need to adapt paths and use PowerShell or WSL.
Prerequisites
Get codebase
git clone
# with HTTPS
git clone https://github.com/sound-scape-explorer/sound-scape-explorer.git
# with SSH
git clone git@github.com:sound-scape-explorer/sound-scape-explorer.git
Download zip
sound-scape-explorer-14.0.13.zip 125 MBMonorepo structure
sound-scape-explorer/ # Monorepo root
├── .github/workflows # CI/CD pipeline definitions
├── audio # "Audio" module (Express app)
├── bin # User installation scripts
├── campaign # "Campaign" module (React app)
├── examples # Examples
├── front # "Visualisation" module (Vue app)
├── processing # "Processing CLI" module (Python app)
├── shared # Shared utils, enums and schemas for JS packages
└── visualisation # "Standalone" app (Electron app)
Python setup
cd processing
python3.11 -m venv venv
source venv/bin/activate
./install_deps_with_dev.sh
JS setup
# at monorepo root
./reinstall_npm_packages.sh
pnpm visualisation:prepare-bins
Starting a development environment
Python
The installation script sets up the environment with watch mode enabled.
Update your code and run sse commands from the activated venv shell to see
changes immediately.
JS
You will need to start each module independently.
We recommend using a terminal multiplexer like tmux.
# Each terminal supposes monorepo root as current working directory
# First terminal - Visualisation module
# Will spawn at http://localhost:5530/
cd front
pnpm dev
# Second terminal - Audio module
# Will spawn at http://localhost:5531/
cd audio
pnpm dev $(which ffmpeg) $(which ffprobe) /path/to/audio/folder
# Third terminal - Campaign module
# Will spawn at http://localhost:5532/
cd campaign
pnpm dev
# Fourth terminal - Electron module
# Will spawn GUI
cd visualisation
npm run dev # !!!!! npm not pnpm
Build
Python package
cd processing
source venv/bin/activate
python -m build
Electron package
pnpm visualisation:prebuild
cd visualisation
npm run build
Run tests
./run_tests_all.sh