Synthesis Image Noise Detection on Distributed Data (SIN3D)
A web app to collect data on noise detection by humans on images.
git clone https://gogs.univ-littoral.fr/Prise3D/SIN3D.git cd SIN3D
You can use the SIN3D-data-extract library to easily extract data from this application database.
Run as a Docker instance
Use the following environment variables to configure the application.
||The port used by the started application|
||Should the server serve client (Fully local application)|
||The directory where the images are stored (absolute path if changed
||MongoDB database connection URI|
Configure more deeply the way the app works by modifying config.js.
||The url prefix for the API|
||The url prefix from where the images are served|
||The port used by the server|
||MongoDB database connection URI|
||The directory where the images are stored|
||Should the server serve client files from the
||File name convention for images|
||Name of the directory containing extracts|
||Files to ignore in scenes|
||Cron time for extracts deletion|
||Default application logger|
||Database logger configuration|
Run server + client
PORT=8080 SERVE_CLIENT=true IMAGE_PATH=/var/images docker-compose up
SET PORT=8080 SET SERVE_CLIENT=true SET IMAGE_PATH=C:\my\images docker-compose up
Run server only
SERVE_CLIENT=false docker-compose up
SET SERVE_CLIENT=false docker-compose up
Run client only
docker-compose -f docker-compose.frontapp_only.yml up
New version Docker build
When using a new version of the project, you need to re-build the application with Docker.
# Server / Server + client versions docker-compose build # Client only version docker-compose -f docker-compose.frontapp_only.yml build
Docker instance on a Windows host
As of now, Windows hosts are not supported due to MongoDB volumes not being mappable to this system.
Run on the file system
Install project's dependencies.
If this is a production build, set the
NODE_ENV environment variable to
production to enhance performance.
Run the server
yarn run server:start
If you specifically want to not start the extracts remover service (extracts are automatically deleted everyday), use the following.
Automatically fix the API code syntax with ESLint
yarn run server:lint
To use the client, you need to initialize experiment configurations first.
cp -r experimentConfig.default experimentConfig
You can modify the configuration for each mixins, experiments or scene by modifying files in the newly created
Compile and minify for production
Files will be built to the
yarn run app:build
Run a hot-reload server for client development
yarn run app:dev
Automatically fix the client code syntax with ESLint
yarn run app:lint
The app can be automatically deployed when a push event is sent to the master branch using Gogs. Open a port to the web and start webhook_deploy_gogs.js.
WEBHOOK_SECRET=your_webhook_secret WEBHOOK_PORT=5000 SERVE_CLIENT=true PORT=8080 node webhook_deploy_gogs.js
You can pass any parameters to the script, they will be passed to the Docker instance. The following are required.
||The secret set on Gogs to verify the identity|
||The port the script is listening to|
docker-compose script will automatically run tests. Use the following command to run them by hand.
Generate API documentation
docker-compose script will automatically build the API documentation. Use the following command to build it by hand.
The documentation is generated to the
doc/ directory. If you started the server, the documentation is served at
During application use a lot of data is collected by platform, here a description of main message identifier used:
- COLLECT_DATA: specify that the collected data process began.
- EXPERIMENT_STARTED: message which is used for start of an experiment.
- EXPERIMENT_DATA: message for data of an experiment.
- EXPERIMENT_VALIDATED: end of experiences message.