Executando verificação de segurança...
2

Uber no telegram ? Será que rola ?

Dias atrás vi uma postagem em um site de freelancers que continha uma proposta de desenvolvimento de uma aplicação de mobilidade urbana utilizando o aplicativo de mensagens whatsapp, todo o processo seria via whatsapp.Aquilo me fez pensar no: "porquê não usar telegram pra isso ?".
Eis que me motivou a começar a desenvolver algo para uma pequena demanda aqui da minha região, não como uma ferramenta comercial como o autor da postagem pretendia, mas sim como um projeto de estudo e também para brincar um pouco com python,e não é que está nascendo o DriveMatch , ainda é um bebê com algumas horas de vida kkkk, mas já tem um propósito.
Quando tiver pronto a ideia é que tenha funcionalidade parecida com a Uber mesmo, possibilitando passageiros buscarem motoristas por perto e com valores negociáveis entre as partes, ou algo pré calculado levando em conta a distância, o tempo de viagem entre a origem e o destino bem como horários de pico e trânsito com uma tarifa variável, porém com preços bem mais baixos que a Uber.
Estou usando gmaps para calcular a distância entre os pontos A e B e também estou trabalhando na feature de adicionar paradas no meio do trajeto.
O que acham disso, será que rola ??? kkkkk
Bora codar...

OBS:
Possivelmente irei disponibilizar o código fonte dessa brincadeira no github, então caso alguém queira conferir depois e contribuir com algo ou se quiser bater um papo sobre isso, só chamar no Telegram

DriveMatch

Carregando publicação patrocinada...
3

Muito boa a ideia, estava pensando em algo assim também mas para uma outra aplicação. Dica, faça o core da sua aplicação separado da sua camada de comunição com o cliente, assim voçê não fica dependendo apenas do Telegram e pode integrar com outras plataformas, WhatsApp, Facebook Messenger, SMS, Discord, Slack, forúns, apps whitelabel...

1
2

a parte ruim é que por exemplo no Brasil, muita gente tem telegram, mas não usa como app de mensagens principal, geralmente é para usos específicos como acesso a canais de conteúdo ou grupos para compartilhamento de conhecimento que a pessoa tem interesse mas que estão apenas no telegram e aí nesse caso a pessoa não tem escolha, então o telegram (que acredito que seja uma ótima ferramenta) pode ser uma barreira para usar o serviço.

posso estar enganado mas acredito que a empresa que fornece o serviço via WhatsApp está visando as pessoas não querem um app adicional no celular ou que tem dificuldade com tecnologia mas sabe usar o WhatsApp, se for esse o caso, dificilmente essas pessoas vão usar o telegram.

1

Isso é bem verdade, mas isso também pode mudar com o tempo, telegram supera e muito o whatsapp em qualquer questão.
Mas sei que usuário não liga muito para isso, vão no que é mais popular.
O bom disso é que conheço vários grupos no telegram e vou fazendo a parte de divulgação do serviço por esses grupos e canais.
Talvez saia uma versão para whatsapp também, mas só depois que desenrolar essa versão para telegram.

2

Telegram hoje em dia é a melhor plataforma de rede social que exist. Supera qualquer outra em questão de usabilidade, qualidade e integração de serviços.

2

Eu acho meio paia isso, um uber no telegram pode conter muitas falhas futuramente, e imagina se a pessoa coloca o endereço incorreto sem nenhum tipo de correção?

Isso também pode ser um problema, eu acho que fico com um pé pra trás.

1

Isso de colocar endereço errado ocorre em qualquer app, no ifood, uber, 99, correios, mercado livre.
Mas entendo a sua preocupação, quando digo uber no telegram não é necessariamente o app do uber via telegram, e sim algo que liga passageiros a motorista e vice versa.
A questão do endereço é algo que como eu disse acima, comum de se cometer equívocos, o que eu fiz aqui foi usar as funcionalidades de geolocalização fornecidas pelo próprio telegram,e também a opção do usuário inserir os pontos A e B.
Ainda tem o lance de que para se encontrar motoristas o sistema usa o recurso de proxmidade do telegram, que se baseia em dispositivos próximos ao solicitante.
O sistema faz uma busca por usuários nas proximidades e envia para cada um deles sendo eles motoristas cadastrados no sistema, essa mensagem contém os dados de quem solicita, ou seja o passageiro incluindo a localização desse passageiro que pode ser acessada e verificada pelo motorista, ao clicar em aceitar a viagem, o motorista dá início a corrida, essa corrida pode ser cancelada por qualquer das partes antes de o passageiro embarcar no veículo, pois quando o passageiro embarca, o motorista dá de fato início a corrida.
Existe um bot semelhante, mas com menos recursos que se chama libretaxi

2

Eu estava usando a API do google para calcular distância, mas ficou R$1500,00 no final do mês.
Encontrei essa fórmula que faz o cálculo, mas você precisa de latitude e longitude, vai acabar precisando passar o endereço como parametro para gerar os pontos de lat e long em outra api lib.

export function calculateLatAndLong(latitude1: number, longitude1: number, latitude2: number, longitude2: number, unit: 'kilometers' | 'miles' = 'kilometers'): { value: number, unit: string } {
  const radius = 6371; // Earth's radius in kilometers
  const dLat = (latitude2 - latitude1) * Math.PI / 180;
  const dLon = (longitude2 - longitude1) * Math.PI / 180;
  const a = Math.pow(Math.sin(dLat / 2), 2) + Math.cos(latitude1 * Math.PI / 180) * Math.cos(latitude2 * Math.PI / 180) * Math.pow(Math.sin(dLon / 2), 2);
  const c = 2 * Math.atan(Math.sqrt(a) / Math.sqrt(1 - a));
  const distanceInKm = radius * c;
  const kmToMiles = 0.621371;
  const value = unit === 'kilometers' ? parseFloat((distanceInKm * kmToMiles).toFixed(2)) : parseFloat(distanceInKm.toFixed(2));
  return { value, unit };
}

Acho que você também poderia utilizar ageolib
Outras Alternativas

1

Boa, na verdade estou usando o próprio gmaps sem API, webscraping raiz mesmo kkk...

def get_address_info(origin, destination):
    path_url = f"{url_base}/maps/dir/{origin}/{destination}".replace(" ", "+")
    # print(path_url)
    response = requests.get(path_url)
    html = response.text
    match = re.findall(r'window\.APP_INITIALIZATION_STATE=(.+?);', html)
    if match:
        data_str = match[0].strip().replace(")]}'", "")
        data = json.loads(data_str)
        other_data = json.loads(data[3][4])
        distance_total = other_data[0][1][1][0][2][1]
        time_total = other_data[0][1][1][0][3][1]
        return distance_total, time_total
    else:
        return None, None
2