Укр
Как благодаря программе Hillel Evo я запустил сайт для поиска скидок на путешествия

Как благодаря программе Hillel Evo я запустил сайт для поиска скидок на путешествия

  • 6 ноября, 2018
Сергей Запороженко
Сергей Запороженко Капитан команды-победителя третьего цикла программы Hillel Evo в Днепре

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

На рынке уже были похожие проекты, но их реализация оставляла желать лучшего. Их посещали от 15 до 30 тысяч уникальных пользователей в сутки — а это говорит об актуальности данной услуги.

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

Один из наших партнеров — агрегатор туров — предоставил api поиска и бронирования туров. Оставалось только подключить api к нашему сайту, разработать фильтр и запустить новый сайт. Но до этого я никогда не работал с api и понимал, что внедрять поиск туров в сайт на движке не самый лучший вариант. Тогда я принял решение пойти на курсы PHP в IT школу Hillel, прокачать свои неполные знания верстальщика до программиста, а заодно сделать проект, которым я загорелся. Так как в качестве PHP фреймворка преподаватель курса выбрал Symfony, то решено было ее использовать для будущей разработки.

В Школе я узнал о программе Hillel Evo, которая предназначена для реализации идей Студентов и Выпускников Школы, а также получения ими ещё большего практического опыта. Я подал заявку со своей идеей и вскоре узнал, что она была одобрена. Выбранным Школой трем проектам предоставляются: помещение и компьютеры, разработчики, которые подали заявки на участие в EVO, а также ментор, которым выступает Преподаватель Школы. Он курирует весь проект, подсказывает и помогает в процессе работы с проектом. Срок разработки проекта составляет 4 месяца. Я представил проект на презентации перед судьями и аудиторией. Судьи отобрали 3 проекта, в том числе и мой, для участия в программе. После презентации ко мне подходили желающие принять участие в разработке проекта.

Команда проекта изначально включала: 3 Front-end разработчика, 2 PHP разработчика, 3 дизайнера и 1 тестировщика. Позже она выросла до 14 человек, включая меня. Ментором стал наш преподаватель по PHP Олег Гринько.

Сергей Запороженко на презентации проекта

Мы создали группу в Telegram, и я стал расписывать задачи команде. Вскоре выяснилось, что удобнее отдельно обсуждать задачи для разработчиков и для дизайнеров. По совету ментора для создания и контроля тасков мы использовали Redmine.

Признаюсь, что вначале я неверно представлял себе этапы разработки, необходимый стэк технологий и языком разработки считал PHP. Оказалось, что основной функционал у нас будет задействован на front-end. Тогда мне очень хотелось, чтобы back-end мы разрабатывали на PHP, а front-end на React. Наша команда даже заполучила React-разработчика, хотя он был уже Выпускником Школы и не был на презентации, но благодаря Hillel узнал о проекте и «звезды сошлись».

Первые проблемы с которыми мы столкнулись:

  • Как правильно связать React и Symfony?
  • Откуда должны идти запросы к api?
  • Как реализовать получение данных на стороне PHP?

На эти вопросы нам помог ответить наш ментор, преподаватель по PHP.

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

Когда дизайнеры приступили к работе, мне стало совсем непонятно, чем же занять Front-end разработчиков, которые должны были заниматься версткой, ведь пока у нас не было дизайна. И мы все не знали, какую технологию применим для верстки и как правильно это совместить с Symfony и React.

Первый результат работы React разработчика я увидел после 3-x недель наших согласований, обсуждений и 4-x дней его работы. Это была страница на которую выводились горящие туры с фото отеля, ценой и описанием тура по 15 штук на странице. Тем временем я поставил задание двум php-разработчикам на реализацию необходимых компонентов, а сам занялся разработкой админки будущего проекта на Symfony.

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

Первый месяц работы над проектом подходил к концу:

  • Разработчик React искал удобное решение по связке с Symfony;
  • Я работал над тем, чтобы через PHP отправить запрос к api, а полученные данные передать на фронт для обработки через React.
  • Оставалось легкое непонимание, как все же работать дальше, так как было несколько решений, но четкого представления не было.

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

Тогда в команду пришел еще один сильный Javascript разработчик, который всего за неделю на Javascript native написал всю ту часть, что у нас уже была на React, написал фильтры и мы интегрировали написанный функционал в Symfony.

Еще ряд непонятных мне вопросов решился благодаря ментору, встречам с php-разработчиками и работе front-end разработчика, с которым мы решили проблемы «фронта» за месяц до финальной презентации. Появилась ясная цельная картина процесса разработки.

К нужному дизайну мы пришли на втором варианте макета, предложенного дизайнерами. Из-за моей неопытности как проджект-менеджера этот процесс занял много времени, в течение которого двое front-end разработчиков ждали свои задачи. Так как мы отказались от React в пользу Javascript native, а сроки поджимали, не все страницы были нарисованы. Я решил сверстать их на хорошо знакомом фреймворке Bootstrap. Последние страницы верстались за день до финальной презентации. Тестирование сайта проходило параллельно и закончилось в последний день.

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

Главная страница сайта проекта

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

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

Как вы могли увидеть на фото обложки, наш проект одержал победу, получив больше всего голосов от менторов и Преподавателей Школы Hillel.