3D mesh and image annotation in the browser, the app is live at https://www.landmarker.io.
See landmarkerio-server for installation instructions for the server.
Getting set up for development
The landmarker.io client uses NPM for all dependencies. As a prerequisite, you'll need node.js and NPM installed on your system. With these set up, just
cd to the top landmarker.io directory and run:
> npm install
This may take some time as all dependencies are installed.
> npm run watch
from the project's root directory. This will create all necessary build files and update them anytime a source file changes. Visit http://localhost:8080 to see the development version of the tool.
If you want to just generate the output files that need to be served, run
> npm run build
We use SCSS for styles. There are currently no particular requirements other than putting all variables in
src/scss/_variables.scss and importing module in the entrypoint
src/scss/main.scss. Try and keep module at a reasonable size and make sure they contain related styles, don't hesitate to split them up.
Notes on deployment
We use Travis CI for deployment.
deploy.sh is the script we run for our travis ci build. It simply builds the current branch and update the github pages branch to track the released version as well as staged versions.
A release is done through a tag, which will update the root directory and clean the rolling history (only the last 3 deployed tags are kept). Any other branch (including master) is deployed at
/staging/branchname and gets a link in
/staging/index.html. We release by tagging master and pushing tags, this can be done with
npm version. For example to release a minor version change:
> git checkout master > npm version minor > git push --tags
A changelog should be drafted on the Github releases page for the newly released version. Note that users have a link to this page from the version number on the intro screen, so release notes should be written in a user-friendly way (think how App Store release notes are done).