A system built from three subsystems that together enable monitoring of incoming calls to the call center
in Near Real Time access and using a dashboard that displays key metrics,
and also allows early call type classification to route the nature of the call recommended to the answering provider.
(The last option will be added in the future)
- Stores clients details on local mySQL server
Name | ID | Birth Date | City | Gender | Subscriptions |
---|
- The system will receive call details and will store, process and present them
- The data that will be stored in the system at the end of each call:
Period | Start Call | City | Age | Gender | Total Calls | Product | Topic |
---|
- The system will present total number of current waiting calls
- Avarage waiting time in the last 10 minutes
- Present numbers of waiting calls and waiting times throughout the day
- End of the day stats : sum how many calls from each topic
- The calls will be stored in mongoDB
- The data will reset itself at the end of each day!
- NodeJS v14.17.5
- mySQL workbench
- Docker with Redis image
- https://www.cloudkarafka.com/
- https://cloud.mongodb.com/
- Another option is to configure the settings to run mongoDB locally
- git clone this repository
- Inside each folder open cmd and run
npm i install
- At each folder named 'Kafka':
- Replace the credentials variable
- update the .env file
- Inside each folder run
node app.js
Responsible for loading customers data from local mySQL
Generating random calls and publishing the call's information via Kafka.
After receiving the call's information from Kafka,
the data is then stored inside Redis (including expiration data)
Every call is stored inside mongoDB for later studying.