- JavaScript 95.6%
- Roff 3.9%
- HTML 0.5%
| adapters | ||
| config | ||
| core | ||
| public | ||
| scripts | ||
| .gitignore | ||
| index.html | ||
| index.js | ||
| package.json | ||
| readme.md | ||
betabot-core
The betabot-core package is the main module in the Betabot robotics system. The core has adapter modules for communication, command modules for executing actions and middleware modules for extending functionality.
Getting Started
Installation
First install MongoDB on your system. Then clone this repository.
Configurations
🚧Configurations are currently inside the files. This will change into a global config file.
Running
To start, run node index.js.
Modules
The betabot-core doesn't do anything by itself, It requires modules for doing various tasks and communicating with the world.
Adapter Modules
Adapters are used for communicating with users. At least one is required and many can be used. An adapter can connect the robot to chat service like Telegram, Discord, or Slack. Adapters can also be used to connect the robot to protocols like socket.io or MQTT. There is also a terminal adapter that can be used to chat with the robot thru the command line.
List of adapter modules:
- Example Adapter – Template for creating your own adapter.
- Terminal Adapter – Basic adapter for communicating thru the CLI.
- Speech Adapter – Uses snowboy for wake-word, an external deepspeech-server for STT and the system's default TTS engine.
- Socket.io Adapter – Basic socket.io example for communicating with a web browser.
Command Modules
Commands are actions that the robot can perform. A message is received by an adapter, analysed using natural language processing and the robot picks the correct command and executes it. This command can create a response that will be sent back to the correct adapter to be sent to the user.
List of Command modules
- Default Script – When there robot can't understand the user
- Hello Script – Basic hello world example
- Time Script – Time, day and weekday commands
- VLC Remote Script – Control a VLC media player instance
- Lights Controller Script – Example script of controlling a Sonoff DIY enabled device
Middleware Modules
Middleware modules use hooks to extend core functions. This is not implemented yet! A list of planned hooks in the system are:
- on message received (message)
- on send message (message)
- on event (event)
- on user created (user)
Road map
Tasks in the development road map of betabot-core and its modules.
- Add mongoDB
- Save received and sent messages
- Save user adapters
- Module System
- Testing framework
- Beep after listening
- Bot Analytics
- Configurations file
- Change wake word
- Middleware
- Event System
- Dialogue Context
- Job Queue
- Timer Script
- User Interface
- Telegram Adapter
- Discord Adapter
Development Log
version 0.1.0 (01-07-2020)
Initial version of the betabot project. All modules and scripts are still bundled together. Later they will all be moved to their own npm modules. This version is still under development.
- Dynamic module loading from configs
- Added main configuration file
- Created dialogue example script
- Added current context to user
- Added Readme file
- User and message models
- MongoDB integration
- speech adaptor beep after recording
- Created Lights Controller script
- Created VLC Remote script
- Added the Response class
- Created speech adapter
- Created socket.io adapter
- Created time script
- Created the hello script
- Created the terminal adapter
- Added bot class
- Added Index.js