Giter Site home page Giter Site logo

observer-bot's Introduction

Телеграм ЦИК

Build Status Coverage Status Dependency Status gitHub issues github pull requests

Бот Наблюдатель

Исходный код проекта "Телеграм ЦИК"

Идея проекта заключается в разработке Telegram бота, который будет коммуницировать с наблюдателями на избирательных участках в день выборов. Посредством бота волонтёры будут отправлять информацию о характере нарушений в в ходе голосования, явку избирателей, а также итоги. Одновременно эта информация будет шариться в социальные сети

Основной целью проекта является сбор, анализ и распространение информации о ходе и результатах голосования на выборах 2018 г.

Установка

Для успешного запуска проекта настоятельно рекомендуется иметь предустановленные на локальной машине Node.js версии 7 и выше и пакетный менеджер Yarn

Перед началом установки для дальнейшего начала работы над проектом необходимо сделать форк данного репозитория и клонировать его, после чего перейти в директорию проекта:

$ git clone [email protected]:YOUR_GITHUB_USERNAME/observer-bot.git
$ cd ./observer-bot

Установку рекомендуется осуществлять с помощью утилиты make:

$ make install

Механизм аутентификации наблюдателя

Для того, чтобы наблюдатель мог быть уникально идентифицирован, предлагается использовать авторизационные токены. У нас есть N штук уникальных ссылок вида https://t.me/ObserverBot?start=9d547607fc. При email-рассылке на наблюдателей можно каждому из них отдать такую ссылку — при переходе в бота их телеграм аккаунт привяжется к этому токену. Это также значит, что другой пользователь авторизоваться по этой же ссылке уже не сможет. Авторизованные наблюдатели получают доступ к полной функциональности ботика.

Пользовательский сценарий

Лицензия

MIT

observer-bot's People

Contributors

azat-io avatar fletcherist avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

observer-bot's Issues

Пофиксить баг с определением геопозиции

Необходимо выпилить регулярками то, что содержится в круглых скобках в адресе избирательного участка. Возможно это затрудняет определение широты и долготы, вводя Гугл в ступор. Некоторые адреса выглядят примерно так:

"196240, Город Санкт-Петербург, Московский район, муниципальное образование муниципальный округ Новоизмайловское, Костюшко ул., д.62, (школа №544, 1 этаж, учительская)"

Создание тестов на знание избирательного законодательства

Запилить функцию, получающую в виде аргумента массив из объектов, где содержатся вопросы для волонтёра

Псевдо-код:

const questions = [{
    question: 'Протокол участковой комиссии об итогах голосования считается действительным, если он подписан:',
    options: [{
        answer: 'Председателем, заместителем председателя и секретарем участковой комиссии',
        isTrue: false,
    }, {
        answer: 'Председателем участковой комиссии',
        isTrue: false,
    }, {
        answer: 'Всеми членами либо большинством от установленного числа членов участковой комиссии с правом решающего голоса',
        isTrue: true,
    }, {
        answer: 'Всеми членами либо большинством от установленного числа членов участковой комиссии с правом решающего голоса, членов участковой комиссии с правом совещательного голоса',
        isTrue: false,
    }]
}, {
    // ...
}]

knowledgeTest(questions)

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

После отправки твита с каким-либо нарушением, было бы неплохо отправлять пользователю в Телеграм ссылку на опубликованный твит, чтобы тот мог сделать ретвит

Динамические кнопки

По клику на инлайновые кнопки необходимо изменять содержимое сообщения и выдавать новые кнопки

Большой рефакторинг

Отрефакторить существующий код. Удалить неиспользуемый код (например код регистрации в боте). В идеале написать бы комментарии ещё к некоторым частям кода

Постинг в Инстаграм

Если это возможно. Но вроде бы у Инстаграма нет официального API для публикации фотографий. Но было бы весело, если бы при сообщении о каком-либо нарушении (в случае наличия фотографии), информация также пилилась в инсту

Результаты голосования

Необходимо реализовать обработку результатов голосования, а именно:

  • получение результатов от пользователя
  • отправка результатов с избирательного в БД
  • обработка результатов для последующей отправки в Твиттер

Инструкция по пользованию

Написать человеческую инструкцию по использованию бота, которая должна приходить пользователю после авторизации в боте. Будет храниться в файле ./content/start.md

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.