# JeDoIst клиент ## Что это? - это клиент для телеграм-бота [JeDoIst](https://t.me/jedoist) ## Зачем вам это? - [JeDoIst](https://t.me/jedoist) - это автоматизатор входящей очереди задач Не так давно я прочитал книгу Максима Дорофеева "[Джедайские техники](https://t.me/bvn13_blog/108)", данный проект основан на идеях, описанных в данной книге. ## Какие идеи? - каждый человек работает с задачами - чтобы быть успешным, нужно **правильно** работать со своими задачами - очередь входящий задач должна быть одна: должно быть одно место, куда складываются все входящие задачи - **работа** заключается в постоянной проработке и декомпозиции этой очереди по правилам, описанным в книге, по принципу "для того, чтобы обезьянке стало проще выполнять" ### Улучшения - часто идеи приходят в совершенно неподходящee для записывания "от руки" время - хочется иметь инструмент, который послужит входящей очередью, в которую можно буквально **надиктовать** задачу - но очередь задач должна быть одна, поэтому... - голосовые записи должны быть расшифрованы и сложены в единую очередь ## Поэтому - [JeDoIst](https://t.me/jedoist) является этой входящей очередью, в которую можно "надиктовать" свою идею или задачу - он бережно расшифрует голосовое сообщение и передаст его в callback-е на любой удаленный сервер - с одним ограничением: протокол диктует [JeDoIst](https://t.me/jedoist), и должна быть авторизация ### И поэтому... - этот репозиторий предназначен для быстрого развертывания веб-сервера, в который будут отправляться ваши задачи ## Но! - Вопрос: но где же опубликовать этот веб-сервер? - Ответ: на любом VPS - Вопрос: как сохраняются задачи? - Ответ: в одном файле в формате Markdown - Вопрос: файл на сервере, я работаю на ноутбуке - где логика? - Ответ: есть [Syncthing](https://syncthing.net), который позволит синхронизировать файл с задачми на сервере и на ноутбуке. И на смартфоне. # Инструкция установки и настройки ## Что понадобится В минимальной комплектации понадобится: 1. VPS - арендуйте где-нибудь сервер (не хостинг). Проверенные варианты: Mail.Ru Group, Yandex 2. git - установите на сервер 3. [Docker](https://docs.docker.com/engine/install/ubuntu/) - куда без него? 4. [docker-compose](https://docs.docker.com/compose/install/linux/) - с этим проще деплоить ## Как собрать 1. `git clone https://gitea.bvn13.me/bvn13/jedoist-client.git` 2. `bash prepare-install.sh` ## Настройка запуска 1. Настройка осуществляется установкой переменных окружения при старте - TODO_PATH - каталог (локальный), где хранится файл с заданиями - TODO_FILE - имя файла с заданиями 2. Формат файла с заданиями такой: это MarkDown с жесткой структурой ``` # ToDo - [ ] task 1 - [ ] task 2 ``` сервис при добавлении новой задачи ищет строку `# ToDo`, после этого отступает одну пустую строку и добавляет задачу в формате MarkDown checked action. Советую ознакомиться с [форматом MarkDown](https://www.graef.io/basic-markdown-syntax/), потому что полезно. 3. Третья важная переменная окружения - TOKEN - это тот авторизационный токен, который будет необходимо сообщить боту JeDoIst при добавлении себе списка задач. ## Запуск Запуск осуществляется стандартным путем, с помощью `docker-compose`: ``` > TODO_PATH=/path/to/dir \ TODO_FILE=file.md \ TOKEN=my-secret-token \ docker-compose up -d ``` ## Проверка статуса ``` > docker ps ``` Контейнер должен быть `alive` и не перегружаться. ## Как же настроить список задач в боте? `/create_todo_list` - команда добавления списка задач 1. имя списка задач - необходимо для того, чтобы после введенной задачи (в диалоге бота в Телеграм) указать, в какой список добавить задачу 2. `callback URL` - это внешний адрес вашего запущенного сервиса (по этой инструкции). Если вы арендовали VPS, то добавьте в ее FireWall порт 8080 для настоящего сервиса, и укажите в диалоге бота адрес `http://YOUR_VPS_IP:8080/create-task` 3. токен авторизации - тот самый токен, который указан при запуске настоящего сервиса на вашем VPS