Estamos buscando um desenvolvedor para criar um aplicativo móvel (Mobile/PWA) inovador, focado em proporcionar uma excelente experiência ao usuário e integrar dados colaborativos para o monitoramento em tempo real da frota de ônibus do Distrito Federal. O objetivo é oferecer aos usuários uma ferramenta eficiente para acompanhar os ônibus e contribuir com informações úteis.
Fonte de Dados (Backend):
O aplicativo consumirá dados de uma fonte primária: o Geoserver da semob-df (cmob). O endpoint a ser utilizado é
https://geoserver.semob.df.gov.br/geoserver/semob/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=semob:ultima_posicao&outputFormat=application/json. Será necessário consumir o GeoJSON retornado para extrair informações cruciais como prefixo, linha, latitude, longitude, velocidade e timestamp da última transmissão de cada veículo.
Funcionalidades Principais (MVP):
1. Mapa Interativo: Implementar um mapa que visualize em tempo real a posição dos veículos, utilizando marcadores dinâmicos para cada ônibus.
2. Filtro por Linha: Permitir que o usuário filtre os ônibus exibidos no mapa por uma linha específica (exemplo: linha 110).
3. Cálculo de Atraso: Desenvolver uma lógica para comparar o 'data_hora' do sinal do ônibus com o horário atual. Se a diferença for superior a 5 minutos, o aplicativo deverá sinalizar o ônibus com o status 'Sinal Instável' ou 'Atraso Provável'.
Diferenciais Inovadores (Crowdsourcing):
1. Módulo de Lotação: Incluir botões intuitivos para que os usuários possam informar o estado de lotação do ônibus em que se encontram (opções: Vazio | Sentado | Em pé | Lotado). Este dado deve ser persistido em um banco de dados (preferencialmente Firebase ou Supabase) e exibido para outros usuários que clicarem no mesmo ônibus, enriquecendo a informação em tempo real.
2. Ranking de Eficiência: Criar uma tela que apresente um ranking das linhas de ônibus com mais relatos de atraso ou lotação nas últimas 24 horas, baseado nos dados de crowdsourcing.
3. Feedback/Ocorrências: Oferecer um espaço para o usuário relatar problemas ou ocorrências (ex: ar-condicionado quebrado, motorista perigoso) vinculados ao número do prefixo do ônibus, permitindo uma comunicação direta e eficaz.
Prazo de Entrega: Não estabelecido