https://github.com/infinite-technology/david
A Polyglot Telegram Chat Bot
https://github.com/infinite-technology/david
chat-bot chat-bot-template chat-bots chatbot chatbot-framework chatbot-telegram chatbots groovy telegram telegram-api telegram-bot telegram-bot-api telegram-bots telegrambot
Last synced: 3 months ago
JSON representation
A Polyglot Telegram Chat Bot
- Host: GitHub
- URL: https://github.com/infinite-technology/david
- Owner: INFINITE-TECHNOLOGY
- License: apache-2.0
- Created: 2020-02-14T19:52:10.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2020-08-22T16:14:03.000Z (almost 5 years ago)
- Last Synced: 2025-01-08T19:49:22.039Z (5 months ago)
- Topics: chat-bot, chat-bot-template, chat-bots, chatbot, chatbot-framework, chatbot-telegram, chatbots, groovy, telegram, telegram-api, telegram-bot, telegram-bot-api, telegram-bots, telegrambot
- Language: Java
- Homepage: https://i-t.io/David
- Size: 45.6 MB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Infinite Technology ∞ David 🤖
> Look on my works, ye Mighty, and despair!
- Percy Shelley's "Ozymandias".## Download
[  ](https://bintray.com/infinite-technology/io.i-t/david-app/_latestVersion)
## Run
```bash
export ascendClientPrivateKey=
export ascendGrantingUrl=https://ascend-secaas.herokuapp.com
export ascendValidationUrl=https://ascend-secaas.herokuapp.com
export orbitUrl=https://orbit-secured.herokuapp.com
export botToken=""
export botUsername=""
export telegramAdminId=""
java -Dserver.port=$PORT $JAVA_OPTS -jar "david-web/build/libs/david-web-1.0.0.jar"
```## Purpose
`David` is a ready-to-deploy archetype `Telegram` Chat Bot App, extendable with a user-defined plugins.
## In short
It takes only few clicks to deploy `David` - and you have a functioning (yet empty) chat bot.
Now you can develop your business functionality using `David` Plugins - each one representing a `command`.
The changes you do in the Plugins reflect in the chat immediately - you don't need to re-deploy or restart `David`.
This saves a lot of time and makes development more visualized.
> `David` comes pre-packaged and pre-configured to address typical use cases.
## Features
`David` provides the following features:
- Operational
- Deployment friendly - `David` is Spring Boot Application ready for Cloud deployment (e.g. Heroku)
- DB friendly - `David` comes with JPA support onboard
- Logging - SLF4J + [Bobbin](https://github.com/INFINITE-TECHNOLOGY/BOBBIN) + [BlackBox](https://github.com/INFINITE-TECHNOLOGY/BLACKBOX) - the best existing Logging stack. You *won't even have to write logging code* yourself in plugins - it is added automatically.
- Development & built-in features
- User input handling - requesting and waiting for user input, and gracefully handling wrong data or junk
- No wasted time on code infrastructure - `David` helps you to go straight to developing the features
- Code structuring - each bot command is in separate plugin.
- User registration - `David` provides user repository with generic KYC attributes
- Step-up authentication - e-mail or SMS OTP via [Pigeon](https://github.com/INFINITE-TECHNOLOGY/PIGEON)
- Rapid requirement implementation using scripted language (Groovy)
- Push Notifications - `David` provides extendable Push REST API, which help to pro-actively communicate with your bot users## Documentation
* [**David Documentation**](https://github.com/INFINITE-TECHNOLOGY/DAVID/wiki)
## Technology stack
* [TelegramBots](https://github.com/rubenlagus/TelegramBots)
* Spring Boot
* Groovy
* SQL DB (via JPA and Spring Data)
* REST+HATEOAS (via Spring Data Rest repositories)
* Bot commands extensible using Plugins (Groovy scripts)
* [Bobbin](https://github.com/INFINITE-TECHNOLOGY/BOBBIN) - logger
* [BlackBox](https://github.com/INFINITE-TECHNOLOGY/BLACKBOX) - logging code automation
* [Ascend](https://github.com/INFINITE-TECHNOLOGY/ASCEND) - step-up authentication & security framework
* [Pigeon](https://github.com/INFINITE-TECHNOLOGY/PIGEON) - e-mail & SMS OTP
* [HTTP Client](https://github.com/INFINITE-TECHNOLOGY/HTTP)## Try `David` now!
We have deployed a [David Demo Bot](https://github.com/INFINITE-TECHNOLOGY/DAVID_DEMO_PLUGINS) repository is as a Heroku app (`david-demo`).
Just talk to him in Telegram: [@david_demo_bot](https://web.telegram.org/#/im?p=@david_demo_bot)!
Or fork the [repository](https://github.com/INFINITE-TECHNOLOGY/DAVID_DEMO_PLUGINS) and deploy straight to `Heroku`!