{"id":19547483,"url":"https://github.com/infinite-technology/david","last_synced_at":"2026-05-13T08:04:03.351Z","repository":{"id":125521603,"uuid":"240587584","full_name":"INFINITE-TECHNOLOGY/DAVID","owner":"INFINITE-TECHNOLOGY","description":"A Polyglot Telegram Chat Bot","archived":false,"fork":false,"pushed_at":"2020-08-22T16:14:03.000Z","size":47835,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-08T19:49:22.039Z","etag":null,"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"],"latest_commit_sha":null,"homepage":"https://i-t.io/David","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/INFINITE-TECHNOLOGY.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-02-14T19:52:10.000Z","updated_at":"2023-05-18T06:00:07.000Z","dependencies_parsed_at":"2023-03-25T19:47:29.191Z","dependency_job_id":null,"html_url":"https://github.com/INFINITE-TECHNOLOGY/DAVID","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/INFINITE-TECHNOLOGY%2FDAVID","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/INFINITE-TECHNOLOGY%2FDAVID/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/INFINITE-TECHNOLOGY%2FDAVID/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/INFINITE-TECHNOLOGY%2FDAVID/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/INFINITE-TECHNOLOGY","download_url":"https://codeload.github.com/INFINITE-TECHNOLOGY/DAVID/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240802352,"owners_count":19859963,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["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"],"created_at":"2024-11-11T03:50:05.627Z","updated_at":"2026-05-13T08:04:03.316Z","avatar_url":"https://github.com/INFINITE-TECHNOLOGY.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Infinite Technology ∞ David 🤖\n\n\u003e Look on my works, ye Mighty, and despair!\n- Percy Shelley's \"Ozymandias\".\n\n## Download\n\n[ ![Download](https://api.bintray.com/packages/infinite-technology/io.i-t/david-app/images/download.svg) ](https://bintray.com/infinite-technology/io.i-t/david-app/_latestVersion)\n\n## Run\n\n```bash\nexport ascendClientPrivateKey=\u003cyour Private key, you can get one from https://ascend-secaas.herokuapp.com/ascend/public/keyPair\nexport ascendClientPublicKeyName=\u003cyour app name as registered with http://ascend.rest e.g. \"MyChatBot\"\u003e\nexport ascendGrantingUrl=https://ascend-secaas.herokuapp.com\nexport ascendValidationUrl=https://ascend-secaas.herokuapp.com\nexport orbitUrl=https://orbit-secured.herokuapp.com\nexport botToken=\"\u003cyour Telegram Bot Token\u003e\"\nexport botUsername=\"\u003cyour Telegram Bot user name, as defined with Bot Father\u003e\"\nexport telegramAdminId=\"\u003cyour persaonal Telegram User ID (number), to administrate the bot\u003e\"\njava -Dserver.port=$PORT $JAVA_OPTS -jar \"david-web/build/libs/david-web-1.0.0.jar\"\n```\n\n## Purpose\n\n`David` is a ready-to-deploy archetype `Telegram` Chat Bot App, extendable with a user-defined plugins.\n\n## In short\n\nIt takes only few clicks to deploy `David` - and you have a functioning (yet empty) chat bot.\n\nNow you can develop your business functionality using `David` Plugins - each one representing a `command`.\n\nThe changes you do in the Plugins reflect in the chat immediately - you don't need to re-deploy or restart `David`.\n\nThis saves a lot of time and makes development more visualized.\n\n\u003e `David` comes pre-packaged and pre-configured to address typical use cases.\n\n## Features\n\n`David` provides the following features:\n\n- Operational\n  - Deployment friendly - `David` is Spring Boot Application ready for Cloud deployment (e.g. Heroku)\n  - DB friendly - `David` comes with JPA support onboard\n  - 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.\n- Development \u0026 built-in features\n  - User input handling - requesting and waiting for user input, and gracefully handling wrong data or junk\n  - No wasted time on code infrastructure - `David` helps you to go straight to developing the features\n  - Code structuring - each bot command is in separate plugin.\n  - User registration - `David` provides user repository with generic KYC attributes\n  - Step-up authentication - e-mail or SMS OTP via [Pigeon](https://github.com/INFINITE-TECHNOLOGY/PIGEON)\n  - Rapid requirement implementation using scripted language (Groovy)\n  - Push Notifications - `David` provides extendable Push REST API, which help to pro-actively communicate with your bot users\n\n\n## Documentation\n\n* [**David Documentation**](https://github.com/INFINITE-TECHNOLOGY/DAVID/wiki)\n\n## Technology stack\n\n* [TelegramBots](https://github.com/rubenlagus/TelegramBots)\n* Spring Boot\n* Groovy\n* SQL DB (via JPA and Spring Data)\n* REST+HATEOAS (via Spring Data Rest repositories)\n* Bot commands extensible using Plugins (Groovy scripts)\n* [Bobbin](https://github.com/INFINITE-TECHNOLOGY/BOBBIN) - logger\n* [BlackBox](https://github.com/INFINITE-TECHNOLOGY/BLACKBOX) - logging code automation\n* [Ascend](https://github.com/INFINITE-TECHNOLOGY/ASCEND) - step-up authentication \u0026 security framework\n* [Pigeon](https://github.com/INFINITE-TECHNOLOGY/PIGEON) - e-mail \u0026 SMS OTP\n* [HTTP Client](https://github.com/INFINITE-TECHNOLOGY/HTTP)\n\n## Try `David` now!\n\nWe have deployed a [David Demo Bot](https://github.com/INFINITE-TECHNOLOGY/DAVID_DEMO_PLUGINS) repository is as a Heroku app (`david-demo`).\n\nJust talk to him in Telegram: [@david_demo_bot](https://web.telegram.org/#/im?p=@david_demo_bot)!\n\nOr fork the [repository](https://github.com/INFINITE-TECHNOLOGY/DAVID_DEMO_PLUGINS) and deploy straight to `Heroku`!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfinite-technology%2Fdavid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finfinite-technology%2Fdavid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfinite-technology%2Fdavid/lists"}