In order to create and configure the bot, the heart of the project, we followed the client's requirement and chose the Amazon Lex service, because it can easily be integrated with many services on the AWS platform. It provides the ability to use the power of the AWS platform for security, monitoring, business logic, and storage.
The Amazon Lambda service is used to validate the time and date, which the user defined in the dialog with the bot. Also, it was used to process the requests from the Amazon API Gateway, put records to Amazon SQS, process records from Amazon SQS, sending data to dashbot.io.
In order to reduce the concurrent invocations of the AWS Lambdas and make them more cost-efficient, the AWS SQS service was used. For the users' data storage, we use the Amazon DynamoDB service, because it is scalable, cost-effective and secure. To start and process the dialog with the user, the REST API methods were implemented with the Amazon API Gateway service. The Amazon CloudWatch service was used to track and analyze the project logs.
We used the Amazon S3 service to store the . ics files(ics files used for calendar invites). Amazon CloudFront and Amazon Route53 services were used to generate compact and beautiful links to the calendar files, which we sent to the end-users to import the events into their own calendars.
The dashbot.io is used to track detailed statistic of the dialogs and analyze it for further bot flow optimization.
As well, it was decided to implement the Small Talk to engage end-users in conversation. It instigates them to build interactions with the bot and improves the recall rates.
We implemented the demo page based on the PHP framework Laravel and VueJS, to help our QA team with testing the bot.