Так как нам необхдимо управлять мероприятиями, мы решили взять готовый бот и переделать его под наши нужды. Тестово развёрнутый бот: https://t.me/peredelanoconf_em_test_bot (доступен только клиенсткий функционал)
Админ указанный в конфиге бота может создавать, удалять, изменять мероприятия, банить пользователей, назначать и убирать менеджера мероприятия, удалять бронирования, рассылать сообщения забронировавшим пользователям Мероприятия создаются с помощью отправки JSON-а боту от админа:
{
"name": "Peredelanoconf Yerevan TEST EVENT FOR BOT", # имя мероприятия
"link": "https://t.me/peredelanoconfyerevan/579", # ссылка на мероприятие
"start": "2023-06-17 15:00 +00:00", # время начала мероприятия
"remind": "2023-05-28 15:00 +00:00", # время отправки напоминания по мероприятию
"max_adults": 100, # максимальное количество мест для взрослых, которое может быть забронировано, при превышение количества, люди будут помещаться в лист ожидания
"max_children": 100, # максимальное количество мест для детей, которое может быть забронировано, при превышение количества, люди будут помещаться в лист ожидания
# Если и там, и там 0 0 - то мероприятие является просто анонсом, и на переходе по кнопке в списке мероприятий пользователь переходе по ссылке link
"max_adults_per_reservation": 4, # максимальное количество мест для взрослых, которое может быть забронировано одним пользователем
"max_children_per_reservation": 5, # максимальное количество мест для детей, которое может быть забронировано одним пользователем
"adult_ticket_price": 120, # ценник бронирования места для взрослых, может быть 0, если мероприятие бесплатно для взрослых
"children_ticket_price": 60, # ценник бронирования места для детей, может быть 0, если мероприятие бесплатно для детей
"currency": "USD" # валюта оплаты
}
Пользователь пишет боту, в ответ получает список предстоящих мероприятий:
При выборе мероприятия будет показано сообщение бронирования:
В котором можно выбрать сколько нужно забронировать места и после перейти к оплате
После оплаты при выборе видно будет на какое мероприятия пользователь забронировал и оплатил билет:
The bot can help with basic event management tasks like sign up, cancel, remind, manage waiting lists, etc.
- Register a bot, configure access token, set administrators in the config file, build and start.
- Check /help for controls.
- Invite your audience to sign up using links returned on event creation.
- Internationalization. The initial language choice was made to help a european non-profit organize events for children and their mothers fleeing the war in Ukraine.
v0.1.0 added custom currency setting for price of the event
v0.0.3 added mounting volume for sqlite3 database from docker for storing events and users
v0.0.2 added dockerfile and docker-compose for running application, fixed message when event added added playbook for deploying application to the server and preparing it for running added release workflow for creating release and deploying it to the server added registry publication workflow for publishing docker image to the github registry
v0.0.1 added basic functionality for creating events and signing up for them
Need host where will be deployed docker containers with the application Playbooks works only with Ubuntu 20.04
DEPLOY_SSH_KEY - private key for ssh access to the target server
DEPLOY_SSH_USER - username for ssh access to the target server
DEPLOY_USER_PASSWORD - password for the user on the target server
DOCKER_HOST_ADDRESS - address of the docker host where will be deployed
PAT_SECRET - personal access token for github actions
PAYMENT_PROVIDER_TOKEN - token for payment provider for prerelease env
TELEGRAM_BOT_TOKEN - token for telegram bot for prerelease env
PAYMENT_PROVIDER_TOKEN - token for payment provider for main env
TELEGRAM_BOT_TOKEN - token for telegram bot for main env