Ищу человека или команду с опытом работы с Client Portal API Interactive Brokers (https://www.interactivebrokers.com/en/trading/ib-api.php#api-software) Именно RESTful API https://api.ibkr.com/v1/api, не TWS! Нужно реализовать на node.js или php получение данных порфолио аккаунта (/accounts/{account}/positions)
Написать телеграмм бота на Pythone
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.
ТЗ НА БОТА ДЛЯ СВЯЗИ ОПЕРАТОРОВ И РАБОТНИКОВ
Концепция Оператор и работник могут общаться через бота.
Операторы могут просматривать информацию о работниках, вручную добавлять работников, оставлять отзывы о работниках, получить ссылку на чат.
Администраторы могут просматривать информацию об операторах, добавлять, удалять и редактировать операторов.
Оператор Первый вход При первом входе, оператор должен авторизоваться по логину и паролю. В дальнейшем это не понадобится.
Просмотр работников Оператор может просмотреть список работников в боте в виде списка кнопок с именем оператора с бесконечной (если больше нет страниц, то переходит на первую/последнюю) пагинацией по 10 штук на страницу и с возможностью поиска.
По нажатию на кнопку работника, оператор видит меню работника с информацией о нем (фио, дату рождения, фото работника во весь рост, район фактического проживания, фото паспорта и номер сотового телефона), а также с возможностью внести отзыв и просмотреть уже имеющиеся отзывы. Плюс, есть возможность удалить работника, изменить информацию о работнике при наличии соответствующих полномочий.
В списке работников также отображаются работники, которых нет в базе, но о которых есть отзывы в виде номера телефона (на кнопке также номер телефона). При включенных фильтрах фио/район фактического проживания эти работники отображаются в конце списка.
Поиск по спискуПри нажатии в списке работников на кнопку поиска работников, бот предлагает оператору указать, по какому параметру работника делать поиск и ввести запрос. Параметры, доступные для поиска: фио, номер телефона, район фактического проживания.
После ввода запроса бот отправляет меню с фильтрами поиска. Тут работник может удалить фильтр и добавить фильтр (при добавлении фильтра, новый фильтр используется вместе с уже использующимися).
Поиск по фиоПри поиске по фио, идет фильтр на наличие указанных букв/слов/словосочетаний в фио работника, с удалением лишних пробелов и заменой символов и автозаменой символов, не являющимися буквами на пробелы.
Примеры:
работники в базе: Иванов Андрей Николаевич, Филиппов Александр Владимирович, Филиппов Алексей Викторович, Андреев Иван Александрович
запрос: Ал
ответ: Филиппов Александр Владимирович, Филиппов Алексей Викторович, Андреев Иван Александрович
запрос: Виктор
ответ: Филиппов Алексей Викторович
запрос: АИ
ответ: работники не найдены
запрос: Филиппов А
ответ: Филиппов Александр Владимирович, Филиппов Алексей Викторович
запрос: Филиппов Алекса
ответ: Филиппов Александр Владимирович
запрос: Филиппов Александр
ответ: Филиппов Александр Владимирович
запрос: Филиппов, Александр
ответ: Филиппов Александр Владимирович
Поиск по номеру телефонаПри поиске по номеру телефона, бот уведомляет о формате, в котором нужно указывать запрос, при получении идет фильтр на наличие указанной части в номере работника, с предварительной автоматической нормализацией к формату, в котором номера хранятся в бд (удаление не нумерических символов из номера). Также, если запрос начинается на 8, то поиск идёт на эту запрос + запрос с замененной первой цифрой на 7.
Примеры:
работники в базе: 79113456789, 79315249080, 79115246677, 79115677690
запрос: +7911
ответ: 79113456789, 79115246677, 79115677690 (в результатах будут не номера, а имена, формат, как указано в начале)
запрос: 8911
ответ: 79113456789, 79115246677, 79115677690
запрос: 7 (911) 345
ответ:79113456789
запрос: 90
ответ: 79315249080, 79115677690
запрос: 9, 3, 0
ответ: работники не найдены
запрос: 9, 3, 1
ответ: 79315249080
Поиск по району фактического проживанияПри поиске по району фактического проживания, бот присылает кнопки со всеми районами, в которых есть работники в боте и предлагает выбрать, либо написать самому. Потом идет фильтр на наличие указанных букв/слов/словосочетаний в районе работников.
Примеры:
работники в базе: Приморский, Адмиралтейский, Центральный, Центральный
запрос: Ад
ответ: Адмиралтейский (в результатах будут не районы, а имена, формат, как указано в начале)
запрос: Адмиралтейский район
ответ: работники не найдены
запрос: Центр
ответ: Центральный, Центральный
Удаление работникапроверка полномочия “удаление работников”
При нажатии на удаление работника, бот спрашивает оператора, уверен ли он и предлагает либо продолжить, либо отменить. При нажатии на продолжить, работник удаляется из базы данных навсегда, его можно только заново добавить, но не восстановить. После удаления в отдельный канал специально для данных логов приходит сообщение об удалении следующего вида:
Удалена анкета
Кем анкета была создана: логин оператора/администратора, который создал анкету, либо номер телефона работника, если анкету создал сам работник.
Кем анкета была удалена: логин оператора/администратора, который удалил анкету
Изменение информации о работникепроверка полномочия “внесение правок в информацию о работнике”
При переходе к изменению информации о работнике, бот спрашивает у оператора, какую информацию он хочет изменить, потом спрашивает, какая теперь должна быть эта информация и ввод информации происходит, как при первом входе работника.
Внесение отзывапроверка полномочия “ввод отзыва о работнике”
В отзыве указывается тип отзыва (положительный, отрицательный) и сообщение с отзывом. Отзыв от одного оператора/администратора об одном работнике может быть только один, и его нельзя изменить.
Просмотр отзывовПри переходе к просмотру отзывов о работнике, отзывы отображаются в виде, списка отзывов, следующими один за другим, с пагинацией (на одной странице - один отзыв), отзывы отсортированы по дате добавления. Отзывы можно отфильтровать по типу (положительные/отрицательные). Отзывы можно удалять при наличии полномочия “удаление отзывов о работниках”.
Удаление отзывапроверка полномочия “удаление отзывов о работниках”
При нажатии на удаление отзыва, бот спрашивает оператора, уверен ли он и предлагает либо продолжить, либо отменить. При нажатии на продолжить, отзыв удаляется из базы данных навсегда без возможности восстановления.
Добавление работниковпроверка полномочия “ручное добавление работника”
В меню добавления работников, оператор может самостоятельно добавлять работников в бота. При добавлении работника оператором, оператор должен указать айди пользователя в телеграме, фио, дату рождения, фото во весь рост, район фактического проживания, фото паспорта и номер телефона работника, заполнение идет также, как при первом входе работника.
айди пользователя в телеграме
Заполнение: текстовое сообщение от пользователя
Валидация: сообщение является нумерическим
Получение ссылки на чатТут операторы могут получить ссылку, указанную в настройках бота администратором.
Внесение отзыва по номеру телефонаЕсть отдельно возможность внести отзыв по номеру телефона. При переходе к внесению отзыва по номеру телефона, оператор вводит номер телефона, потом вводит отзыв.
РаботникПервый входПри первом входе (если не был зарегистрирован ранее самостоятельно или оператором/администратором), бот запрашивает у работника согласие на обработку персональных данных. При согласии, бот запрашивает следующую информацию:
1) ФИО
Заполнение: текстовое сообщение от пользователя
Валидация: сообщение является тремя словами
Нормализация: удаление лишних символов и пробелов, не являющимися буквами/пробелами
2) дата рождения
Заполнение: текстовое сообщение от пользователя
Валидация: сообщение является датой в формате DD.MM.YYYY
3) фото во весь рост
Заполнение: сообщение от пользователя
Валидация: сообщение является фотографией/документом в формате изображения
4) район фактического проживания
Заполнение: выбор кнопки из предложенных районов
Валидация: сообщение является одним из предложенных районов в кнопках
5) фото паспорта
Заполнение: сообщение от пользователя
Валидация: сообщение является фотографией/документом в формате изображения
6) номер сотового телефона
Заполнение: отправка пользователем контакта посредством нажатия на кнопку либо текста с номером
Валидация: сообщение является контактом/номером, проверка hlr-запросом доступности номера через сервис https://smsc.ru/
Нормализация: приведение к формату 7**********
После заполнения пользователем данных, данные отправляются на канал, указанный в настройках бота с кнопками "подтвердить" и "отменить".
При нажатии на кнопку "подтвердить" администратором либо оператором,, имеющим полномочие "модерация новых работников", работнику приходит сообщение о том, что он успешно зарегистрировался и его анкета сохраняется.
При нажатии на кнопку "отменить", администратор/оператор перенаправляется на бота, где заполняет причину отказа. Работнику отправляется сообщение об отказе с причиной отказа и предложение заполнить анкету заново.
АдминистраторПервый входПри первом входе, администратор должен авторизоваться по логину и паролю, хранящимся на сервере. В дальнейшем это не понадобится.
Просмотр операторовАдминистратор может просмотреть список операторов в боте в виде списка кнопок с логином оператора с бесконечной (если больше нет страниц, то переходит на первую/последнюю) пагинацией по 10 штук на страницу.
По нажатию на кнопку оператора, администратор видит меню оператора с информацией о нем (логин, примерное время последней активности в боте), а также с возможностью изменить логин и пароль. Изменение логина/пароля - просто ввод нового логина/пароля. Тут же есть возможность удалить оператора.
Добавление оператораПри добавлении оператора, администратор вводит новые логин/пароль и указывает полномочия оператора.
Полномочия оператора: ручное добавление работника (по умолчанию включено), ввод отзыва о работнике (по умолчанию включено), удаление отзывов о работниках (по умолчанию выключено), удаление работников (по умолчанию выключено), внесение правок в информацию о работнике (по умолчанию выключено), модерация новых работников (по умолчанию включено).
Удаление оператораПри нажатии на удаление оператора, бот спрашивает администратора, уверен ли он и предлагает либо продолжить, либо отменить. При нажатии на продолжить, оператор удаляется из базы данных навсегда, его можно только заново добавить, но не восстановить.
Изменение текстаБоту пишется команда /edit_texts. В ответ бот отправляет файл с текстами, в котором админ меняет тексты и отправляет файл боту и тексты меняются. Вот так, примерно, выглядит файл. В {} - переменные, которые подставляет бот. Они - не любые, там только переменные, которые изначально были в тексте, админ их не может менять/добавлять, можно только убрать совсем из текста. Перенос строки - \n. Форматирование - html.
Изменение канала, в которые приходят анкеты новых работниковАдминистратор может поменять канал, в которых должны приходить анкеты новых работников. Он это делает либо вводом айди, либо форвардом любого сообщения с целевого канала.
Изменение канала, в который приходят логи об удалении работников
Администратор может поменять канал, в которых должны приходить логи об удалении работников. Он это делает либо вводом айди, либо форвардом любого сообщения с целевого канала.
Добавление/удаление подсказок районовАдминистратор может добавлять и удалять районы. Бот отправляет текущий список районов. Администратор отправляет боту район текстом. Если такой район есть в текущем списке районов, то бот удаляет подсказку (если работники с этим районом есть, то бот уведомляет об этом администратора). Если района нет в боте, то бот добавляет данный район в список подсказок.
Подсказки районов - подсказки, которые видят работники/операторы/администраторы при заполнении анкеты работника в поле района.
Дополнительно дублирующиеся функцииУ администратора есть следующие функции, как у оператора: просмотр работников, добавление работников, получение ссылки на чат. У администратора есть все “полномочия”, им доступен весь функционал, что доступен операторам без ограничений.
Все пользователиПоддержкаПолучение ссылки, указанной админом.
Так же есть схема.
- Похожие заказы
- Веб-программирование3 заявкиЗакрыт2 года назад
Устранить неполадки в работе поисковика, при вводе названия товара появляется выпадающий список (пример рис.1), если выбрать какой-либо вариант из списка то поисковик работает корректно, а если просто ввести название товара и нажать иконку поиска то ...
Веб-программирование1 исполнительЗавершен2 года назадНужно дублировать функционал действующего телеграм бота (старую связку потом заглушим) с сущности "Универсальные списки" Битрикс24 на сущность "Коммерческие предложения". Поменять связи существующие. Более подробно описано в файле технического задания. Там и ...
Веб-программированиенет заявокЗакрыт2 года назадЗдравствуйте. Есть сайт на wfolio (конструктор). Есть реклама в инстаграм. Нужно настроить кнопки на сайте таким образом, чтобы UTM-метка при переходе на сайт, сохранялась и при переходе в корзину, для отслеживания эффективности рекламы. Сейчас кнопки запрограммированы по статичному ...
Веб-программирование1 исполнительЗавершен3 года назад- Веб-программирование13 заявокЗакрыт2 года назад
Наш сайт: https://vital-eloboost.com \ CMS - WP \ php \ vps Нужен разработчик, что называется, "на постоянку", с наличием времени на глубокое знакомство с проектом - не путать с полной занятостью. Список возможных задач скину документом ...
Веб-программирование5 заявокЗакрыт2 года назадДобрый день! Необходимо на сайт добавить каталог с возможностью добавлять новые позиции Пример как тут: katalizatorychrzanow . pl/cennik/ Из особенностей: [list=1][*]Самый дорогой катализатор должен быть в самом верху списка[*]Сделать возможность добавлять катализатор как бы в корзину и потом ...
Веб-программирование8 заявокЗакрыт2 года назадНужен программист laravel firework/ скрипт у меня работает на ubuntu // надо убрать авторизацию.
Веб-программирование6 заявокЗакрыт3 года назад- $500
Це тілький перший етап, десь відсотків 20%. Розробника шукуаю на постійну співпрацю: розробити і підтримувати сайт - буде ставка. Треба розробити сайт, а також розширення під Chrom. Сайт буде брати данні з таблиць БД і по алгоритмам ...
Веб-программирование4 заявкиЗакрыт2 года назад