Travel Agency integrated flow with call center. The system consits of three services
- Client service - avaiable to a clients using which can do a booking, comunicate with an agent and call the agent via web sockets chat
- Conversation service - is responsible for communication
- Admin service - Used by agent and booking management
It is just a demo application, not production ready.
- MongoDB 3.6
- Spring Boot 2
- Spring Data Key
- Spring Security
- STOMP
- Thymeleaf & Bootstrap & jQuery
- Nexmo API platform
Install MongoDB 3.6 follow official doc and setup mongo enviroment
$ mongo
$ use travelagency
$ db.createUser(
{
user: "travelagency",
pwd: "YOUR_PASS",
roles: [ { role: "userAdmin", db: "travelagency" } ]
}
)
Set an env variable SPRING_DATA_MONGODB_PASSWORD=YOUR_PASS
Set also following ENV variables
NEXMO_APIKEY=<VALUE>
NEXMO_APISECRET=<VALUE>
NEXMO_APPLICATIONID=<APPLICATION_ID>
NEXMO_JWTPRIVATEKEY=<ABSOLUTE_PATH_TO_A_APPLICATION_PRIVATE_KEY>
VOICE_AGENTNUMBER=<AGENTS_PHONE>
./gradlew travel-agency-client:bootJar
./gradlew travel-agency-admin:bootJar
./gradlew travel-agency-conversation:bootJar