This is an Angular 6 front-end for a Dialogflow chatbot ๐ค. You will find the bot and its webhook fulfillment in a dedicated repo.
This project was generated with Angular CLI version 6.0.8. Notice that index.js
is the express server meant to be used for local development, if you want to deploy the chatbot as a Node app in Firebase you want to deploy it as a Cloud Function for Firebase. You will find further information in a dedicated README.md in the functions
folder. The dialogflow-custom-client.js
is a customized interface for the official Dialogflow client for Node.js.
First of all you need to install the dependencies. You can do that via npm o yarn, running one of the following command in the root directory:
> npm install
> yarn install
Run ng serve
for a dev server. Navigate to http://localhost:4200/
. The app will automatically reload if you change any of the source files.
Run ng generate component component-name
to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module
.
Run ng build
to build the project. The build artifacts will be stored in the dist/
directory. Use the --prod
flag for a production build.
Run ng test
to execute the unit tests via Karma.
Run ng e2e
to execute the end-to-end tests via Protractor.
The project integrates a CI flow built with Travis CI that checks the status of the build at every commit.
The app may be deployed as a Node app on Firebase hosting. To deploy it in this way, please comply with the following instructions (in the root directory):
> firebase init hosting
> firebase deploy --only hosting
After the execution of the firebase init hosting
command, a firebase.json
will be created. Make sure it contains the proper rewrites for your backend, you will find further information about this in the official Firebase docs.
- Dialogflow V2 - NLU module and bot development framework
- Pusher - Web socket manager
- Angular - Web app framework
To get more help on the Angular CLI use ng help
or go check out the Angular CLI README.
Matteo Rizzo
This project is licensed under the MIT License - see the LICENSE.md file for details
This project is inspired by a Pusher tutorial.