March 4, 2012 was just a crazy day for all of us. For us, not only citizens of Russia, but also authors of the Web-observer service. Now, when we are a little away from all the madness of the past days, I want to tell you about how we wrote the service, what we learned and whether we are going to stop there.
It all started with the rallies, which were caused by the results of elections to the Duma. I (Alexey Poimtsev), as well as several other guys - Nastya Demina
ademina , Arsen Kazibekov
ArKaz and Olya Suvorov for a couple of hours created the helpwall.info page, promoted it through social networks, gathered volunteers who were ready to help the rally participants in trouble, but fortunately, our works were unclaimed - the meetings were held peacefully and without excesses. But I didn’t want to stop at what had been accomplished and very opportunely came across the
post of Ilya Segalovich
iseg , in which, among various ideas, I caught the idea of ​​creating an electronic diary of an election observer. Having thrown the idea into the tape on Facebook, I waited for feedback from my friends and the guys responded quickly enough. The first to
join the project were Arsen Kazibekov, Timofey Tsvetkov
2kan , Dima Valetin and Ilya Obshadko, a little later - Sergey Nebolsin, Nastya Demina, Tanya Misyutina, Lesha Efimov, Sergey Eroshenkov, Kostya Baev, Kolya Seskin, Anton Bondarev and Lesha Trofimenko. Also of great help was Andrei Buzin and Grisha Melkonyants from Golos.
At the very beginning, we started working on two areas - a video observation and a mobile application for observers, but we quickly realized that it made no sense to spray and focused only on the mobile application. Initially, it was proposed to implement the following functionality:
')
- collection of data on violations
- filing complaints + providing data to lawyers
- tracking the status of prosecutions of violators

But limited resources - human and temporary forced us to confine ourselves to the first item, and all the rest to implement according to the residual principle. We agreed that the source code will be available to everyone and it was placed in the
repository on github.
At the same time we watched the developments of other groups. The developers of one of them (I will not name which one) generally suggested that we should minimize the development of our mobile application and modify the server part for them, but being confident in our strength, we refused and for good reason - unlike our development, their application could not earn properly :) Another group of developers was invited to our project at the early stages, refused, but later joined us and really helped with the final testing of the Android version of the application (they had difficulties with server development).

Election day was approaching and we all worked on the project tirelessly. We understood that there was a risk of something not to succeed and focused on the main thing - to collect as much information as possible, and to do the visualization later. The last days we slept for several hours, one of the team members fell down with a temperature just before March 4, but by overcoming myself I was able to gather strength and return to the project.
On election day, Arsen Kazibekov, Nastya Dyomin, Kostya Bayev and Ilya Segalovich worked as observers at the elections, and I, Timofey Tsvetkov, Sergey Nebolsin, Lesha Efimov, Anton Bondarev, Lesha Trofimenko and Kolya Seskin provided the application on the server and on the go added missing pieces code. We parted at 4 am wildly tired.
The result of our work was the following:
- we provided observers with a checklist with violations
- have provided reference materials
- collected violations statistics
- collected photos of the final protocols that were transmitted to all interested organizations - Voice, Elephant, Grakon and others.
You can familiarize yourself with the
statistics and
summary protocols.Maybe not everything was perfect, but you cannot demand an ideal from a completely new type of application that was created in a short time by a small team of experts.
Now negotiations are underway with the Ukrainian and Moldovan colleagues, who will also face the issue of organizing election observation in the near future.
But who participated in the development
Project coordination - Alexey Poimtsev (
Progress Engine ) and Ilya Segalovich (
Yandex )
ServerSide - Timofey Tsvetkov (
Evil Martians ), Sergey Nebolsin (
Prophotos ), Alexey Trofimenko (
Eviterra ), Nikolay Seskin (
Evrone )
Frontend - Konstantin Baev, Sergey Eroshenkov
Design, UI - Tatiana Misyutina (
Evil Martians ), Anton Bondarev (
Evrone )
Mobile - Ilya Obshadko (XMP soft), Dmitry Valetin (R Style), Alexey Efimov (
Yandex )
PR - Anastasia Demina (Digital October), Arsen Kazibekov (
Smart Wall and
Krona Mobile )
Special thanks to everyone who participated in the testing - Evgeny Danilov
aradan and other experts.
Well, some links on the topic:
Observer Website -
webnabludatel.orgNewspaper article -
www.novayagazeta.ru/news/54190.htmlAn article in RIA Novosti -
www.ria.ru/vybor2012_hod_vyborov/20120214/565765738.htmlDigit article -
www.digit.ru/technology/20120214/389252760.htmlAn article in the Financial Times -
blogs.ft.com/beyond-brics/2012/03/02/russia-apping-the-electionsInterview with Aleksey Poimtsev and Ilya Segalovich on “Rain” -
tvrain.ru/teleshow/govorite_s_toney_samsonovoy/sozdateli_veb_nablyudatelya_o_svoem_proekte-180292Alena Popova and Alexey Poimtsev about the application -
alenapopova.ru/egov/webnabludatel-org-ili-elektronnyj-dnevnik-nablyudatelya.htmlAlexey's presentation at the Mobifest 2012 conference -
www.slideshare.net/alexeypoimtsev/mobi-fest-2012-presentationDiscussion of the project in the ror2ru community -
groups.google.com/forum/?fromgroups# ! Topic / ror2ru / 35t9exGbvW0
If you have questions - ask and I will be happy to try to answer them.
UPD 0 : In order to save money, we turned off the server on which the applicative part was spinning. Statistical information and photos of the final protocols are available, personal reports are currently unavailable. In any case, we have dumped the database and file system, so if necessary, all data can be provided on request.
UPD 1 : I forgot to mention that due to the large number of models of Android phones, we did not have the opportunity to test the application on all devices. We noticed that some devices sent incorrect data - for example, Timofey Tsvetkov noticed that some devices sent messages with status in the distant future and wrote a rake task to correct this, but other errors are also not excluded.
UPD 2 : “Web-Observer” is nominated for the title of the Best Technological Project for the Public Benefit within the Deutsche Welle Blog Awards. If you like the project, you can vote for it here
thebobs.com/russian/category/2012/best-use-of-technology-for-social-good-2012UPD 3 : We used the following tools when developing
Server - Ubuntu 10.4 on AWS
- DB - PostgreSQL
- application server - Ruby on Rails 3.2.1 + Unicorn + Nginx
- IDE - RubyMine, Xcode, Eclipse
- Operating systems - mainly OSX Lion on 15 "MBP :)))
- Monitoring - ScoutApp + NewRelic + AirBrake
- Teamwork (task + discussion) - BaseCamp
- Source code - github
- Tasks for the developers of PivotalTracker (a little) + Github Issues + BaseCamp + Skype + email + phone + personal communication
- The amount of coffee drunk - when calculating jumped out of exclusion, we can not fully understand the meaning, but something about that too much :)