runme | ||||
---|---|---|---|---|
|
1] Clone the repository. For updated code, check branch: ProductionDeployment
2] Intitial requirements:
NodeJS, NPM
3] Install all project dependencies:
npm install
4] Add .env file. Replace '*******' with credentials.
Sample-
//JWT secret
AUTH_KEY = "************************"
//Razorpay credentials
RAZORPAY_KEY = "************************"
RAZORPAY_SECRET = "************************"
//mail client credentials
MJ_APIKEY_PUBLIC = "************************"
MJ_APIKEY_PRIVATE = "************************"
SIB_SENDER_EMAIL = "**********@*****.com"
SIB_SENDER_NAME = "ExpenseTracker*****"
//AWS S3 credentials
AWS_S3_KEY = "************************"
AWS_S3_SECRET = "************************"
AWS_S3_BUCKET = "************************"
EXPENSE_PER_PAGE = 5
BACKEND_ADDR = "http://**********:3009"
//MongoDB credentials for NoSQL implementation
MONGODB_CONN_STR = "mongodb+srv://*******************@cluster0.ijrpm3b.mongodb.net/expenseTracker?retryWrites=true&w=majority"
ACCEPTED_ORIGINS = '["http:localhost:3000"]'
//DB credentials if intend to use SQL Implementation
DB_NAME = "**************"
DB_USERNAME = "root"
DB_PASSWORD = "*************"
DB_HOST = "*************"
APP_PORT = "3000"
5] Start the server
npm start app.js
Note: Ensure database is already setup in mongodb.
Tech stack used : JavaScript, HTML, CSS
Frameworks used : Express, Bootstrap
Deployment : AWS ec-2
CI-CD : Jenkins
Storage : MongoDB(Production Deployment branch), MySQL(old deployment on master branch, deployment AWS RDS), AWS S3 bucket
ODM library: Mongoose
ORM library: Sequelize (old deployment on master branch)
Token based authentication : JWT
App features :
Integrated payment module : Razorpay API
Dynamic data visualization : chart.js
Dynamic pagination
Report generation
Leaderboard and expense categorization