Авито для нотариусов

notafast.ru

Многие пользовались досками объявлений и потому знают как это удобно. В одном сервисе собраны тысячи предложений различной тематики. Б/у товары, услуги фрилансеров и т.д. Можно выбрать подходящий товар или исполнителя, а можно самому что-то предложить посетителям сайта. При этом сервис выступает в роли посредника и обеспечивает все технические детали взаимодействия.

Таким образом сервис экономит вам время и деньги, особенно если вы не потребитель, а продавец товаров ли или услуг. Согласитесь, что стоимость создания, продвижения и поддержки даже элементарной посадочной страницы обойдётся вам минимум в несколько десятков тысяч рублей. Если же вам требуется для сайта какой-то специфичный функционал… Суммы будут существенны, ибо услуги программистов и SEO-шников стоят дорого. Создать же аккаунт на каком-нибудь сервисе вроде Авито не стоит либо вообще ничего, либо копейки.

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

Вот и мои заказчики решили воплотить в жизнь подобный продукт, создав агрегатор нотариусов notafast.ru

Разработка сайта началась ещё в начале 2017 года. Задача была поручена веб-студии и та неспешно делала своё дело. С моей точки зрения, не особенно качественно, но и клиент, к слову, не раз менял свои пожелания.

Вообще, среди многих заказчиков бытует мнение, что раз услуги веб-студий стоят дороже услуг фрилансеров, то и качество работ будет лучше. К сожалению, далеко не всегда всё обстоит именно так. Это зависит исключительно от конкретной студии и конкретного исполнителя. Многие, да что там, большинство веб-студий ориентированы на «клепание» посадочных страниц. Выбирается один из готовых шаблонов и заполняется данными клиента. Тут даже программист особо не нужен. Достаточно любого мало-мальски владеющего компьютером и азами вёрстки человека.

Не подумайте, что я хочу сказать, что студии это зло, а фрилансеры всё сделают грамотно. Тут тоже как повезёт, среди моих свободолюбивых коллег очень много недоучек и раздолбаев. Но трижды подумайте, прежде чем заказывать разработку сложного приложения у веб-студии. Не ведитесь на рекламу «сделаем сайт за 7000 рублей». Сделают, конечно, но то будет шаблонный одностраничник. Компании, занимающиеся серьёзными приложениями, оперируют совсем иными порядками цифр. Тут не десятками, тут сотнями тысяч измеряют бюджет того или иного проекта. И это оправдано, ибо на сложный проект уйдут сотни человеко-часов высококвалифицированных, а потому дорогих специалистов.

Опять меня понесло в пространные рассуждения. В общем что-то у моего заказчика с той студией не срослось. Агрегатор нотариусов в работу ушёл, но «сырой», с кучей недочётов и недоделок.

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

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

Начнём с хорошего — сайт написан на столь любимом мною фреймворке Laravel, правда на весьма старой версии 5.4. Для работы с CSS используется SASS, что тоже недурно. jQuery с парочкой плагинов и несколько старомодный на мой взгляд Gulp. Сайт размещён на VDS сервере, что существенно расширяет возможности по сравнению с виртуальным хостингом, правда доступ к оному пришлось, наверно, с неделю выпрашивать. Благодаря фреймворку код худо-бедно, но структурирован, что существенно ускоряет процесс вхождения нового человека в проект.

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

Связи таблиц в моделях? Не знаю, не слышал…

Контроллеры по несколько тысяч срок кода, оптимизация запросов к базе данных отсутствует напрочь (на одной странице количество запросов достигало 570), для вёрстки используются float-ы, которые морально устарели уже лет 5, если не 10 назад. Bootstrap-а тоже нет и на маленьких экранах всё едет. SEO не настроено от слова совсем. Поняв, что косяков тут вагон, я сразу создал доску задач в Трелло и начал создавать под каждое такое недоразумение карточку. Их набралось с пару десятков.

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

Итак, первым блоком работ стало добавление на сайт новой услуги под громким названием «Подать документы онлайн». Её суть была в следующем:

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

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

Заказчик также надеялся привлечь на сайт через эти заявки новых нотариусов, коих на агрегаторе пока не так уж и много.

То бишь тут уже получается биржа фрилансеров прямо какая-то. Честно скажу, что идея мне не сильно понравилась, но раз клиент попросил — сделано. Основная, наверно, трудность — это огромное количество всевозможных нотариальных действий и под каждое клиенту необходимо предоставить свой набор информации. Клепать эти формы, конечно, замучаешься, вот где бы могли пригодиться навыки копирования шаблонов разработчиков из веб-студий))

Кстати, почему я считаю саму идею данного сервиса не очень хорошей:

  1. Адекватный клиент, которому действительно необходима какая-то нотариальная услуга, сам выберет удобную контору и запишется к конкретному нотариусу, а не будет сидеть и ждать — кто же на мою заявку откликнется.
  2. Нотариусы — не фрилансеры. Если он или она арендует офис в проходном месте и имеет хорошую репутацию — недостатка клиентов не будет. И совершенно точно такой нотариус не станет просматривать виртуальные заявки, ждать, когда его выберут, заполнять заранее документы. Особенно учитывая манеру людей не являться в назначенное время, а то и просто отменять свои планы, не удосужившись сообщить об этом другим.

Но вот возможность получить по предварительной записи все данные в электронном виде, скопировать их волшебной комбинацией клавиш Сtrl + c, Сtrl + v, — это и правда удобно. Однако на тот момент я ещё недостаточно хорошо знал заказчика, а потому держал своё мнение при себе и делал, то что просили.

Следующей важной задачей было преобразовать страницу записи к нотариусу, сделав из оной нечто вроде персональной странички. Также поступило предложение дать возможность нотариусу задать красивый адрес для его страницы на сайте, но сделать эту услугу платной. Между владельцами сайта по этому поводу возник спор, и тут я вмешался, предложив продавать нотариусам не просто красивые адреса, а целый комплекс услуг. Всё-таки очень сомнительно, что многие захотят платить деньги только ради того, чтобы похвалиться визиткой с красивым адресом на сайте подобном Авито. Но вот если премиум доступ позволяет создать, по сути, свой мини сайт… Моё предложение всем понравилось и я приступил к разработке.

Первым делом пришлось заняться оптимизацией запросов к базе данных. Я уже писал выше, что для отображения некоторых страниц требовалось 570 запросов к БД. Этой страницей как раз и была та, кою мне предстояло переработать, добавив туда кучу дополнительных функций. Пришлось попотеть.

Любой мало-мальски вменяемый php разработчик знает, что приложение следует разделять как минимум на три уровня:

  1. Представление — то есть отображение данных конечному пользователю
  2. Модель — основная бизнес логика приложения, сохранение, извлечение данных и т.д.
  3. Контроллер — связующее звено между уровнями Модели и Представления. Реагируя на запросы пользователя взаимодействует с Моделью и возвращает нужное Представление или данные.

Данная схема называется MVC (Model-View-Controller) и хотя это не единственный способ организации программной архитектуры, но самый популярный и самый простой в освоении. Тем не менее находится куча ленивых (или недоучившихся) программистов которые упрямо смешивают уровни, фигача прямо из Представления запросы к базе данных. В результате получается то, что известно под термином спагетти-код, или, если отбросить политкорректность, говнокод. Ибо работать с таким кодом чудовищно тяжело.

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

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

Хотя данный раздел моего сайта называется «Завершенные работы», работ по данному сайту ещё непочатый край. Но раз уж выдался небольшой перерыв, я решил, так сказать, зафиксировать пройденные этапы и отчитаться перед вами, дорогие читатели, кем бы вы ни были.

Благодарю за внимание!