/token-app-js

Foundation for building a Javascript app for Token (Chat Bot / Web View) with configurations for Docker and Heroku

Primary LanguageJavaScriptMIT LicenseMIT

Token SOFA App

This repo helps you build a Token app in Javascript.

The sample bot can:

  • send messages
  • send and request money
  • create simple UI for buttons and menus
  • store sessions and state for each user

TODO

  • sending image messages
  • creating web view UIs

Launch your own Token app in 5 minutes

Read our guide to creating a Token app.

When ready, fork this repo and deploy it to Heroku.

Deploy

Then check out src/bot.js to start changing the bot logic.

Running locally with Docker

You can run the project locally with

docker-compose up

If any new depencies are added you can rebuild the project with

docker-compose build

To reset the postgres database in your dev environment you can use

docker-compose down -v

Architecture

Deploying a Token app requires a few processes to run:

  • token-headless-client
    This is a client we provide (similar to the iOS or Android client) that provides a wrapper around the Token backend services. It also handles end-to-end encrypting all messages using the Signal protocol. It is written in Java and runs in the background, proxying all the requests to amd from your bot.
  • redis
    We use redis pub/sub to provide a connection between the token-headless-client and your bot.
  • bot.js
    This is where all your app logic lives.
  • postgres
    Postgres is used to store session data so you can persist state for each user who talks to your bot (similar to cookies in a web browser).

diagram

See also