Developers

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Git

Git flow branch description:

  • master (production)

    • hotfix/task

  • develop (development)

    • feature/task

    • release/version

Installation

Biometrid requires Node.js v14+, NPM v6+ and MongoDB v4+ to run.

$ git clone git@bitbucket.org:polygon_/biometridon_v2.git
$ cd biometridon_v2
$ npm install

Environment variables

There are several variables to be configured, from Database connection to Biometric and Twilio settings. Check below an example.

// .env.example

APP_URL=http://localhost:3333

HOST=localhost
PORT=3333

API_URL=${APP_URL}/api
WEBVIEW_URL=${APP_URL}/webview

APP_NAME=Biometrid
NODE_ENV=development
CACHE_VIEWS=false
SESSION_DRIVER=cookie
HASH_DRIVER=bcrypt
SAVE_AUDITS=true
SAVE_LOGS=true

DB_CONNECTION=mongodb
DB_HOST=localhost
DB_PORT=27017
DB_USER=
DB_PASSWORD=
DB_DATABASE=biometrid
DB_CONNECTION_STRING=mongodb://127.0.0.1:27017/biometrid

# x509 CERTIFICATES
DB_SSL=false
DB_AUTH_MECHANISM=
DATABASE_X509_USER=

## Following paths most be in root project directory
DATABASE_PATH_LOCAL_SSL_KEY=/certificates/client.pem
DATABASE_PATH_LOCAL_SSL_CERT=/certificates/client.crt
DATABASE_PATH_LOCAL_SSL_CA=/certificates/ca.crt

# JWT DEFAULT SETTINGS FOR CLIENT TOKEN AND USER TOKEN
APP_KEY_CLIENT=<ask for it>
APP_KEY_USER=<ask for it>
JWT_EXPIRE_CLIENT=1h
JWT_EXPIRE_USER=1d

# MAIL SETTINGS
MAIL_CONNECTION=smtp
MAIL_PORT=
MAIL_HOST=
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_FROM=
MAIL_FROM_NAME=

# API PROCESSES SETTINGS
API_PROCESS_LIFETIME=2
API_PROCESS_SCHEDULED_TIME=60

# UPLOAD SETTINGS
FILE_MAX_SIZE=2
IMAGE_FILE_TYPE_ALLOWED=jpg,jpeg,png
AUDIO_FILE_TYPE_ALLOWED=wav
DOC_FILE_TYPE_ALLOWED=pdf

# TEMP UPLOAD FOLDER
TMP_UPLOADS_PATH=tmp/uploads/

# FOLDER TO PLACE UPLOADED FILES
UPLOADS_PATH=uploads

# CRON SETTINGS
CRON_SCHEDULE_UNLOCK="*/10 * * * *"
CRON_SCHEDULE_TMP_DELETE="0 0 0 * * *"
CRON_SCHEDULE_DELETE_PROCESSES="0 2 * * *"

# PROVIDERS
VID01_ACCOUNT=
VID01_KEY=
VID01_SECRET=
VID01_SMSACCOUNTSID=
VID01_SMSAUTHTOKEN=
VID01_SMSFROMNUMBER=
FACE02_TOKEN=
FACE01_TOKEN=
OCR01_ACCOUNTID=
OCR02_COMPANY=
OCR02_USER=
OCR02_PWD=

Start

$ mongod
$ adonis biometrid:install
$ adonis polygon:install
$ npm run dev
$ npm run watch
$ node ace run:scheduler

Testing

For testing purposes, please create file .env.testing.

// .env.testing.example

HOST=localhost
PORT=3334
NODE_ENV=testing
APP_URL=http://${HOST}:${PORT}

#IDCARD_FRONT='path_from_tmp_folder.jpg'
#IDCARD_BACK='path_from_tmp_folder.jpg'
#SELFIE='path_from_tmp_folder.jpg'
#PHOTO='path_from_tmp_folder.jpg' (IDCARD photo)
#PHOTO_FAKE='path_from_tmp_folder.jpg' (another person photo)
#FACEMAP='facemap.txt'
PHONE='+351930000000'
EMAIL='admin@polygon.pt'

DB_CONNECTION=mongodb
DB_HOST=127.0.0.1
DB_PORT=27017
DB_USER=
DB_PASSWORD=
DB_DATABASE=biometridTesting
DB_CONNECTION_STRING=mongodb://127.0.0.1:27017/biometridTesting

SAVE_LOGS=true

Be sure that you have AdonisJs Cli installed on your system.

$ npm run lint
$ npm run test

Docker

Change .env HOST to 0.0.0.0.

$ docker-compose build && docker-compose up -d

Last updated

Was this helpful?