All Projects → qlik-bots → QlikBotNode

qlik-bots / QlikBotNode

Licence: Apache-2.0 license
QlikBotNode is a server build in Node.js, Express.js, Enigma.js and MySql that connects to chat and media platforms like Telegram, Skype, MS Teams, Cortana, Slack, Google Assistant and Amazon Alexa.

Programming Languages

javascript
184084 projects - #8 most used programming language
HTML
75241 projects

Qlik Sense Bot

version node npm MySql

QlikBotNode

  • QlikBotNode is a server build in Node.js, Express.js, Enigma.js and MySql that connects to chat and media platforms like Telegram, Skype, MS Teams, Cortana, Slack, Google Assistant and Amazon Alexa.
  • It connects to MySql and stores the users for a mass messaging at any time
  • Commands are case sensitive

Getting started

Prerequisites

Before continuing, make sure that you have these tools installed:

  • Node.js >= 8.2.1
  • MySql CE >=5 (https://dev.mysql.com/downloads/mysql/)
  • Git bash if on Windows
  • Certificates for running https. If your environment is dev, then you can export from Qlik Sense Enterprise for "localhost" in a "Platform Independent PEM-format". Save them under app/server/certs/localhost/ Exporting Certificates with Sense
  • QVFs needed:
  • Once uploaded to the Qlik Sense Enterprise, get the app ids from the QMC and with the your host DNS put them in the app/server/config.json.
    • Make sure that the apps are published.
    • Make sure that the host name is the same as the folder name under your certs. Enigma.js will read the certs from there to connect to your engine and authenticate users.

And know at least some of these web technologies:

  • JavaScript
  • Promises
  • Websockets

Usage

  • To start, install all necessary packages
npm install -g gulp
npm install
  • Install all the required Environmental variables for each of the chat platforms.

    • For Windows, go to "Control Panel" -> "System" -> "Advanced System Settings" -> "Environment Variables"
    • For Linux, from your directory (~), type "nano .bash_profile" or "vim .bash_profile" and enter the variables there like
      • "export TELEGRAM_BOT_TOKEN=######"
  • For Database storage and mass Instant Messaging, create a database and run the files/sensebot.sql

  • Add your connection strings in the /app/server/config.json

  • Then,

    • for local testing, type gulp or,
    • for production, run the server with forever.js by typing
     forever start foreverConfig.json
    • Make sure you have the right certificates under app/server/certs/

This will start your server at https://localhost:3000

Features

  • Build with Operating System agnostic, nodejs. It can be installed and run in Windows IIS and desktop, Linux and mac
  • Scalable. Sense-bot has its own models and routes. You can add as many as you want in your api server
  • Professional logging solution that records every step into the log and saves the file based on the date. This gives you more flexibility over debugging.
  • Latest Open Source Enigma.js wrapper for the Qlik Sense Engine API
  • Robust MySql for user storing and mass IM sending.

Messaging Platforms



Files

Version Log

Contributing

  • Make sure you have completed all of the steps in https://github.com/qlik-bots/open-source or https://github.com/qlik-oss/open-source
  • Make sure that your working branch is v1 and not master
  • Run gulp lint and make sure the code is without errors and warnings before committing
  • All variables are camelCase but the database fields are with underscore like user_id
  • All routes are lower case but models are Capitalized
  • No spaces. Set your files to use Tab Size:4
  • Do not declare variables that are not used
  • Do not forget console.log() or any other debugging commands in your code
  • When creating new Modules, add jsDoc syntax for @module {name}, @author {[email protected]} and @description {your_short_description}. Then run gulp jsdoc to generate the new files in the docs/files.md
  • Once committed, do a pull-request for reviewing and merging.

Follow us on

Copyright

Copyright 2018 QlikTech International AB

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].