Tamarin is an open-source interactive alternative ranking system for Multi-Criteria Decision-Making (MCDM) designed to help users select the optimal technology alternatives based on their preferences and criteria. The software integrates quantitative and qualitative data to rank alternatives, considering user-defined importance and uncertainty levels. Tamarin’s dynamic user interface allows real-time adjustments, enabling users to set for each criteria, importance, and granularity, and observe the impact on rankings. Built for flexibility, Tamarin supports various decision-making scenarios, including refurbishment technology selection, washing machine comparisons, or any decision involving evaluated alternatives provided through CSV files.
You can observe not only the ranking but also the impact of each parameter on the final ranking but on each individual criteria with the parallel plot visualisation:
For version 2.0 the idea is to generate a static version of the application that can be served by any web server. This mean rendering the pug into HTML, rendering the scss to css and bundling the app logic into a single js file. The "api" part is statically generated, (the JSON files are directly served as files). Version 2 will drop all the app logic, and will rely on the csv import for the orignal dataset.
To build the full project:
npm run build
you can build indivually the css, pug or js elements.
build-css
sass public/stylesheets/style.scss docs/static/stylesheets/style.css --quiet
build-pug
npx pug3 -P views/index.pug --out docs/static/
build-template
node src/exportTemplate.cjs
build-js
npm run build-template && webpack --config webpack.config.cjs --mode=production
build
npm run build-css && npm run build-pug && npm run build-js
- Create the database and populate the database
- Create an empty database on mysql
- Import db/structure_*.sql ( you may have to reorder the elements )
- import dataset db/dataset.sql
- rename .env.exemple .env and modify .env file with database information (host, name, user, password)
- install libraries : npm install
- test by launching the app : npm start
- install nodemon : npm install nodemon
- launch the app :
- nodemon ./bin/www.mjs
- Or a better version :
- nodemon -i public/javascripts -e js,pug,mjs,cjs bin/www.mjs
Masson, D., Laguna Salvadó, L., & Villeneuve, E. (2024). Tamarin [Computer software]. https://doi.org/10.5281/zenodo.13628637
@software{Masson_Tamarin_2024,
author = {Masson, Dimitri and Laguna Salvadó, Laura and Villeneuve, Eric},
license = {MIT},
month = sep,
title = {{Tamarin}},
url = {https://github.com/dhmmasson/tamarin},
version = {v1.9},
year = {2024}
doi = {10.5281/zenodo.13628637}
}
Masson, D., Laguna Salvadó, L., & Villeneuve, E. (2024). Tamarin (Version v1.9) [Computer software]. https://doi.org/10.5281/zenodo.13628740
@software{Masson_Tamarin_2024,
author = {Masson, Dimitri and Laguna Salvadó, Laura and Villeneuve, Eric},
license = {MIT},
month = sep,
title = {{Tamarin}},
url = {https://github.com/dhmmasson/tamarin},
version = {v1.9},
year = {2024}
doi = {10.5281/zenodo.13628740}
}