HTTPS SSH

Echo Bot Qiscus SDK

This repository is an example of simple implementation of creating bot in
any chat application that is built using Qiscus SDK. In this case, it just
an echo bot. It will reply with the same input you give in the chat. You can follow
the step-by-step process of creating this bot at TUTORIAL.md file.

This example is using Python Flask for bot webhook. Other example using other languages are
still on progress.

For more information about Qiscus SDK, please refer to the Qiscus SDK Official
Documentation

Quick Start

Run the application:

make run

And open it in the browser at http://127.0.0.1:5000/

Prerequisites

This is built to be used with Python 3. Update Makefile to switch to Python 2 if needed.

Some Flask dependencies are compiled during installation, so gcc and Python header files need to be present.
For example, on Ubuntu:

apt install build-essential python3-dev

Development environment and release process

  • create virtualenv with Flask and Simple Bot installed into it (latter is installed in
    develop mode which allows
    modifying source code directly without a need to re-install the app): make venv

  • run development server in debug mode: make run; Flask will restart if source code is modified

  • run tests: make test (see also: Testing Flask Applications)

  • create source distribution: make sdist (will run tests first)

  • to remove virtualenv and built distributions: make clean

  • to add more python dependencies: add to install_requires in setup.py

  • to modify configuration in development environment: edit file settings.cfg; this is a local configuration file
    and it is ignored by Git - make sure to put a proper configuration file to a production environment when
    deploying

Deployment

If you are interested in an out-of-the-box deployment automation, check out accompanying
cookiecutter-flask-ansible.

Or, check out Deploying with Fabric on one of the
possible ways to automate the deployment.

In either case, generally the idea is to build a package (make sdist), deliver it to a server (scp ...),
install it (pip install simplebot.tar.gz), ensure that configuration file exists and
SIMPLEBOT_SETTINGS environment variable points to it, ensure that user has access to the
working directory to create and write log files in it, and finally run a
WSGI container with the application.
And, most likely, it will also run behind a
reverse proxy.