В 2017 году уговорил жену открыть турагентство, взяли домен, собрал сайт на OctoberCMS, и так появилось туристическое агентство AlayTravel. После чего, поскольку программировать я люблю, искать лёгких путей — нет, а жена вообще хотела всё записывать в эксель, сел писать для агентства систему CRM/документооборота. Взял Laravel и Vue.js, методику Test Driven Development, и через какое-то время написал. Жена начала пользоваться, а я — потихоньку дорабатывать первую «наивную» реализацию и думать, что с этим дальше делать. Ну, потому что писать целую CRM имея в виду работу одного агентства — это немножечко overkill чересчур.
Пока я думал и готовился, мир, аэропорты и туристический бизнес накрыло пандемией COVID-19. Все надели масочки, облились дезинфектором, и в аэропорты ездили, в основном, чтобы вернуть деньги за неиспользованные билеты. Стало сильно непонятно, что в такой ситуации произойдет с турбизнесом, но агентство мы не закрыли. И после пандемии туристы очухались, поправились, и снова стали летать.
И только я опять хотел вернуться к своей цеэрэмке, как началась СВО. И полетные программы несколько подсократились, и понимание чего там дальше будет немножко размыло. Но, видимо помня короновирус, туристы очухались и полетели. И в принципе стало ясно, что будут летать дальше (тьфу-тьфу-тьфу). К этому моменту у меня уже на CRM было не очень много времени, так что она работала себе и работала — для одного агентства.
Но несколько месяцев назад, когда на Ближнем Востоке активно летали ракеты, я подумал:
А то Третья мировая на носу, весь мир в труху, а я свою CRM так и не выпущу. И стал потихоньку вкладывать в нее рабочие часы.
Написал объединение отдельных пользователей в агенство с учетом расходов и авторасчетом комиссий участников, прибил несколько неприятных косяков. И теперь системой уже пользуется несколько агентов, а я пишу вот этот анонс и планирую как всё это побыстрее и получше выпустить в свет. Точнее, в открытое использование, так-то система уже 7 лет живет на отдельном домене и в нее можно зайти — если аккаунт есть.
В общем, что это за система. Это CRM-документооборот, с учетом заявок и бронирований, поддержкой агентств с контролем доступа к базе турисов и броней, с возможностью вести учет сделанных и оставшихся платежей. По каждой брони можно автоматически генерировать документы (договор) с подстановкой реквизитов турагента и данных туристов. Выглядит примерно так:
В системе есть база всех туроператоров России с реквизитами и фингарантиями, раньше она синхронизировалась каждый день с открытым реестром Ростуризма. Но в 2023-м кто-то умный решил, что реестр нужно закрыть, а нормальную замену ему сделать забыли. Поэтому данные по операторам немного устаревшие, работаю над этим.
Также есть календарь событий:
Про этот календарь когда-то написал, кстати, 2 технических статьи:
- Календарь событий на Laravel и Vue.js, часть первая,
- Календарь событий на Laravel и Vue.js, часть вторая.
Еще есть удобный поиск с автодополнением по всем доступным пользователю сущностям (заявкам, броням, туристам, операторам, направлениям). Ну и всякое разное по мелочи.
Изначально система сделана не столько для всяких там воронок, сколько для учета броней, комиссий, и генерации документов. Но сейчас работаю в отдельной ветке над статистикой продаж и учетом источников заявок.
Один из основных затыков сейчас — это версии использованного ПО. Laravel у нас версии 6, а Vue — версии 2. И если с Laravel есть нормальные дорожные карты по постепенному апгрейду до 12, и с учетом того, что весь бэкэнд покрыт тестами, апнуться не должно быть сложно. То Vue 3 это другой зверь и там, как я понимаю, надо либо руками компоненты пересоздавать и заодно Vuex менять на другой state manager, либо не трогать вообще. В принципе разрабатывать можно и без обновления, поддержку объединений в агентства я и на старых версиях нормально сделал.
Но уже столкнулся с небольшим локальным адом зависимостей, когда пытался подстроить убежавшие вперед инструменты сборки фронтэнда под старые версии всего в package.json
проекта. С этим, кстати, хорошо помог Cursor AI — правил настройки зависимостей почти час под моим присмотром и, в конце концов, всё собралось.
Такой вот анонс. Буду дальше двигаться в сторону официального запуска системы и постараюсь регулярно что-то об этом писать.