DOU Проектор: «Мой город» — краудфандинговая платформа для тех, кто любит свой город

В рубрике DOU Проектор все желающие могут презентовать свой продукт (как стартап, так и ламповый pet-проект). Если вам есть о чем рассказать — приглашаем поучаствовать. Если нет — возможно, серия вдохновит на создание собственного made in Ukraine продукта. Вопросы и заявки на участие присылайте на [email protected].

Меня зовут Шкарбалюк Александр, и я FullStack Developer (Sysadmin, DevOps, System Architect и прочие технические специальности) в проекте «Мой город». Это краудфандинговая платформа, призванная улучшить родной город средствами самих жителей, благодаря привлечению большого количества людей и запуску общественных проектов.

Идея

Как это задумывалось и работает:

  • горожане предлагают идею или готовый общественный проект;
  • при необходимости, размещают его на краудфандинг для сбора средств;
  • при успешном сборе денег проект реализовывается.

Если проект не собрал нужной суммы, то после согласования с автором команда переводит эти средства на другой проект. Платформа стартовала в августе 2015 года для работы только в Одессе как инструмент для активных одесситов.

Я стал участником команды проекта три года назад. На тот момент она состояла из двух человек: руководителя платформы Евгения Кузьмичева и менеджера проектов Владимира Сафонова. Теперь в ней уже 5 участников.




Цель разработки была в том, чтобы подготовить к концу первого рабочего года все, что необходимо, для дальнейшей реализации 10-15 проектов в год, и систематизировать процесс реализации социальных проектов по всей воронке работ: от подачи идеи до ее полной реализации. Чуть забегая вперёд, можно сказать, что цель была реализована.

Уже в первый рабочий год были собраны средства и реализованы несколько проектов: «Художественное оформление распределительных шкафов связи», «Макеты достопримечательностей для людей с нарушениями зрения», «Восстановление полотен мировой значимости, принадлежащих Одессе» и другие.

Впрочем, я увлёкся :)

Реализация

До моего прихода в проект платформу планировали реализовывать на WordPress. От этой идеи мы быстро отказались — стало понятно, насколько может измениться платформа и сколько придется делать уникальных вещей.

Времени для реализации было в обрез (как обычно), и прототип был написан за две недели практически на одном дыхании. На тот момент сайт, написанный на PHP, состоял из пары страниц. Он позволял подать проект на краудфандинг и собрать для него деньги через подключенный агрегатор платежей WayForPay. Плюс страница с новостями о платформе и проектах. А также несколько типичных для сайтов сервисных страниц: «О нас», «Оферта» и т. д. — в общем, MVP.

После релиза прототипа летом 2015 года начали дорабатывать и расширять функционал. Была написана админка с аналитикой на Angular 1. Части основного сайта, такие как личный кабинет пользователя, сервисные блоки и др., также начали переносить и дописывать на Angular 1.

За первые полгода работы платформа значительно прибавила в функционале: появился блог, раздел «Идеи», изменилась форма подачи проекта и т. д.

Помимо проектов одесситов, которые мы помогали реализовывать, у платформы появились и собственные отдельные проекты: ресурс CherryTea и «доброе одесское СМИ» OdessaPub.

Отдельно хочу отметить реализацию проекта по решению проблемы бездомных животных — GladPet, который тоже попал в стек моих задач по разработке (о нем также была статья на DOU). Учитывая опыт разработки сайта платформы, я решил разделить backend и frontend. Frontend решено было писать на версии Angular 2, которая как раз тогда вышла. Это позволило бы разгрузить сервер и в дальнейшем при необходимости преобразовать сайт в PWA или даже нативное приложение при помощи NativeScript. В качестве базы данных был выбран хорошо зарекомендовавший себя PostgreSQL. Сессии и кэш хранились в Redis.

Обновление

На определенном этапе развития платформы «Мой город» количество «костылей» и монолитная архитектура стала ограничением для добавления новых возможностей сайта и его поддержки. Кроме этого, накопленный опыт команды выдвигал новые требования к необходимым функциям — в частности, акцентирование платформы именно на городских проектах и управление ими.

Начало вырисовываться техническое задание на обновленную платформу «Мой город 2.0». Основной задачей было сохранение базового функционала, добавление новых функций, упрощение дальнейшей разработки платформы и единая кодовая база с уже написанным gladpet.org.

Решением стал переход всех проектов на Angular 2 и использование микросервисной архитектуры. В отдельные сервисы мы вынесли модули работы с почтой, отправки SMS и внутриплатформенного чата на веб-сокетах. Логика запланированной геймификации была частично реализована внутри самой базы данных, посредством триггеров и замечательной функции Notify, которая асинхронно выдавала результаты вычисления отдельному сервису на NodeJS, который, в свою очередь, через API начислял пользователю очки и бейджи. Для связи между микросервисами использовалось API и очереди сообщений.

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

Так появился SSO (Single Sign On) сервис MyID, позволяющий логиниться сразу на все подключенные сервисы. Все общие для сервисов данные: информация о пользователе, его точки входа, чаты, уведомления и система бейджей, — были перенесены в него.

Сервис MyID

Факапы

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

Мораль: отсутствие постоянного дизайнера в команде сильно замедляет разработку сложных онлайн-ресурсов.

В какой-то момент, продумывая интеграцию MyID с подключаемыми сервисами, мы слишком сильно увлеклись предоставлением возможности анонимности. Кейсы одного из сервисов показывали, что пользователи часто скрываются за непонятными никами без полной информации, при этом нарушается полноценная работа ресурса. Мы потратили месяц на разработку моделей решения, дошли до того, чтобы предоставлять возможность создавать «аватары» с привязкой к аккаунту пользователя. После проверки на фокус-группе решили делать самый простой способ регистрации, хотя «под капотом» функционал остался :)

Мораль: не нужно пытаться решить все кейсы при ограниченных ресурсах команды.

Результаты и планы

Итого, на разработку ушел год. Сейчас к MyID подключена платформа «Мой город» и сайт проекта «GladPet». В планах подключить остальные проекты платформы и независимые общественные проекты, которые хотят получить из «коробки» систему авторизации, уведомлений, чаты и геймификацию.

Обновленная платформа «Мой город 2.0» позволяет:

  • Использовать отдельный сервис регистрации пользователя MyID.
  • Мониторить основные показатели проекта.
  • Использовать раздельное финансирование из нескольких источников (даже вне платформы).
  • Назначать вознаграждения за финансовую поддержку проектов.
  • Научиться азам управления проектом в «Школе».
  • Собирать команду в идею/проект.
  • Приглашать людей в проект.

Кроме этого, внедрили более легкий для восприятия дизайн, больше внимания уделили текстам и реализовали такую задумку: если попадаешь на сайт первый раз, то «главная» страница представляет собой лендинг с поясняющими текстами.

Для зарегистрированного пользователя «главная» отображается в виде ленты новых проектов, идей и материалов платформы.

На данный момент на сайте:

  • 149 идей одесситов;
  • 79 проектов на разных этапах;
  • 8529 зарегистрированных пользователей.

Инфографика с результатами работы за первые три календарных года

В планах: работа с другими городами, формализация подключения сторонних общественных проектов к MyID. И постепенное внедрение требований GDPR. Они пока для нас некритичны, но это явно завтрашний день для проектов в Украине. Так что не забываем.

Все про українське ІТ в телеграмі — підписуйтеся на канал DOU

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn



25 коментарів

Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.

А как работает нетехническая часть? Как решаются бюрократические вопросы с чиновниками города?
Если что, речь не о подсчете собак (который вроде как не затрагивает эту сторону). А, например, захотели на пустыре сквер обустроить, собрали денег, ок. Палки в колеса могут вставить уже на этом этапе. Но допустим все прошло нормально, сделали зеленую зону, с лавочками, урнами и фонарями. (Берет ли ее на баланс город?) А через полгода все сносится под постройку дома/магазина/развязки.

Здравствуйте! Всё в рамках закона. Прежде, чем разместить проект на сбор средств, автор получает разрешение у города. Пока, тьфу, тьфу, тьфу, никаких проблем не было) На платформе размещаются не только проекты по благоустройству города. Много и культурных, и образовательных проектов.

«проект реалізовується»

Як? ким? Для цього ж не досить гроші зібрати і на сайті поклікати. Це все повинен хтось координувати, фізично робити, звітувати, контролювати, і т.д. А це все складні речі.

І які проекти реально були зроблені?

Автором проекта. Если автор не компетентен в каком-либо вопросе то мы знакомим с людьми, которые уже через это проходили и могут помочь/объяснить или помогаем сами, если знаем алгоритм действий.
Вот тут проекты, которые уже реализованы: mg.od.ua/projects;status=100. Проекты разные по величине.

Наскільки я розумію, 100% — це зібрано 100% грошей. Що там далі сталось я побачив здається в одному з п’яти переглянутих проектів.

Забавно. Эту идею я озвучивал волонтерам (с майдана) еще с 2014-го. А вынашивал ее аж с далеких ≈2011-x.
Таки запустили? (^_^)

Team composition порадовал: руководитель платформы, ассистент руководителя, два менеджера проектов — и разработчик :)
Не принимайте всерьез, сорри. Верю, что так и надо, но все равно забавно.

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

Планируется ли развитие с возможностью выбора города
или это чисто локальный проект?

По плану следующий этапом попробовать другой город.

Крута ідея, давно таке цікавило, але чому нема Української?

1. Для Одессы это пока что не критично.
2. В планах и на украинском.

Для Одессы это пока что не критично.

Уявляєте собі таке в Латвії?
— Чому нема латиської?
— Для Риги это пока что некритично.

Я не уявляю. З власного досвіду знаю, що російськомовний касир в приватному супермаркеті буде розмовляти з російськомовним покупцем латиською. А російськомовний мерчендайзер з того самого супермаркету піде на курси латиської, щоб правильно розставляти товари по полицях. І всі вони не матимуть громадянства і права голосу, поки не складуть іспит з латиської мови. Це Євросоюз і це нормально для них.

І коли Україна вже стане такою, як Латвія?

Мы уже написали, что перевод на украинский язык у нас в планах. Когда мы дойдем до реализации, вы готовы помочь как волонтер нашей команде с переводом сайта на украинский язык? У нас ограниченные ресурсы.

Здорово)
Если у кого-то еще есть аналогичное желание помочь, ставьте «+» в этой ветке и с вами свяжутся ребята.

это очень странно со стороны русскоязычного покупателя) если кассир знает русский язык, но не использует его с клиентом, не знающим латышского? хм.. а как же клиентоориентированность?
в Греции встретила совсем другом пример, когда кассир перешла на русский, видя что греческого мы не понимаем (а она оказалась из Украины).

При чому тут клієнтоорієнтованість? А якщо клієнт не хоче, щоб з ним розмовляли російською? Наприклад, моя рідна мова — російська, але це не означає, що я стану вимагати від когось розмовляти зі мною російською. І сам не буду нею звертатися до інших поза межами Росії.

Касир за замовчуванням повинен звертатися до кожного покупця на державній мові, і це нормально. Покупець також з задоволенням може розмовляти державною мовою, якщо знає її або хоче вивчити. Людина, що не практикується в мові, ніколи не буде її знати.

Якщо покупець іноземець, він може попросити перейти на англійську або російську. А може і не попросити: можливо, він теж вивчає місцеву мову. Я, наприклад, просив тільки у випадках, якщо не міг зрозуміти співбесідника і це було критично.

У мене, до речі, була цікава ситуація: коли я розмовляв на касі ламаною латиською з російським акцентом, касирка, у якої на бейджику було російське ім’я, написала мені пам’ятку з російсько-латиським перекладом, як говорити правильно. І наступного разу я вже сказав правильно. Якби зі мною завжди переходили на російську, я би так і не зміг отримати мовну практику.

я отвечала в разрезе покупателя, который не знает, к примеру, латышского, и кассира, знающего язык покупателя, но не переходящего на него, ибо «державна мова». Ясное дело, что обратиться он сначала на латышском, откуда ему знать на каком языке говорит покупатель. Но потом логично перейти и помочь человеку, а не делать вид — твоя моя не понимает.
Если Вы говорили на ломаном латышском, то нормально, что кассир не перешла на русский, она общалась на языке покупателя, пусть он и не был идеальным.
у нас в кафе и супермаркетах поступают также — Доброго ранку! и в зависимости от ответа продолжают на языке, выбранном покупателем в его ответе.

На жаль, у нас все зовсім навпаки. У Маріуполі, в Одесі і часто навіть у Києві в громадських місцях до вас спочатку звертаються іноземною мовою, а потім вже, почувши відповідь державною мовою, можуть перейти на українську, а можуть і не перейти.

В Україні україномовні українці — дискримінована соціальна група, за виключенням Західної України і сільської місцевості.

Для Одессы это пока что не критично.

«Мовна ідентифікація — це те, чого люди хочуть, а мовна практика — те, чого вони можуть досягти у суспільстві, де в багатьох сферах все ще панує чи рівною мірою вживається російська мова. Громадяни хочуть більше української мови, ніж є реально. Вони набагато більше готові до українізації, ніж її проводить влада», — підкреслив Володимир Кулик, доктор політичних наук, провідний науковий співробітник відділу етнополітології Інституту політичних і етнонаціональних досліджень ім. І. Кураса НАН України.

novynarnia.com/...​ya-infografika-do-svyata

Моєю першою мовою теж колись була російська. Часи змінюються.

Я с вами согласна, но у нас один программист, который занимается двумя большими проектами и плюс еще SSO сервис myid.com.ua. О том, что сайты нужно перевести на украинский язык, мы уже давно говорили, но мы расставляем задачи по приоритетам. Пока что для нас главное — откатать новый функционал платформы mg.od.ua, после этого мы сможем приступить к переводу сайтов. Мы очень рады, что ребята в комментариях выше согласились нам помочь на волонтерской основе с переводом сайта, но пока что мы не можем приступить к этой задаче.

Я прочитав усю гілку і бачив 2-ий пункт — що ви плануєте. Лише зауважив, що «Одеса» — не аргумент. Я з Миколаєва. І що? :)

Підписатись на коментарі