Un intento de resolver el problema de elegir boletos antes de las vacaciones

Hola a todos! Quiero hablar un poco sobre cómo hice, hice y haré (probablemente) en mi tiempo libre el próximo servicio de viaje para buscar boletos de avión.


Captura de pantalla de una de las páginas:


imagen


Motivación y antecedentes


Antes de volar de vacaciones, siempre enfrento el problema de elegir un punto en el mapa donde volar. Este problema aparentemente fácil puede resolverse fácilmente con la ayuda de conocidos agregadores de boletos aéreos. Pero por alguna razón, es difícil para mí resolver por las siguientes razones:


  • la mayoría de los agregadores tienen una búsqueda insuficientemente flexible (cursi, no hay filtro por rango de fechas de menos de un mes);
  • la búsqueda flexible a la "en todas partes" y "siempre que" en la práctica rara vez ayuda;

También vale la pena señalar que los blogs de viajes (comunidades sobre viajes en redes sociales que aparecen en mi transmisión y sitios con ofertas especiales, por ejemplo, fly4free ), probablemente ayuden a alguien, pero no a mí. Las ofertas para las fechas deseadas (incluso aproximadamente) nunca están disponibles.


Al reflexionar sobre este tema, decidí que valía la pena intentar hacer algo diferente, incluso si no funcionaba. Y el riesgo de un fracaso total (no llega a las ventas) fue grande: nunca antes había hecho el servicio solo, siempre había muchachos experimentados cerca y todos formaban su propia pequeña parte del conjunto.


Para resolver el problema de selección, formé las siguientes características, que extraño:


  • Kits con boletos aéreos (para destinos, intereses, etc.);
  • Preparar rutas difíciles, por ejemplo, punto A - punto B - punto C - punto A; (como resultó más tarde, esta característica se implementa parcialmente en eightydays.me )
  • Un mapa donde puede construir rutas tan complejas usted mismo;
  • Busque "en todas partes" en un rango de fechas flexible con filtros básicos.

A continuación, describiré brevemente cada intento y el resultado intermedio.


Intento # 1 # 0


Registre un hermoso nombre de dominio en godaddy.com . Busque un equipo por su propio dinero. Alquiler de servidores en digitalocean.com . Inicio del desarrollo. Fracaso


Intento n. ° 1


Esta vez, decidí no apresurarme con un hermoso dominio, equipo y servidor. Hago todo localmente en mi viejo MacBook Air con 4GB de RAM.


Se decidió que no era necesario hacer todo de una vez, sino hacer al menos algo. Algo resultó ser una característica de la compilación con boletos aéreos . Como me pareció (hace unos dos meses), me pareció lo mejor de todo. Para esto necesitaba:


  • Comprender las API que dan tickets fuera de la memoria caché y comprender cómo obtener correctamente información útil; (están bien descritos, no hubo problemas con esto)
  • Cree su propia API, que la prepara para la visualización en el sitio; (en python y frasco ya sabía cómo hacer esto, esto también está bien);
  • Expandir postgres para directorios: aeropuertos, países, intereses, etc. (poner en dos clics)
  • Expanda clickhouse para almacenar datos intermedios y registros; (Curiosamente, también estaba listo para usar en 5 minutos, incluso en un viejo MacBook Air con 4 GB de RAM)
  • Para hacer amigos (hacer diccionarios) postgres y clickhouse;
  • Encuentre un geoservicio gratuito para determinar la ubicación;
  • Elija un marco para el sitio: la elección recayó en vue (vuetify), como el marco con el umbral de entrada más bajo (según varios de mis amigos). Toda mi experiencia en desarrollo web hasta este momento solo ha estado usando flask-admin. El desarrollo web ha sido el más problemático.

El resultado se puede ver en cheapster.travel/collections (desde dispositivos móviles - mira las fotos)


o en fotos

imagen


imagen


En esta etapa, elegí un nombre de dominio y alquilé un servidor de Hetzner por $ 5.


Durante este intento, la función Preparar rutas complejas también se implementó en forma de colecciones separadas, pero ahora esta funcionalidad está deshabilitada debido a problemas de rendimiento: un servidor por $ 5 no es suficiente para resolver este problema.


Este intento tomó 3-4 semanas de manera intermitente (tarde-noche-fin de semana).


Intento n. ° 2


Necesito un mapa, pensé, y me puse a implementar características del Mapa, donde puedes construir rutas tan complejas tú mismo .


Después de una hora de búsqueda en Google y una breve consulta con un amigo, elegí mapbox , es decir, el paquete mapbox-gl-vue para vue.


Con la tarjeta, todo resultó ser mucho más complicado de lo que esperaba. Por lo tanto, inmediatamente abandonó la esperanza de hacerse subjetivamente bello. Luego haré otro intento para hacer que la tarjeta sea mejor y más funcional.


La esencia de esta característica:


  • Se muestra un mapa con los precios de su ciudad;
  • Elija una opción interesante para el precio en el mapa;
  • Después de elegir una opción, los datos en el mapa se vuelven a cargar para el punto seleccionado;
  • Repita los pasos anteriores el número deseado de veces.

Resultado de cheapster.travel/map


Imágenes

imagen


imagen


Este intento tomó 1-2 semanas (tarde, noche, fin de semana).


Intento n. ° 3


Después de las vacaciones de Año Nuevo, ha llegado el momento de la función Buscar "en todas partes" en un rango de fechas flexible .
Este es el intento más fácil: casi todos los métodos en la API ya se han implementado anteriormente, solo necesita torcerlo un poco y dibujarlo usando vuetify (que ya tiene un poco de experiencia).


La esencia de las características:


  • Búsqueda simple pero funcional en un rango de fechas flexible;
  • Hay filtros básicos (sin visa, solo directo, etc.)

Resultado de cheapster.travel/simple


imagen


Este intento tomó 2 pm. El intento más exitoso.


En lugar de totales


La cartera de pedidos todavía tiene muchas tareas. Espero que estos intentos me acerquen a resolver el problema de elección antes de las vacaciones. Y aún mejor, si no solo yo.


¡Que tengan un buen día todos!

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


All Articles