Uma tentativa de resolver o problema de escolher bilhetes antes das férias

Olá pessoal! Quero falar um pouco sobre como eu fiz, fiz e farei (provavelmente) no meu tempo livre o próximo serviço de viagens para procurar passagens aéreas.


Captura de tela de uma das páginas:


imagem


Motivação e formação


Antes de voar de férias, sempre enfrento o problema de escolher um ponto no mapa para onde voar. Esse problema aparentemente fácil pode ser facilmente resolvido com a ajuda de conhecidos agregadores de passagens aéreas. Mas, por alguma razão, é difícil para mim resolver pelos seguintes motivos:


  • a maioria dos agregadores tem pesquisa insuficientemente flexível (brega, não há filtro por período inferior a um mês);
  • a pesquisa flexível à la "em qualquer lugar" e "quando" na prática raramente ajuda;

Também vale a pena notar que os blogs de viagens (comunidades sobre viagens nas redes sociais que aparecem no meu stream e sites com ofertas especiais, por exemplo, fly4free ), provavelmente ajudam alguém, mas não eu. Ofertas para as datas desejadas (até aproximadamente) nunca estão disponíveis.


Refletindo sobre esse tópico, decidi que valia a pena tentar fazer algo diferente, mesmo que não desse certo. E o risco de uma falha completa (não alcançaria as vendas) era grande - eu nunca havia feito o serviço sozinho antes, sempre havia caras experientes por perto e todos criavam seu próprio pedacinho do todo.


Para resolver o problema de seleção, formei os seguintes recursos, dos quais sinto falta:


  • Kits com passagens aéreas (para destinos, interesses etc.);
  • Rotas difíceis prontas, por exemplo, ponto A - ponto B - ponto C - ponto A; (como se viu mais tarde, esse recurso está parcialmente implementado no eightydays.me )
  • Um mapa onde você mesmo pode construir rotas complexas;
  • Pesquise "em qualquer lugar" em um período flexível com filtros básicos.

A seguir, descreverei brevemente cada tentativa e o resultado intermediário.


Tentativa # 1 # 0


Registre um belo nome de domínio em godaddy.com . Procure uma equipe para o seu próprio dinheiro. Aluguel de servidores em digitalocean.com . Início do desenvolvimento. Falha.


Tentativa nº 1


Dessa vez, decidi não me apressar com um belo domínio, equipe e servidor. Faço tudo localmente no meu antigo macbook air com 4 GB de RAM.


Foi decidido que não era necessário fazer tudo de uma só vez, mas fazer pelo menos alguma coisa. Algo acabou sendo uma característica da compilação com passagens aéreas . Como me pareceu (cerca de dois meses atrás), parecia o melhor de todos. Para isso eu precisava:


  • Entenda as APIs que fornecem tickets para fora do cache e como obter corretamente informações úteis; (eles estão bem descritos, não houve problemas com isso)
  • Crie sua própria API, que a prepara para visualização no site; (em python e balão eu já sabia como fazer isso, tudo bem também);
  • Expanda o postgres para diretórios - aeroportos, países, interesses, etc; (coloque em dois cliques)
  • Expanda a clickhouse para armazenar dados e logs intermediários; (curiosamente, ele também estava pronto para uso em 5 minutos, mesmo em um antigo macbook air com 4 GB de RAM)
  • Fazer amigos (criar dicionários) postgres e clickhouse;
  • Encontre um serviço geográfico gratuito para determinar a localização;
  • Escolha uma estrutura para o site - a escolha caiu no vue (vuetify), como uma estrutura com o limite de entrada mais baixo (de acordo com vários de meus amigos). Até agora, toda a minha experiência em desenvolvimento web apenas utilizava o flask-admin. O desenvolvimento da Web tem sido o mais problemático.

O resultado pode ser visto em affordablepster.travel/collections (a partir de dispositivos móveis - veja as fotos)


ou em imagens

imagem


imagem


Nesse estágio, escolhi um nome de domínio e aluguei um servidor da hetzner por US $ 5.


Durante essa tentativa, o recurso Rotas complexas também foi implementado na forma de coleções separadas, mas agora essa funcionalidade está desativada devido a problemas de desempenho - um servidor por US $ 5 não é suficiente para resolver esse problema.


Essa tentativa levou 3-4 semanas intermitentemente (noite-noite-fim de semana).


Tentativa # 2


Eu preciso de um mapa, pensei, e comecei a implementar recursos do Mapa, onde você mesmo pode construir rotas tão complexas .


Após uma hora de pesquisa no Google e uma breve consulta com um amigo, escolhi o mapbox , o pacote mapbox-gl-vue para o vue.


Com o cartão, tudo ficou muito mais complicado do que eu esperava. Portanto, ele imediatamente abandonou a esperança de tornar subjetivamente bonita. Depois, tentarei outra vez tornar o cartão melhor e mais funcional.


A essência desse recurso:


  • Um mapa com preços da sua cidade é exibido;
  • Escolha uma opção interessante para o preço no mapa;
  • Após escolher uma opção, os dados no mapa são recarregados para o ponto selecionado;
  • Repita as etapas acima o número desejado de vezes.

Resultado de cheappster.travel/map


Imagens

imagem


imagem


Essa tentativa levou 1-2 semanas (noite, noite, fim de semana).


Tentativa nº 3


Após os feriados de Ano Novo, chegou a hora do recurso Pesquisar "em qualquer lugar" em um período flexível .
Essa é a tentativa mais fácil - quase todos os métodos da API já foram implementados anteriormente, você só precisa torcer um pouco e desenhá-la usando o vuetify (já com um pouco de experiência).


A essência dos recursos:


  • Pesquisa simples, mas funcional, em um período flexível;
  • Existem filtros básicos (sem visto, apenas direto, etc.)

Resultado de cheappster.travel/simple


imagem


Essa tentativa levou 14 horas. A tentativa mais bem sucedida.


Em vez de totais


A lista de pendências ainda possui várias tarefas. Espero que essas tentativas me aproximem da solução do problema de escolha antes das férias. E melhor ainda, se não apenas eu.


Tenham um bom dia a todos!

Source: https://habr.com/ru/post/pt484222/


All Articles