
Create a web chatbot using React and Node.js, guided from app overview to deployment on Heroku; learn DialogFlow components, server and frontend integration, rich messages, memory, and fulfillment.
Explore how a website chatbot uses a frontend React app and a Node.js backend with Express and DialogFlow to process input via HTTP and fetch data from MongoDB.
Learn how Dialogflow agents connect to a Google project via service accounts, manage settings, languages, and machine learning thresholds to train multilingual intents.
Explore Dialogflow intents basics, including the welcome and fallback intents, how input becomes actions and responses, and how contexts, events, and training phrases trigger conversations.
Create a developer-defined Dialogflow intent and map user phrases to responses. Learn training phrases, testing, and how intents transform input into replies, with Snoopy example.
Explore smalltalk in bot design by enabling and customizing common questions like who are you and how old are you, using prebuilt agents with intents and entities for casual conversations.
Explore the bot architecture: a React frontend talks to a Node.js Express backend via endpoints over JSON-based HTTP, which calls DialogFlow for natural language processing and uses MongoDB.
Deploy your first chatbot app to Heroku by logging in, creating an app, linking a git remote, and pushing to Heroku master; monitor logs with Heroku logs.
Introduce connecting the React frontend to the backend via API routes, sending text requests to DialogFlow for intent detection, and handling events to return responses to the chat UI.
Configure express routes for a chatbot by installing and using body-parser middleware, then create placeholder post routes api/df_text_query and api/df_event_query that direct to DialogFlow, refactoring into a dedicated dialogFlowRoutes file.
Configure DialogFlow authentication in a Node.js app using a config file for project id and language. Set GOOGLE_APPLICATION_CREDENTIALS to the json key file and run backend to complete authentication.
Transform promise-based DialogFlow text query handling into async/await for a cleaner backend and test the endpoint. Authenticate with DialogFlow via GOOGLE_APPLICATION_CREDENTIALS and optimize chained API calls.
Extract chatbot logic into a separate module and expose a textQuery method with parameter support; connect routes to the module and implement a placeholder handleAction for future actions.
Deploy the chatbot to Heroku by committing code and pushing to Heroku master, then update the server address to the Heroku URL and test endpoints.
Learn to scaffold a React page by creating a components folder, building simple functional components like App, Landing, and About, and organizing pages into a pages subfolder using JSX.
Learn how to build a chatbot interface in React using a class component to manage messages and lifecycle events, and why Redux is overkill for a single component.
Create a React functional Message component to render text messages with bot and user avatars using Materialize CSS grid. Integrate it into the Chatbot by mapping state.messages with renderMessages.
Enable user text input by listening for the enter key in the input field to send messages to DialogFlow and render bot responses in a React chatbot.
Build a DialogFlow card message feature that returns a gallery of product cards (header, image, description, link, price) via a custom payload in an intent, enabling recommendations such as courses.
Examine how a React chatbot handles DialogFlow card responses by comparing the raw API payload with the cards structure and accessing fields through gRPC struct protocols.
Create a reusable React functional card component to render individual DialogFlow cards by reading payload.structValue data from DialogFlow via gRPC, including header, image, description, price, and link.
Implement quick replies in DialogFlow by defining a json structure with a question and a quick_replies array, and map choices like yes, no, and more info to payloads and actions.
Implement rendering of quick replies in the chatbot by building QuickReplies and QuickReply components, wiring click handlers, and displaying avatar, text, and quick reply buttons.
Learn how DialogFlow follow up intents act as predefined shortcuts for common yes, no, and other responses, and see how contexts glue intents to enable natural conversations.
DialogFlow contexts glue intents and enable branching dialogues by using input and output contexts to track previous conversations and trigger follow up intents from quick replies.
Test quick replies and follow-up intents in the React and Node.js chatbot, verify terminal outputs and yes/no interactions. Explore removing quick replies after a click and preview Dialogflow events.
Learn how to implement slot filling in a chatbot by collecting name, address, phone, email with system entities, prompts after user clicks yes, then reuse parameters in responses.
Configure a shop welcome flow in DialogFlow, greet the user, offer a quick yes/no question for recommendations, and trigger the show recommendations event when the user agrees.
Learn to store conversation data in MongoDB, a schema-less NoSQL document database that uses collections and documents. Explore its high performance, high availability, automatic scaling, and JSON-based data modeling.
Expose your local server with Ngrok to create a public webhook URL for DialogFlow fulfillment and test locally without deploying to Heroku.
Read from a database to fetch the requested course's coupon link by querying a MongoDB coupons collection using a simple two-field schema (course and link) with findOne.
Add a postbuild script in the root package.json to install client dependencies and run npm run build --prefix client, creating the client build folder.
Optimize chatbot code before deployment by removing production route, adjusting height and margins, converting the app to a functional component, reintroducing service workers, and adding try-catch for DialogFlow outages.
Deploy your chatbot to Heroku using Git, push updates, and verify frontend routing, then configure fulfillment to point to the Heroku app via Dialogflow, validating data storage and responses.
Generate a DialogFlow client access token by creating a service account with the DialogFlow client role, generating a key, initializing the Cloud SDK, and printing the token for React integration.
Update the web service to DialogFlow, remove gRPC, and refine renderCards and renderOneMessage to align with DialogFlow payload and cards.
Learn how to configure environment variables for a React and Node.js chatbot, including token management, Google project ID, and session values to enable DialogFlow integration.
Enable fulfillment in the registration intent and build a Node.js handler to save user parameters (name, address, phone, email) to the database using DialogFlow parameters.
Deploy the chatbot to heroku, set environment variables for dialogflow, and push the backend and frontend code. Update dialogflow fulfillment to the heroku address to enable end-to-end communication.
Publish the chatbot to Heroku by pushing code and configuring environment variables, then update the DialogFlow fulfillment address to enable the React frontend to talk to the backend.
In this course, you will build a chatbot for a Webpage. We'll use Node.js and React for programming and GIT for deploying and version control. The bot will be hosted on Heroku, but you can simply host it anywhere else where they support Node.js. We'll use DialogFlow to process natural language. DialogFlow will help us understand what users want.
In the course, we'll be building a sample chatbot. Its purpose is only to show you how things work. Our bot on the page will help us sell products. It will give recommendations and measure demand.
In the process of building this chatbot, you'll learn all that is needed to build a great bot. To get the most out of the course, you can work on this sample bot, and in the end, tweak it to suit your needs.
You need to have at least basic knowledge of Node.js and React to start with this course. For versioning, we use GIT; therefore, you need to be familiar at least with basic git commands.
To make it easier for you, I've added git commits with changes to every video that has a change in the code. This way, you can compare your code to mine. And you won't lose time debugging. And remember for any questions I'm available in the Questions and answers. You are not alone.
And remember, I'LL BE THERE FOR YOU.
The bot will be able to remember things, that is store information into a database or connect to other API services. I'll show you different implementations so that you can play and find out what suits you most.
At the end of the course, you'll have a demo chatbot that you can tweak and tailor to your needs.
My name is Jana Bergant, and I'm a developer with over 20 years of experience. I'm an IT instructor teaching people new tech skills. Over 17000 people are already taking my course.
I help all my students at every step of development. And I'll be here for you!
Let me tell you a bit about every section of this course.
In the first section, we'll take an overview of the app and get familiar with the tech stack, which is the technology used in this course. We'll look at application architecture and different ways we can implement it. We'll go through every implementation. And I'll take you through the development stages.
The second section will introduce you to DialogFlow, a natural language processor, that we'll use to understand what our visitors want from the chatbot. We'll go through building blocks of DialogFlow. You'll learn about agents, intents, entities, parameters, prebuild agents, and more.
Then in the third section, we start building the server-side app for the chatbot. We'll install the Express library and generate an express app. After we are trough with configuration, we deploy it to Heroku. To speed up the development process, we'll set up a local development server called Nodemon.
When you have a basic server-side app created, you'll be able to connect it to DialogFlow. And that is what we'll do in section 4.
And frontend will be the next step. In the fifth section, we set up React, configure local servers, create a proxy for communicating with the backend. And we'll develop components. Components for the page and for the chatbot. Our chatbot will begin to look like a chatbot in the 5th section.
But we'll polish it in the 6th section, where we'll create rich messages for the chatbot like cards and quick replies. And also, we'll go deeper into DialogFlow's features, like follow up intents, contexts, events, and slot feelings. Features that make bot creation much easier and much friendlier!
When our bot is polished, we can make it smarter. We want our bot to remember what the user says. Therefore we need to store information that we get from the user. In the 7th section, we'll be saving to the database and also use what we know about the user in a conversation. To make the bot friendlier. We like if people remember our preferences, it is the same with bots.
In the 8th section, I'll show you a different way to implement handling actions. We'll be using DialogFlow's fulfillment. I'll show you how to call fulfillment only for intents that need extra code to be run. Only for intents that need to get information from a database, or that need to call some other API, or maybe connect to a device.
When we master fulfillment, we'll deploy to Heroku. In the 9th section, we'll take care of some extra configuration like routing, postbuild scripts for generating frontend; we'll also go through the code and make sure all is as needed before we deploy.
And finally, in the 10th section, I'll show you how to connect to DialogFlow straight from FrontEnd. To do that, we'll need to make some changes to the architecture. I'll tell you the benefits of every decision.
After the course, you'll have a demo bot that you can tweak and tailor to your needs. And you'll have the knowledge to upgrade it.
See you on the course!
Jana
-------------------------------------------------------
The last update of the course was on 27th February 2020
I added DialogFlow mega agents