Descision making solution. This webapp allows for the creation and management of company decisions. All decisions are managed via email communications.
-
GCP account with Firebase
Google offers a large capacity of free usage, however a card is required onfile to unlock features such as functions. -
SendGrid account
SendGrid offers a free capacity of emails, make sure to register a domain to the account and setup the inbound parser. -
Node 14
Recommed installing Node using Brew (macOS) or Chocolatey (Windows). Preference is to use the current LTS edition supported by Firebase Functions. -
Angular 12
Recommend installing this globally usingnpm i -g @angular/cli
once Node has been setup. -
Firebase tools
Install this globally usingnpm i -g firebase-tools
once Node has been setup. -
Java 11
This is required to run the local Firebase emulators which are configured to be used.
Once the above have all been installed / configured, perform the following steps;
-
Install dependencies
Using the commandnpm install
from the root directory note that there is a postinstall step which will iterate and run the install on the subdirectories too. -
Login to firebase
Using the commandfirebase login
this will launch a browser to login with your google / firebase credentials. -
Create a hosting environment file
Duplicate the filehosting/src/environments/environment.ts
and rename it toenvironment.local.ts
populate this with the appropriate values for your firebase environment. -
Create a functions environment file
Inside thefunctions
folder create a file called.runtimeconfig.json
insert the below json along with the approprite values for your sendgrid account.
{
"sendgrid": {
"api_key": "SENDGRID_API_KEY",
"domain": "EMAIL_DOMAIN_NAME"
}
}
-
Run the application
To run locally use the commandnpm start
this will launch the firebase emulator from which you can access the emulator suite in a browser on http://localhost:4000 and then choose which area to use. -
Watching for changes
Function changes require a restart of the emulator, once the emulator is launched if making changes, there is annpm run build:watch
command in the hosting folder that can be run in another terminal session to auotmatically rebuild the frontend.