- Auth
- use Bull to queue? PubSub?
-
Needs compiling in real time. you need to run a
build taskthat runs the task code in.vscodein the project root. Start it up with the Command Palette >Run Build Task..., then choose"tsc: watch"onfunctions/tsconfig.json. This opens a window in the integrated terminal. [Reference]. You can also open a new terminal window and runyarn watchas it runstsc --watch. But it needs its own terminal shell for that. -
Note that real time compiling does not work for the EJS templates. Those need to be built with the
yarn buildscript which also runs ayarn copyscript to copy static files. -
run
yarn serve:functionsfrom/functionsto serve up the functions on port 5001. andyarn tunnelto set up ngrok for the functions at the same port. -
Staging environments: local has no
env.context. There is a Staging firebase project which is the projectekkoappv0. See the file/context.tsfor details. In the firebase hosted project, the environment variables look like this. And they can be accessed withfirebase functions:config:getfrom the CLI.
{
"app": {
"smtppass": "#SOME PASSWORD",
"context": "staging"
}
}
- DO NOT USE: emulators, inpsect the
package.json. Emulators try and load data from theemulator-exportsfolder. Its very important to export the data BEFORE shutting down the emulator. The emulator does not persist data and has some other challenges. Sending data directly to firebase is ok because thecontext.jsfiles separates folders based onSTGornullenvironment.
please read this in conjunction with the API server. ** always ALWAYS ** run a yarn build on the /frontend before you run firebase deploy --only hosting. Better yet use the yarn deploy:hosting script.
-
Start local dev from inside the
/frontendfolder withyarn start. Serve the front end on port 3000 as the front end code reads the environment variables set in/frontend/src/config/context.tsin order to determine which routes to post axios requests to. Front end relies onprocess.env.NODE_ENVwhere asfirebase servedoes not seem to set that. -
run
yarn buildto put built files in/frontend/build -
DO NOT USE
firebase serve --only hostingwill read from the built folder only.
The API server handles the back end code for the React App.
- Best to deploy the api separately with
firebase deploy --only functions:api. Do it along with deploying the React app to hosting.
Browser support for CSS in emails is notoriously fickle.
-
see the html inliner tool here. https://github.com/leemunroe/responsive-html-email-template
-
awesome HTML with css inlining tool to help you code up the html and outputs with inline css: https://htmlemail.io/inline/ + app.postdrop.io
-
generate styled html tables with https://www.tablesgenerator.com/html_tables
- Google: Nitrous Account https://console.firebase.google.com/u/1/project/ekkoappv0/overview
- Zoho API/KEYS : https://api-console.zoho.com/
- Zoho webhooks: https://mail.zoho.com/zm/#settings/general/integrations-settings/DeveloperSpace
- CloudMailin: Nitrous Account
- web app on firebase hosting - https://ekkoappv0.web.app/
- /hooks endpoint - STG
- GCP Logs viewer