Проект: GeoPuzzle  Публичный пост
5 мая 2020  1488
GeoPuzzle
https://geopuzzle.org/

Расскажите о себе и сути проекта?

Обожаю всякие образовательные штуки! В 1997 году (ещё в школе) выпустил свои первые программы по обучению русскому языку и заработал целых 50 000 рублей! По совету дедушки купил на них доллары, которые годом позже были экспроприированны родителями. После этого я понял, что мир не так прост...

Программированием болею уже давно, успел пописать на Delphi, C, PHP, Python, JS, Perl, PL/SQL и т.п. Сейчас остановился на стеке Python/Postgres/React, но интересен Rust, Elixir (да и много чего ещё). Стараюсь участвовать в социально значимых проектах в сфере образования и медицины. Пару лет руководил бэкендом в 3D4Medical.

Как появилась идея? Что вдохновило?

Году в 2009 на Хабре увидел статью про Mercator Puzzle, и мне очень понравилась идея. Это же круто изучать географию интерактивно! Спустя несколько лет, я налабал прототип на Erlang, Ruby, JS, PostGIS просто для фана. Там уже были загружены полигоны стран и регионы США и России. Расписал у себя в блоге, выложил на GitHub и успокоился. Но годы спустя мне захотелось добавить инфобокс, чтобы знать что это за страна или регион...

Что вошло в прототип и сколько времени на него было потрачено?

Предыдущее решение было сделано лишь чтобы поиграться, а для нормального проекта я взял кое-что знакомое. Так что спустя пару недель бессонных ночей у меня был готов прототип на Django, PostGIS, React и ~50 000 полигонов, которые я в автоматическом режиме проимпортил с OSM. Информацию о них я взял с wikidata.org, для этого пришлось вникнуть в язык запросов SPARQL (вот где мне пригодились знания Prolog!).

Как вы запускались и искали первых пользователей?

Всё по друзьям да по знакомым. Рекламы специально не покупал, чтобы не отдать последний Бентли Гуглу за показы карт. В ноябре 2018 написал статью на Хабр ради рекламы и проверки хабраэффекта. Переоценил - одновременно было 100 пользователей на сайте, а нагрузка 25% (2 самых дешёвых инстанса по $5). Новых патронов - 0.

Сейчас в месяц у меня 5k-6k из США, России, Великобритании, Индии, Германии... Средняя длительность сеанса 6-7 минут. Радует, что люди переходят на сайт и из всяких LMS (специальные системы для школ) :)

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

С какими самыми неожиданными трудностями пришлось столкнуться?

Полигоны, сука, большие :) Какая-нибудь Чили или Норвегия весит в PostGIS 100Mb. А их ещё надо на фронте показать... Так что все они у меня оптимизированы и закешированы в Redis, чтобы страничка не падала по памяти.

Буду неимоверно благодарен и доделаю наконец мультиплеер для паззлов, если кто поможет убедить Google что https://issuetracker.google.com/issues/117311850 - действительно баг.

Сколько потратили и заработали? Есть идеи как это можно монетизировать? Какие планы на будущее?

Планов громадьё, но пока не ясно кому это нужно: сделать мобильную версию, подключить LMS, написать VK mini app, продвигать кампанию на Patreon. И пора бы уже монетизировать.

Когда это был pet-project, расходы составляли ~$20, сейчас они возросли. Да один только CDN $5/mo съедает. А в какой-то месяц я забыл отключить платные показы карт и встрял Гуглу на $70 - обидно!

Нужны ли какие-то советы или помощь Клуба?

Я призываю @APilosian обсудить варианты сотрудничества :) У него был похожий проект.

Ну и конечно же по багам и предложениям можете писать в личку (@TyVik в tg), в VK (https://vk.com/tyvik) или на GitHub.

Связанные посты
11 комментариев 👇

Жукто интерестная штука, открыл потыкать и залип на час :)
Успехов тебе!

  Развернуть 1 комментарий

Спасибо :)

  Развернуть 1 комментарий

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

Я бы поглядел, а есть ли маркетплейсы у LMS? Если есть, то может быть можно там разместить платные интеграции и продавать подписки?

Мультиплеер для пазлов можно сделать пошаговым, по типу шахмат: каждому игроку даётся баланс времени (выюираешь: блиц за 1 минуту, или игра подольше на 5 минут каждому), дальше ходят по очереди, во время хода съедается время ходящего игрока. Другой игрок ходить не может всё равно из-за бага у Гугла. Ну и кто больше кусочков собрал за своё время - тот и победил. Как-то так.

  Развернуть 1 комментарий

Спасибо за идею! Да, игровых механик очень не хватает. Хочу добавить и таблицу рекордов, и запись своих достижений, и какие-то соревновательные штуки.

Недавно сделал мультиплеер для всего, кроме паззла, но ожидал большего интереса у пользователей. Хотя с мультиплеером можно прям реал-тайм битвы устраивать :)

Маркетплейсы к LMS есть, подписка будет оформляться всё также через Patreon. Но это сложная штука, и пока я только спрос изучаю. Следить за новостями можно подписавшись на Patreon https://www.patreon.com/geopuzzle.

  Развернуть 1 комментарий

А почему полигоны такие большие? Натравить на них Дугласа-Пекера и вперёд..

  Развернуть 1 комментарий

да-да-да, для Канады с её ровными границами так и делал. Кстати, в PostGIS есть даже собственная функция ST_Simplify.

В качестве вопросов (красными) передаются очень сильно засимплифаенные полигоны, лишь бы только фронт не тормозил. Урезанное качество хорошо заметно на Китае и Бразилии. Однако, когда полигон становится на место, то он превращается в более точный.

Я старался соблюсти баланс между точностью и играбельностью.

  Развернуть 1 комментарий

просто интересно откуда 100мб на один полигон.. звучит как сантиметровая точность

  Развернуть 1 комментарий

@Cooch, Перепроверил... Да, немного приврал :) Топ-6: Канада 76Мб, США 40Мб, Нунавут 29 Мб, Норвегия 26Мб, Япония 25Мб, Россия 18Мб. Столько места они занимают в Postgres.

Та же Норвегия в оптимизированном и закодированном виде передаётся на фронт как 136kb.

  Развернуть 1 комментарий

Спасибо, интересно 👍

  Развернуть 1 комментарий

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

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

Однако, если есть какие-то вопросы/идеи — с удовольствием бы поболтал.

  Развернуть 1 комментарий
Ник Марченко frontend-разработчик 8 мая 2020

Витя крутой! И проект крутой :)

  Развернуть 1 комментарий

😎

Автор поста открыл его для большого интернета, но комментирование и движухи доступны только участникам Клуба

Что вообще здесь происходит?


Войти  или  Вступить в Клуб