Skip to content

BiometricsUBB/Forensic-Biometrics-Studio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

369 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Biometrics Studio

Application for forensic trace comparison

biometrics studio

Installation on Windows

You have three options to install the application on Windows:

  1. (easiest) Download the installer from the releases page and run it on your system. The installer will download all the necessary dependencies and install the application on your system. You can then run the application by opening the biometrics-studio shortcut on your desktop.

  2. (moderate) Follow the #Development section below to install the application on your system.

  3. (if you plan to debug or develop the app later) Clone or download the repository and run the installer script via the command line (make sure you are in the root directory of the project):

powershell -ExecutionPolicy Bypass -File .\install.ps1
Note
The above command would install dependencies onto your system. Then you can run the application by opening the .\start.bat file.

Instalation on macOS

Since the application is not signed, you need to remove the quarantine attribute before running it. This step is required after installation, specifically after moving the application to the Applications folder. To do this, execute the following command in the terminal:

xattr -d com.apple.quarantine /Application/biometrics-studio.app

Make sure to use the correct path to the application.

Development

Pre-requisites

First, you need to have Tauri installed (v2 at the time of writing)

Then just run the following commands to start the app:

pnpm i
pnpm tauri dev

Adding New Marking Classes (Current as of: 2025-01-30)

  1. Create a New Class

    1. Add the new marking class to the MarkingClass enum in MarkingBase.

    2. Add a new class extending MarkingBase:

      1. Assign the markingClass variable.

      2. Override the necessary methods, especially isVisible.

    3. Add the new class to the parameter properties of the updateTemporaryMarking method in Markings.ts for proper updating.

  2. Add Translations

    1. Add the new class to the list of keys in translation.ts.

    2. Exclude functions from translation by adding an exclusion for their names.

    3. Add translations in locales/lang/object.ts.

  3. Create Drawing Logic

    1. In marking.utils.tsx, add a case for the new class and implement the drawing logic.

      1. If the logic uses absolute positioning, calculate its viewportPosition to ensure it works properly with zoom (based on MarkingBase.calculateOriginViewportPosition).

  4. Create a Handler for Mouse Events

    1. Add new 'ClassMarkingHandler' extending 'MarkingHandler'

    2. In markingModePlugin.ts, add a case for the new class and invoke the created handler

  5. Add a Cursor Mode Button to the Toolbar

    1. In toolbar.tsx, add a ToggleGroupItem for the new class.

      1. Browse icons at LucideIcons.

  6. Adjust Save Markings to File Logic in saveMarkingsDataWithDialog.ts

    1. Add properties to ExportObject.Data.Markings. Marking class-specific properties should be nullable.

    2. Add the new properties to the getReducedMarkings function.

  7. Adjust Load Markings from File Logic in loadMarkingsDataWithDialog.ts

    1. Add a case and properties to the inferMarking function.

  8. Add shortcut to useKeyboardShortcuts.tsx. (optional)