6 April 2012

Web-наблюдатель. Как разрабатывался сервис

Self Promo
4 марта 2012 года был просто сумашедший день для всех нас. Для нас — не только граждан России, но и авторов сервиса Web-наблюдатель. Сейчас, когда мы немного отошли от всего безумия прошедших дней я хочу рассказать вам о том как мы писали сервис, чему научились и собираемся ли мы останавливаться на достигнутом.


Все началось с митингов, которые были вызваны результатами выборов в Думу. Я (Алексей Поимцев), а также еще несколько ребят — Настя Дёмина ademina, Арсен Казибеков ArKaz и Оля Суворова за пару часов создали страничку helpwall.info, раскрутили ее через социальные сети, собрали волонтеров, которые были готовы помогать попавшим в беду митингующим, но к счастью наши труды оказались невостребованными — митинги прошли мирно и без эксцессов. Но останавливаться на достигнутом не хотелось и очень кстати на глаза попался пост Ильи Сегаловича iseg, в котором среди различных идей я уловил идею создания электронного дневника наблюдателя на выборах. Забросив идею в ленту в Facebook я стал ждать фидбэка от френдов и ребята достаточно быстро откликнулись. Первыми в проект включились Арсен Казибеков, Тимофей Цветков 2kan, Дима Валетин и Илья Обшадко, чуть позже — Сергей Небольсин, Настя Дёмина, Таня Мисютина, Леша Ефимов, Сергей Ерошенков, Костя Баев, Коля Сескин, Антон Бондарев и Леша Трофименко. Также неоценимую помощь оказали Андрей Бузин и Гриша Мелконьянц из Голоса.

В самом начале мы начали работу над двумя направлениями -видео наблюдения и мобильное приложение для наблюдателей, но достаточно быстро поняли, что не имеет смысла распыляться и сосредоточились только на мобильном приложении. Изначально было выдвинуто предложение реализовать следующий функционал:

— сбор данных о нарушениях
— подача жалоб + предоставление данных юристам
— отслеживание статуса судебных преследований нарушителей



Но ограниченные ресурсы — человеческие и временные вынудили нас ограничиться первым пунктом, а все оставшиеся реализовывать по остаточному принципу. Договорились, что исходный код будет доступен всем желающим и он был размещен в репозитарии на github.

Одновременно мы наблюдали за разработками других групп. Разработчики одной из них (не буду называть какой именно) вообще предложили нам свернуть разработку своего мобильного приложения и дорабатывать серверную часть под них, но будучи уверенными всвоих силах мы отказались и не зря — в отличии от нашей разработки их приложение так и не смогло нормально заработать :) Другая группа разработчиков была приглашена в наш проект на ранних этапах, отказалась, но позже присоединилась к нам и очень помогла с финальным тестированием Android-версии приложения (у них возникли сложности с серверной разработкой).



Приближался день выборов и все мы работали над проектом не покладая сил. Мы понимали, что есть риск что-то неуспеть и сосредоточились на главном — собрать как можно больше информации, а визуализацию сделать позже. Последние дни мы спали по несколько часов, один из участников команды свалился с температурой перед самым 4 марта, но пересилив себя смог собрать силы и вернуться в проект.

В день выборов Арсен Казибеков, Настя Дёмина, Костя Баев и Илья Сегалович работали наблюдателями на выборах, а я, Тимофей Цветков, Сергей Небольсин, Леша Ефимов, Антон Бондарев, Леша Трофименко и Коля Сескин обеспечивали работу приложения на сервере и на ходу дописывали недостающие куски кода. Разошлись мы в 4 утра дико уставшие.

Итогом нашей работы было следующее:
— мы обеспечили наблюдателей чеклистом с нарушениями
— предочтавили справочные материалы
— собрали статистику нарушений
— собрали фотографии итоговых протоколов, которые были переданы всем заинтересованным организациям — Голос, Слон, Гракон и другие.

Вы можете сами ознакомиться со статистикой и итоговыми протоколами.

Возможно не все было идеально, но нельзя требовать идеала от абсолютно нового типа приложений, которое создавалось в сжатые сроки небольшой командой экспертов.

Сейчас идут переговоры с украинскими и молдавскими коллегами, перед которыми также в ближайшее время встанет вопрос об организации наблюдения на выборах.

А вот кто участвовал в разработке

Координация проекта — Алексей Поимцев (Двигатель Прогресса) и Илья Сегалович (Яндекс)
ServerSide — Тимофей Цветков (Evil Martians), Сергей Небольсин(Prophotos), Алексей Трофименко (Eviterra), Николай Сескин (Evrone)
Frontend — Константин Баев, Сергей Ерошенков
Дизайн, UI — Татьяна Мисютина(Evil Martians), Антон Бондарев(Evrone)
Mobile — Илья Обшадко (XMP soft), Дмитрий Валетин (R Style), Алексей Ефимов (Яндекс)
PR — Анастасия Дёмина (Digital October), Арсен Казибеков (Smart Wall и Krona Mobile)

Отдельное спасибо всем кто принимал участие в тестировании — Евгений Данилов aradan и другие эксперты.

Ну и немного ссылок по теме:
Сайт Наблюдателя — webnabludatel.org
Статья в Новой Газете — www.novayagazeta.ru/news/54190.html
Статья в РИА Новости — www.ria.ru/vybor2012_hod_vyborov/20120214/565765738.html
Статья в Digit — www.digit.ru/technology/20120214/389252760.html
Статья в Financial Times — blogs.ft.com/beyond-brics/2012/03/02/russia-apping-the-elections
Интервью Алексея Поимцева и Ильи Сегалович на «Дожде» — tvrain.ru/teleshow/govorite_s_toney_samsonovoy/sozdateli_veb_nablyudatelya_o_svoem_proekte-180292
Алена Попова и Алексей Поимцев о приложении — alenapopova.ru/egov/webnabludatel-org-ili-elektronnyj-dnevnik-nablyudatelya.html
Презентация Алексея на конференции Мобифест 2012 — www.slideshare.net/alexeypoimtsev/mobi-fest-2012-presentation
Обсуждение проекта в ror2ru сообществе — groups.google.com/forum/?fromgroups#!topic/ror2ru/35t9exGbvW0

Если у вас есть вопросы — спрашивайте и я с удовольствием постараюсь на них ответить.

UPD 0: С целью экономии денег мы выключили сервер, на котором крутилась аппликативная часть. Статистическая информация и фото итоговых протоколов доступны, персональные отчеты сейчас недоступны. В любом случае — мы сделали дамп базы данных и файловой системы, поэтому при необходимости все данные могут быть предоставлены по запросу.

UPD 1: Забыл упомянуть, что в связи с большим количеством моделей Android-телефонов у нас отсутствовала возможность протестировать приложение на всех устройствах. Мы заметили, что некоторые устройства отправляли некорректные данные — например Тимофей Цветков заметил, что некоторые аппараты отправляли сообщения со статусом в далеком будущем и написал rake task для исправления этого, но также не исключены другие погрешности.

UPD 2: «Веб-наблюдатель» выдвинут на звание Лучшего технологического проекта на благо общества в рамках Deutsche Welle Blog Awards. Если вам нравится проект — вы можете проголосовать за него тут thebobs.com/russian/category/2012/best-use-of-technology-for-social-good-2012

UPD 3: При разработке мы использовали следующие инструменты
— сервер — Ubuntu 10.4 на AWS
— БД — PostgreSQL
— сервер приложений — Ruby on Rails 3.2.1 + Unicorn + Nginx
— IDE — RubyMine, Xcode, Eclipse
— Операционные системы — преимущественно OSX Lion на 15" MBP :)))
— Мониторинг — ScoutApp + NewRelic + AirBrake
— Командная работа (таски + обсуждения) — BaseCamp
— Исходный код — github
— Задачи разработчикам PivotalTracker (мало) + Github Issues + BaseCamp + Skype + email + телефон + личное общение
— Количество выпитого кофе — при подсчете выскочил эксцепшн, полностью понять смысл не можем, но что-то о том, что слишком много :)
Tags:facebookвыборы 2012выборыяндекссегаловичголосevil martiansevroneprogress engine
Hubs: Self Promo
+38
2.1k 50
Comments 48