These are the standards that should be used when coding for this project.
- Code:
- Check with ESlint
- Follow google guide,
- No variables or functions should be defined in the global namespace, all should be in the
dwv
var, - Favour function expression (
a=function()
) rather than function declaration (function a()
), see link. It allows to put them in the globaldwv
object, - Use design patterns from dofactory and addyosmani
- Test: use of QUnit via Karma,
- Documentation: use of jsdoc,
- Versioning: Semantic Versioning
- Branch: try to follow some kind of branching model
These standards are enforced using Continuous Integration with github-actions: builds using node (see .github/workflows/nodejs-ci.yml
) and yarn. The CI basically executes yarn install
that reads the package.json
file and then runs yarn run test
. This test target is configured to run a task runner called Grunt which is configured with the Gruntfile.js
file. The package.json
file contains shortcuts to grunt scripts:
yarn run test
-> grunt-karma that allows to run qunit tests using a headless browser such a Google Chromeyarn run lint
-> grunt-eslint that lints the codeyarn run build
-> grunt-contrib-concat that concatenates a list of files together and grunt-contrib-uglify that minifies the code
Others
- Icons: firefox-os styleguide
Services
- Github (status), build status
- Transifex: translations, dwv page
- Dependabot: dependency up to date bot checker, dwv page
Others:
- Code Climate (status): code review + test coverage + lint, dwv page
- David-dm: dependency up to date checker, dwv page
- Fossa: license check, dwv page
Generic
- Certification: Europe, US (FDA) -> IEC_62304
- Dicom Conformance Statement: dicomiseasy post
- Health Insurance Portability and Accountability Act (HIPAA): official, wikipedia
- Methods for De-identification of PHI (protected health information). See related DICOM Supplement 142 (and this presentation)