What does each configuration parameter means?
DBUsername:- Username to connect to DEV/PROD Cluster.
DBPassword:- Password to connect to DEV/PROD Cluster.
ClusterAddress:- Address of the Mongo Dev/Prod cluster containing the DBs.
DEV_PORT:- Specifies the port used by the server to host the application.
- By default the application is hosted on port 3000.
CLIENT_IDandCLIENT_SECRET:- To make the google authentication work, you have to use Oauth API from google console.
- Make a new project in google console.
- you will get a Client_ID and Client Secret from there.
SESSION_SECRET- This is a string that is used by express session middleware used to sign and encrypt the session data before it is stored on the client side.
- To run locally you can set it to anything you want.
ImageUploadLimit- This specifies the max number of images you can upload per post, in an Announcements and in a Event.
- by default it is set to 5.
ImageSizeLimitInBytes- Default value is 1048576 Bytes which is 1MB.
- This specifies the max size of any individual image while uploading per post, in an Announcement and in a Event.
imgurClientID- Whenever we upload an image in a post of an
eventor anannouncement, it is not stored on the server itself. - This is done because we have hosted the website on render,in which Application data isn’t persisted across deploys and restarts on
free instances. - So instead of storing the image on the server itself, I used
Igmur APIsto upload the imagesAnonymouslyto Igmur, and store the image access link in the Mongo database. - This way the uploaded data remains persistant even across deploys and restarts.
- We don’t need
imgurClientIDto upload images Anonymously to Igmur, but we need this to delete them. - We need the imgurClientID in the
Authorization headerto delete the images (with their respectivedeleteHash) when a post is deleted - Authorization':Client-ID ${clientId},
- Whenever we upload an image in a post of an
imgurClientSecret- Currently this is not used, because I am doing
Anonymous uploadstoImgur, hence the uploads are not associated to any account.
- Currently this is not used, because I am doing
TitleLength- Specifies the maximum number of characters allowed in POD title.
DescriptionLength- Specifies the maximum number of characters allowed in Description of an Event post or an Announcement Post.
Host- This specifies the url on which the website is hosted.
- When running locally the value should be -
http://localhost:3000 - In Delpoyment the value is be -
https://knuth-programming-hub-9p08.onrender.com - This is used by -
- KeepAlive.js to ping to the URL every 10 minutes, to keep the server from spinning down.
- Auth.js to redirect to the Host after sucessfull Google auth login.
limitPerPage- This specifies the max number of posts per page in Events page, POD page and Announcements page.
NodeMailerEmail- This specifies the official email which is used to send updates to subscribers.
- For local testing you can set it to any of your devtesting emails.
NodeMailerAppPassword- this is the app password (not email password), for the email used above.
PingBotDuration- This specifies the duration (in ms) in which the KeepAlive.js script should ping itself to keep the server from Spinning down.
- by default the value is -
600000which is10 minutes
RatingLength- Max limit of characters allowed in problem rating.