The Iris Analysis Toolkit (IAT), formerly known as the Iris Workstation and Iris Workstation Prototype, is a system that demonstrates the capabilities of an iris examination workstation. It was made to allow users to easily create generic Electronic Biometric Transmission Specification files as well as review and annotate iris images.
This program was built using these package managers, but may work with newer versions:
- Development Platform: Angular Cli -v 17.3.1
- Runtime Environment: node -v >= 20.15.0
- Angular Package Manager: npm -v 10.8.1
- Java SE Environment: java -v 17
- Build Package: maven -v 3.9.6
This section gives steps to start the program for users who are simply looking to run the application (i.e., are not troubleshooting or developing). Since this section only runs docker containers, it doesn't run any changes made on the local environment.
-
Start Up Project
-
IMPORTANT! The
docker compose
files in theiwp-simple
directory will use credentials from a.env
file in that directory. For security reasons, a.env
file is not included in this repo. To use thedocker compose
files you will need to create a.env
file in theiwp-simple
directory with the following contents:DATABASE_PASSWORD=A_STRONG_PASSWORD_OF_YOUR_CHOOSING DATABASE_USERNAME=A_USERNAME_OF_YOUR_CHOOSING DATABASE_ROOT_PASSWORD=ANOTHER_STRONG_PASSWORD_OF_YOUR_CHOOSING
See this link for details about .env files
-
In the terminal, type the following commands to start up docker containers:
cd iris-workstation/iwp-simple/ #Navigates into to the subdirectory that contains the docker scripts for easy running ./composeScript.sh prune #Clear out old/unwanted data and unused containers, images, etc: docker compose up #Runs the docker script for easy start up
-
-
Use Project
- Open choice of web browser and navigate to
localhost:8080
- Log in with username and password
- Start generating and annotating files
- Open choice of web browser and navigate to
This section gives steps to start the program in the "editing mode". The following steps are for developers who are troubleshooting or contributing to the code. This section starts up the program to run only the services in docker containers. The backend and frontend parts are built and ran using the code from the local environment.
Follow the steps below to get started with this project's development environment on a Mac.
-
Install Xcode Command Line Tools
-
Open Terminal and type the following command:
xcode-select --install
-
In the new dialog windows, confirm and agree to the installation and license agreement
-
-
Install Homebrew
-
Open Terminal and type the following command:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
-
Type your admin password and hit Enter1
-
Wait a few minutes until you see a "Installation successcul" message
-
-
Install Packages
- Open Terminal and type the following commands to install the packages:
brew install angular-cli #Angular Cli brew install node@20.15.0 #Node brew install maven #Maven
- Clone Project
- Start Up Project:
-
In the terminal, type the following commands to start up the docker containers:
cd iris-workstation/iwp-simple/ #Navigates into to the subdirectory that contains the docker scripts for easy running ./composeScript.sh prune #Clear out old/unwanted data and unused containers, images, etc. docker compose -f docker-compose.local.yml up #Runs a docker script that only starts up the services from docker containers
-
Open a second terminal window and type the following commands to start up the backend:
After this step you can access the application at http://localhost:8080.
cd iris-workstation/ #Navigates to the project's home directory UNIX: export JASYPT_ENCRYPTOR_PASSWORD="examplepass" Windows: $Env:JASYPT_ENCRYPTOR_PASSWORD ="examplepass" ./iwp-script.sh full #Runs the local backend services, including any changes just made
-
(Optional) Open a third terminal window and type the following commands to start up the frontend:
You only need this step if you want access to a front end that automatically refreshes when changes are made.
After this step you can access the front end development server at http://localhost:4200.
Special note about the front end development server: Due to some Spring Security and webpack-dev-server proxy complexities, the login page does not work through the development server. You likely will see strange and broken behavior on the front end development server. There are two workarounds for this:
-
Disable the login page while doing front end development by setting
iwp.security.secured=false
in theapplication.properties
file. -
Go to the front end hosted by the Java backend http://localhost:8080 and login there. Requests through the front end development server http://localhost:4200 should then be authenticated.
cd iris-workstation/client/ #Navigates to the project's front end subdirectory yarn run local #Runs the local frontend services, including any changes just made
-
-
(Optional) Open a fourth terminal window and type the following commands to start up the database management container:
You only need this step if you want to access the database for debugging purposes.
cd iris-workstation/ #Navigates to the project's home directory docker run --name iwp_php_admin --network iwp-simple_default -v phpmyadmin-volume:/etc/phpmyadmin/config.user.inc.php --link iwp_mysql:db -p 82:80 -d phpmyadmin/phpmyadmin #Runs the database container
-
- Use Project
- Open choice of web browser and navigate to
localhost:4200
- Log in with username and password
- To see the database, open choice of web browser and navigate to
localhost:82
- Log in with username and password
- Open choice of web browser and navigate to
This software (or technical data) was produced for the U. S. Government and is subject to the Rights in Data-General Clause 52.227-14, Alt. IV (May 2014) – Alternative IV (Dec 2007)
Footnotes
-
You won't see your keystrokes in the terminal ↩