While it is not required to design an application end-to-end, a basic structural model of what needs to be built helps to keep a project on track.
- [Instructor] Now that we discussed the basic building blocks of our chat bot, let's sketch out what we're going to build. We already created a rough map of the components of our application. Now we want to be a bit more conceptual. First, we need a main application. We will use the Express framework for that, as it provides a good starting point for what we will create. This main implication should handle connections to Slack, handle our services, receive messages from Slack, process messages, route messages to a service, and send replies to Slack.
Then we have Wit, a service that lets us process natural language to try to understand its meaning. We need it to process messages. Then we will create services that can tell us the local time for a given location and the weather for a given location, and this can be extended as we want. All of these services are again based on Express. The services need a way to reach to our application and to main application needs to route the requests or messages to a service that can handle it.
Now that we know all of that, I think we are ready to start implementing the main implication first.
After explaining some basics about Node.js and microservices, Daniel shows you how to sketch out the planned architecture for your application and get the boilerplate code, modules, and credentials in place. Next, he shows how to create a bot user in Slack, connect to Slack, and post messages. He also shows you how to get your bot to process variations in text by creating logic that delegates the processing of intent to dedicated modules. Lastly, he shows how to register additional services and he covers how to use monitoring to identify architectural or performance issues.
- Using Slack APIs
- Sketching out a Slack bot architecture
- Setting up a project and choosing modules
- Creating and naming your bot
- Connecting to Slack
- Setting up and using natural language processing
- Routing by intents
- Implementing geocoding and time calculation
- Adding and monitoring services