GithubHelp home page GithubHelp logo

updevru / polkovnik-bot Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 1.0 550 KB

Бот-помощник по организации работы команды и увеличения ее эффективности. Позволяет выполнять определенные действия по расписанию.

Go 55.32% HTML 2.18% Dockerfile 0.37% CSS 0.47% JavaScript 41.61% SCSS 0.04%
bot

polkovnik-bot's Introduction

Меня зовут Сергей, занимаюсь разработкой на PHP, Go и TypeScript.

Хобби проекты:

Бот-помощник для команды разработки https://github.com/updevru/polkovnik-bot (Go, ReactJS)

Сервис полезных API для разработчиков https://apispace.ru (Go, ReactJS, Serverless)

  • Geo IP
  • Справочники
  • Проверка номера телефона
  • и др.

Клиент на PHP для API Dkron https://github.com/updevru/dkron-php-client (PHP)

polkovnik-bot's People

Contributors

updevru avatar

Stargazers

 avatar

Watchers

 avatar

Forkers

pyatnitsev

polkovnik-bot's Issues

Не корректный интервал отпуска

Если указать отпуск с 01.06 по 04.06 ожидается, что 04.06 это последний день отпуска и в этот день сотрудник еще не работает.

Сейчас проверка 04.06 по сотруднику срабатывает, нужно изменить это и сделать последнее число интервала "включительно".

Ошибка вычисления рабочего дня

Если сообщение в чат отправляется в понедельник по данным за пятницу и пятница была выходным.
Ожидание - не должно отправиться, т.к. был выходной.

Шаблоны сообщений

  1. Вынести из кода шаблоны сообщений в интерфейс так, чтобы можно было настраивать как глобально так и индивидуально для команд
  2. Реализовать возможность создавать шаблоны и разное содержание для разных чатов
  3. В заданиях - Отправка сообщения команде указывать не текст а выбор шаблона

Цель - при смене канала уведомлений не нужно корректировать шаблоны уведомлений.

Скролл в контейнере основного контента

Реализовать скролл в контейнере основного контента, иначе если страница длинее одного экрана, то появляется стандартный скролл и левый сайдбар не доезжает до конца страницы.

Либо сделать футер который будет в самом низу страницы.

Шаблоны и UI добавить в бинарник

Для более простого управления программой при запуске сделать:

  • Перейти на go 1.16
  • Добавить шаблоны в бинарник
  • Добавить собранный UI в бинарник

Настройка часового пояса

Сейчас настройка часового пояса береться из настроек окружения системы (не всегда правильно).

Реализовать функционал указания часового пояса в настройках программы (пункт меню Настройки).
При манипуляции с датой всегда учитывать эту настройку.

Хранить дату в формате UTC
При отображении даты и в логике приводить к часовому поясу который указан в настройках.
Изменение часового пояса в настройках должно корректно обрабатываться системой

Panic error /app/api/message.go:43

Ошибка при отправке сообщения.

2021/08/06 15:44:18 http: panic serving ***.***.***.***:43394: runtime error: invalid memory address or nil pointer dereference
goroutine 214 [running]:
net/http.(*conn).serve.func1(0xc000390320)
/usr/local/go/src/net/http/server.go:1804 +0x153
panic(0x86e400, 0x12032a0)
/usr/local/go/src/runtime/panic.go:971 +0x499
polkovnik/api.apiHandler.MessageSend.func1(0xfb9ea0, 0xc0003360e0, 0xc0001f8600)
/app/api/message.go:43 +0x19a
net/http.HandlerFunc.ServeHTTP(0xc0001a3220, 0xfb9ea0, 0xc0003360e0, 0xc0001f8600)
/usr/local/go/src/net/http/server.go:2049 +0x44
github.com/gorilla/mux.CORSMethodMiddleware.func1.1(0xfb9ea0, 0xc0003360e0, 0xc0001f8600)
/go/pkg/mod/github.com/gorilla/[email protected]/middleware.go:51 +0xf7
net/http.HandlerFunc.ServeHTTP(0xc0001a2900, 0xfb9ea0, 0xc0003360e0, 0xc0001f8600)
/usr/local/go/src/net/http/server.go:2049 +0x44
github.com/gorilla/mux.(*Router).ServeHTTP(0xc0001a0000, 0xfb9ea0, 0xc0003360e0, 0xc0001f8400)
/go/pkg/mod/github.com/gorilla/[email protected]/mux.go:210 +0xd3
net/http.serverHandler.ServeHTTP(0xc00019c000, 0xfb9ea0, 0xc0003360e0, 0xc0001f8400)
/usr/local/go/src/net/http/server.go:2867 +0xa3
net/http.(*conn).serve(0xc000390320, 0xfbab80, 0xc0001c0400)
/usr/local/go/src/net/http/server.go:1932 +0x8cd
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:2993 +0x39b

Необходимо валидировать запрос и возвращать корректное сообщение об ошибке.

Периодическое сохранения файла конфигурации

Во время работы файл конфигурации может дополняться новыми данным, сейчас он сохраняется на диск только в момент остановки программы.

Необходимо периодически сохранять файл конфигурации на диск (1 раз в минуту) при наличии изменений.

Поддержка i18n для интерфейса

Добавить поддержку i18n в интерфейсе.
Переводы оформить в виде json-объектов, разложить их в отдельные файлы, что бы можно было подключать в отдельности.
Добавить в настройки - выбор языка интерфейса

Функционал для проведения ретроспективы

Реализация сбора + и - с каждого участника команды через личные сообщения, далее отображения всех собранных + и - в интерфейсе.

Использование:

  1. Создаем в интерфейсе запись о ретроспективе, указываем название и дату проведения.
  2. Бот начинает опрашивать членов команды:
    {Дата} состоится ретроспектива пришлите мне свои плюсы
    Отлично напишите мне свои минусы
  3. В интерфейсе можно увидеть + и - каждого участника. Их можно скопировать в виде текста для использования в другой программе

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.