«Много переезжал и не знал, куда девать вещи»: как я разработал собственный маркетплейс
Highload продолжает публиковать истории о pet-проектах, вошедших в топ-20 лучших по итогам голосования наших читателей. Параллельно эти проекты оценивает жюри из опытных разработчиков и инвесторов. Победителей конкурса мы планируем объявить 10 июля.
Лучшие проекты получат призы от компании Genesis: занявший первое место — Apple iPhone 12 64GB, второе место — наушники Marshall Monitor II ANC Black, третье — набор Arduino.
Дальше — рассказ разработчика Марьяна Зозули о его pet-проекте — маркетплейсе для аренды вещей Phoqer.
Марьян Зозуля, разработчик приложения Phoqer
История возникновения идеи проекта корнями уходит в мои студенческие годы. Все началось с переезда в Польшу. Тогда не было возможности позволить себе снять обставленную квартиру — денег было достаточно только на маленькую пустую комнату в общежитии. И в процессе обустройства я купил много техники.
Но через год по учебе мне пришлось переехать в Португалию, где я тоже не задержался надолго. Часть вещей раздарил, часть — продал, и большую часть — перевез на 2,5 тысячи километров. Приблизительно в этот момент я сильно проникся идеей минимализма и разработал «концепцию одного чемодана». Но не все вещи, которыми хочется владеть, вмещаются в один чемодан.
Так и возникла мысль создать Phoqer — маркетплейс для аренды вещей.
Наш проект нацелен на людей, которые:
В проекте использованы:
Мы предположили, что большая часть потенциальных клиентов будет находить нас по выдачам из поисковых систем. Для этого нужен был инструмент, который не вредит SEO. После короткого ознакомления с основами поисковой оптимизации перед нами стала задача реализовать SSR (Server Side Rendering), так как поисковые боты Google в моменте индексации не интерпретируют JavaScript-код. Хотелось иметь что-то такое же быстрое как React и максимально на него похожее, при этом не терять время на изучение нового фреймворка.
FastAPI выбрали за простоту, скорость, гибкость и встроенную поддержку асинхронности. Проект я решил стартовать на Django Rest Framework. Но чем больше я писал на DRF, тем больше меня не покидало ощущение магии вокруг всего происходящего. До этого на работе я использовал только микрофреймворк Flask. На нем есть четкое понимание всего, что происходит при обработке запросов, и этого чувства контроля за происходящим очень не хватало при использовании DRF.
Просто наш бэкендщик умеет только в Postgres! DB делает свою работу и пока нареканий нет. Экспериментировать с чем-то другим желания нет тоже.
Все работает в контейнерах. Но тут, наверное, нечем гордиться, так как это уже практически устоявшийся стандарт в индустрии.
В нем уже «из коробки» получаешь все, что нужно для работы. Я помню, пробовал пользоваться VS Code, когда он обрел популярность — ужасно не понравилось. Пришлось возиться с выпиливанием, чтобы заработали все линтеры, дебагер, искать какие-то плагины для затыкания дырок. В общем, все то, что в продуктах от JetBrains получаешь «из коробки», в случае с VS Code пришлось доводить до ума напильником.
Можно выделить одну проблему, на решение которой у нас ушло неприлично много времени. И каждый раз, когда казалось, что проблема уже решена, она постоянно давала о себе знать.
Трудность заключается в новом для нас процессе SSR. Некоторые части проекта рендерятся на клиенте, а некоторые — на сервере, и к клиенту приходят сразу в готовом HTML. Нужно было сделать так, чтобы Next.js умел делал запросы на бэкенд, находясь за прокси. И чтобы запросы, которые идут с браузера тоже через прокси, попадали на бэкенд. С виду может показаться, что это тривиальная задача, но нехватка опыта и неуверенность в использовании docker-compose в связке, когда есть прокси сервер, и иногда очень странное поведение самого Next.js, сыграли свою роль. Все это приводило к тому, что в два часа ночи ты сначала не понимаешь, почему оно перестало работать, а уже под утро, после решения проблемы, еще больше удивляешься тому, как оно вообще работало до этого.
И небольшой проблемой стало то, что ни у кого из нас не было опыта по старту проекта с нуля. Пришлось, закатав рукава, перечитать тонну мануалов на разные темы: от момента выбора и регистрации домена и до построения CI/CD pipeline, а также выбора инструментов для организации взаимодействия в команде.
Команда состоит из двух человек. Марьян пишет бэкенд и занимается вопросами инфраструктуры. Игорь отвечает за фронтенд. Оба участника команды работают в IT-компаниях.
Проект находится в активной фазе разработки. Инфраструктурно мы уже готовы принимать первых пользователей, куплен домен, настроена система CI/CD, настроена коммуникация между фронтендом и бэкендом, учтено много других инфраструктурных моментов. Но функционально сайт еще требует доработки.
Так как проект еще в активной фазе разработки, похвастаться реальными цифрами мы не можем. Но это не означает, что мы не собираемся его монетизировать. Мы выделили несколько позиций, которые позволят получать прибыль.
Все позиции мы разделяем по сложности и планируем внедрять по мере перехода от mvp к полноценно работающей платформе:
В рамках конкурса pet-проектов разработчики и инвесторы оценят проект Phoqer по таким критериям:
1. Оригинальность идеи.
2. Качество кода.
3. Технический уровень.
4. Жизнеспособность идеи.
5. Перспективы проекта как бизнеса.
6. Инвестиционная привлекательность.
Победителей среди 20 кейсов определят на основе оценок инвесторов (45%), разработчиков (45%) и голосов читателей Highload (10%).
Более подробно, кто и как будет оценивать кейсы, можно прочитать здесь: статья об экспертах, критериях и правилах конкурса.
Дмитрий Грищенко
Full-stack Software Engineer (JavaScript, TypeScript), Innovecs.
Оценивает проекты по Frontend JavaScript и TypeScript. Его коммерческий опыт с JavaScript – около пяти лет. Начинал как фронтенд-девелопер, со временем освоил Node.js и таким образом перешел на full-stack.
Марк Олейник
Front-End Developer в YouScan.
Оценивает проекты на React. Марк занимается фронтендом уже больше пяти лет и «очень кайфует» от этой работы с ее особенной ответственностью перед пользователем. Он посмотрел на индустрию с разных сторон: начинал свой путь с фриланса, позже работал в небольшом стартапе, после чего попал в YouScan. Кроме того, с 2017 по 2019 год вместе с командой занимался организацией митапов React Kyiv.
Елена Мажуга
Старший инвестиционный аналитик Genesis Investments.
Роман Бабицкий
Основатель инвесткомпании Babitskyi Investment, глава совета по вопросам иностранных инвестиций и экономического развития Украины.
Дмитрий Томчук
Основатель инвестиционного фонда Fison.
Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…
Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…
Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…
В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…
Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…
Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…