The Photo ID app is a multi-platform research tool that can be used for photo-identification methodologies such as in longitudinal mark-recapture studies. It allows for the grouping of photographs containing unique identification markings (such as the dorsal fins of cetaceans), and includes tools for editing and visually filtering photographs to help with identification of marks, and exporting matches.
It supports Windows, macOS, and Linux.
Tip
📚 Check out the documentation for guides on how to install and use the app!
- Clone the repository
- Ensure you are using Node version >= 24 (
nvm install 24/nvm use 24) - Install the dependencies by running
npm ci - If using VS Code install the ESLint and Prettier extensions
Below are the NPM commands that can be used for development:
| Command | Description |
|---|---|
start |
Starts the app in development mode. |
package |
Builds and packages the app. |
make |
Builds app distributables. |
publish |
Publishes the app. |
changesets:add |
Adds changeset. |
changesets:version |
Bumps the app version. |
changesets:tag |
Tags the app and pushes to remote. |
test |
Runs test:linting, test:types, and test:unit sequentially. |
test:linting |
Runs ESLint and Prettier tests. |
test:types |
Runs TypeScript tests. |
test:unit |
Runs unit tests and generates a coverage report. |
test:unit:watch |
Same as test:unit but runs it in watch mode. |
docs |
Builds and serves documentation locally. 1 |
1 Requires Material for MKDocs.
Using VSCode, a debugger can be attached to the main process in Electron by running "Debug main process" in the Run and Debug view.
The app uses Sentry to track errors and logs for debugging in published production builds. To enable this locally, add an .env file to the root of the repository using the variables defined in .env.example. This file also needs to be created when publishing to ensure the values are included in the production build.
