#Whisperation 2
This work consists of generic, rich full-stack frame-work/infrastructure for simple and sophisticated web applications.
The generic parts are clearly separated from the application specific part, using sub-directories.
##Generic Components##
- administration module, that include:
- basic user management
- journal viewer
- model (db) browser (with editing)
- Session management, including login, signup, restore, remember, status
- Sophisticated pub/sub integrated with server events via websockets
- Router
- Application state manager
- Full user notifications and messages inbox
- REST API helper and view-model basis, including spinners, error handling, etc
- Default layout and styling, schema based, including responsiveness
- Components:
- login
- sign up
- inbox
- rating
- toasters
- lightbox
- zippy
- item selector
- pager
- administration related widgets
- utility widgets
HOSTNAME
PORT
USE_HTTPS - in production it is true by default
RUN_MODE - either "test" or "production"
FORCE_SEND_EMAIL - set to truthy to send email even in test mode
The log folder - it is: ${(process.env.LOG_FOLDER || '/opt/logs')}/${applicationName}/${RunMode[runMode].toString()}/
The base log folder should exist, with write permissions to this application, and the sub-directories would be created by the application.
FB_CLIENT_ID, FB_CLIENT_SECRET
GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET
the db url is DB_URL or mongodb://${(process.env.DB_HOST || await getDockerHostIp() || 'localhost')}:${(process.env.DB_PORT || 27017)}/${getDatabaseName()}
the database name is DB_NAME which can be set to 'auto' or unset. If unset, the url must have the db name.
EMAIL_TRANSPORT_USER,
EMAIL_TRANSPORT_PW
The SMS transport provider is Nexemo. An account should be made for that service. NEXMO_API_SECRET
NEXMO_API_KEY