BYU-TRG-Team / baseterm

A termbase management application that follows the TermBase eXchange v3 standard. The app currently only supports the TBX-Basic dialect.
https://www.tbxinfo.net/
Apache License 2.0
1 stars 0 forks source link

BaseTerm

A termbase management application that follows the TermBase eXchange (TBX) v3 standard. The application makes use of the BaseTerm API for the underlying CRUD operations on TBX elements. Currently, the application supports the TBX-Basic dialect and Data Category as Attribute (DCA) style.

Installation

Contact the BYU TRG

Before installing any instance of BaseTerm, please reach out to the BYU TRG at byutrg@gmail.com to establish a dialogue with the team. Please include any necessary contact info so that we can reach out to you for important version updates.

Install BaseTerm API

Please reference the BaseTerm API repository for setup instructions.

Server Requirements

Setup PostgreSQL instance

A PostgreSQL (postgres) instance will be needed for the BaseTerm application. A database will also need to be created in the postgres instance. Both BaseTerm and the BaseTerm API can use the same PostgreSQL instance and database since they utilize separate schemas.

Install

Please reference the postgres downloads for installers for various platforms.

Setup database schemas

The postgres database will need to be setup with proper schemas using the node-pg-migrate postgres migration tool. The tool first needs to be installed using NPM. Once installed, the tool is run with a connection string for the postgres database.

npm ci
DATABASE_URL=<url for the BaseTerm database> npm explore @byu-trg/express-user-management -- npm run migrate up

Please reference the node-pg-migrate docs for further use of this migration tool.

Build and deploy application

Third Party Requirements

Zoho Mail setup

Visit the Zoho Mail website for more information on setting up an email account.

If MFA is enabled, an app-specific password will need to be generated and used with BaseTerm instead of the account password.

SendGrid setup

Visit the SendGrid website for more information on setting up an email account.

An API key will need to be generated with full access to be used with BaseTerm.

Environment Variables

APP_ENV=<dev | prod>
PORT=<port number>
BASETERM_API=<url for the associated BaseTerm API>
DATABASE_URL=<url for the BaseTerm database>
EMAIL_ADDRESS=<address from which emails will be sent>
EMAIL_PROVIDER=<Zoho | SendGrid>
EMAIL_PASSWORD=<password for hosted email account (used for Zoho only)>
EMAIL_PROVIDER_API_KEY=<API key generated by email provider (used for SendGrid only)>
AUTH_SECRET=<64-bit CSPRNG secret>
ROLLBAR_API_TOKEN=<Rollbar logging token>

Build

npm ci
npm run build

Launch

npm run start