A bot to interact with users showing the agenda of your conference
Grab it from https://gitlab.com/puravida-software/tlg-conf
Idea
The main idea of this project it to have a Telegram’s Bot to show the agenda of your conference plus information about speakers, sponsors and so on.
You can clone this project and configure it with the schedule of your conference (plus speakers, etc) and, after following these instructions, you’ll configure and deploy your custom bot in a server with Internet connection and the bot will give all the information to the attendants
It doesn’t matter if your conference has not close the agenda until the last moment because the bot can do a hot reload of it.
You’ll need a public address (URL) where Telegram will send messages to your bot |
in case you don’t have a way to deploy the bot or want support in all the process, please contact with administracion@puravida-software.com for assistent |
Example
This is an example your users will see when they start a new conversation with the Bot

When the user send the command '/agenda' the bot will show a similar screen to this:

The user can navigate across the agenda using the bottom buttons '<<' and '>>'

Touching in a 'talk' button, the bot will show more information about it

First steps
The first thing you are going to need is a Telegram account (create it via the app installed into your mobile phone).
Once created the account you can validate your browser and navigate across the application using the browser |
Search the bot @BotFather
and start a conversation with it.
After the welcome screen you can send commands to this bot in order to be able to create your bots, configure them
, etc, so first thing is create a bot using the /newbot
command
After providing a name and an identification (a name ended in bot) you will obtain a Token. Keep it secret and DON’T STORE it into your git repository. You’ll need to inject it into the application
Build
Requirements
This project requires Java 8 (min) and you can build it executing the following command:
./gradlew build
if everything is ok you’ll have a runnable jar at build/libs/tlg-conf-VERSION-all.jar
that you need
to deploy in a server accessible via Internet (see deploy section)
In case you want to dockerize the bot, this project also provides a Dockerfile
file:
docker build -t jagedn/tlg-conf .
Also we have a k8s.yml
file as template to deploy it in a Kubernetes cluster.
kubectl apply -f k8s.yml
Flow

Deploy
You will need to tell to Telegram where is located your boot via a public https URL (i.e. https://my-organization.org/tlg-conf/bot/) so you need to deploy it in a server accessible by Internet.
You have, at least, these options:
-
Deploy in a server with java and an Internet connection (tested)
-
Dockerize and deploy in a serverless cloud provider, Google Run for example (not tested)
-
Dockerize and deploy in a Kubernetes cluster cloud provider as provide by Okteto (tested)
In any case the application will search an environment variable called TELEGRAM_TOKEN you must to provide
with the token value obtained from the BotFather
Configuration
You need to provide following configuration:
Environment | Property | Required | Description |
---|---|---|---|
TELEGRAM_TOKEN |
telegram.token |
true |
the token from @Botfather |
REMOTE_AGENDA |
remote.agenda |
false |
a URL if you want to externalize your agenda |
TEMPLATE_WELCOME |
template.welcome |
false |
a URL if you want to externalize the welcome message |
Customization
By the moment you need to change some files of the project to customize the bot with your information. The idea is to externalize this kind of information in order you don’t need to change nor build the bot, but only use it
Conference
The conference is configured in a yml
file into the conference
section:
name: Test
ini: 2020-01-30
end: 2020-01-31
url: http://example.org
days:
- day: 0
tracks:
- code: Room 1
sessions:
- title: titulo1
description: A talk about something new
speakers: name1, name2
from: 9:00
to: 10:00
url: http://example.org
- title: titulo2
description: Another talk talking about talks
from: 12:00
to: 13:00
url: http://example.org
- code: Room 2
sessions:
- title: titulo1
description: Start your day healthy
from: 12:00
to: 13:00
url: http://example.org
- title: titulo2
description: A so boring talk
from: 13:00
to: 14:30
url: http://example.org
- title: titulo3
description: Closing the event
from: 17:00
to: 18:00
url: http://example.org
- day: 1
tracks:
- code: Room 1
sessions:
- title: titulo11
description: a workshop
from: 10:00
to: 12:00
url: http://example.org
- title: titulo21
description: Another workshop
from: 13:00
to: 15:00
url: http://example.org
- code: Room 2
sessions:
- title: titulo123
description: Start your day healthy
from: 11:00
to: 12:00
url: http://example.org
Attribute | Description |
---|---|
name |
the name of the conference |
ini |
when the conference start, yyyy-MM-dd |
end |
when the conference end, yyyy-MM-dd |
url |
a url |
days |
a list of DayS |
Attribute | Description |
---|---|
day |
a zero index date (to increase at conference.ini) |
tracks |
a list of TrackS |
Attribute | Description |
---|---|
code |
a short code, i.e. Room 1, Salon, |
sessions |
a list of SessionS |
Attribute | Description |
---|---|
title |
the title of the session |
description |
a description of the session |
from |
the start time 'HH:mm' |
to |
the end time 'HH:mm' |
url |
an url to the session |
Welcome
The welcome message is a short Markdown file you can provide
with the information you want. It will be sent to the user at the start of the chat or when
the user request it via /start
command
Telegram support only a subset of Markdown. Bold, italic, and so on, see Telegram documentation to check what you can use |
Welcome can be a good place, for example, to promote your sponsors including link to their websites and so on.
This is an exampleo of a welcome.md
__*Welcome to TestConference*__
The most awesonic conference about Tech
__*When:*__ 23-26 April 2020
__*Where:*__ Here, in *Madrid*
This event can't happend with the support of:
[Company 1](https://example.org) as Gold sponsor
[Company 2](https://example.org) as Platinum sponsor
Buy your ticket at https://example.org
More information at https://core.telegram.org/bots/api#markdownv2-style