Skip to content

crescent7272/Android-Case

Repository files navigation

Android-Case

Eu como caminhoneiro gostaria de ter um aplicativo que

  • Seja possível inserir uma localização inicial
  • Seja possível inserir uma localização final
  • Seja possível inserir o número de eixos do meu veículo
  • Seja possível inserir o consumo médio de combustível (Diesel) do meu veículo
  • Seja possível inserir o valor atual do Diesel
  • Que o aplicativo calcule a rota entre o ponto inicial e o ponto final
  • Que o aplicativo disponibilize dados sobre a duração da viagem, número de pedágios, valor mínimo do frete baseado na tabela da ANTT para diferentes tipos de carga

O que deve conter nesse aplicativo :

  • Permitir que o usuário informe o número de eixos do caminhão dele ( mínimo 2, máximo 9)
  • Permitir que o usuário informe o valor de consumo médio (Km/litro) de combustível(diesel)
  • Permitir que o usuário escolha a sua origem
  • Permitir que a origem seja capturada pelo gps do dispositivo
  • Permitir que o usuário escolha um destino
  • Exiba o resultado da api para o usuário
  • Se possível, permitir que usuário tenha acesso a seu histórico de buscas de rotas e valores

Orientações para a construção do case:

Nós da TruckPad temos uma API que disponibiliza os dados sobre rotas, preços, números de pedágios, consumo médio de combustível e outras coisas que permeiam a rotina do nosso usuário final, o caminhoneiro. Todos os dados que são requiridos na aplicação são disponibilizados por nossas APIS

Temos o nosso site Recalcula Frete que pode ser usado de apoio para a implementação do case.

Apis de Apoio:

Retorna informações sobre distância, tempo de viagem, consumo de combustível, custo total da viagem e número de pedágios.

Exemplo de um request :

POST https://geo.api.truckpad.io/v1/route
{
    "places": [{
        "point": [
            -46.68664,
            -23.59496
        ]
    },{
        "point": [
            -46.67678,
            -23.59867
        ]
    }],
    "fuel_consumption": 5,
    "fuel_price": 4.4
}

Exemplo de resposta ->

RESPONSE - > {
    "points": [
        {
            "point": [
                -46.68664,
                -23.59496
            ],
            "provider": "Provided"
        },
        {
            "point": [
                -46.67678,
                -23.59867
            ],
            "provider": "Provided"
        }
    ],
    "distance": 1962,
    "distance_unit": "meters",
    "duration": 583,
    "duration_unit": "seconds",
    "has_tolls": false,
    "toll_count": 0,
    "toll_cost": 0,
    "toll_cost_unit": "R$",
    "route": [
        [
            [
                -46.68662,
                -23.59504
            ],
            [
                -46.6881,
                -23.59571
            ],
            [
                -46.68701,
                -23.59613
            ],
            [
                -46.68546,
                -23.59575
            ],
            [
                -46.67528,
                -23.60051
            ],
            [
                -46.67486,
                -23.59966
            ],
            [
                -46.6768,
                -23.59871
            ]
        ]
    ],
    "provider": "Maplink",
    "cached": true,
    "fuel_usage": 0.39,
    "fuel_usage_unit": "liters",
    "fuel_cost": 1.73,
    "fuel_cost_unit": "R$",
    "total_cost": 1.73
} 

Após pegar os dados da rota, usamos outra api para calcular o preço por alguns tipos de carga que mais utilizamos em nossa plataforma

POST - https://tictac.api.truckpad.io/v1/antt_price/all
{"axis":2,"distance":2976.087,"has_return_shipment":true}
RESPONSE - > {
    "frigorificada": 3987.96,
    "geral": 5654.57,
    "granel": 5595.04,
    "neogranel": 5059.35,
    "perigosa": 3571.3
}

Instruções para a realização do case

  • Faça um fork desse repositório;
  • Crie uma branch com o seu nome;
  • Depois que terminar suas implementações, faça um Pull Request para o branch master;

Recomendações para a realização do case

  • O código poderá ser feito em Java, mas será um diferencial se você realizar ele em Kotlin
  • Testes unitários não são obrigatórios, mas será um diferencial se o projeto conter testes
  • Sugerimos usar algum tipo de arquitetura ( MVVM, MVP, MVI ou qual você achar melhor)
  • Nós da TruckPad estaremos a disposição em caso de dúvidas, então não deixe de nos contactar

Boa sorte

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages