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

Bus-Lines: Sistema (simples) para o transporte público

Projeto Bus-Lines

Recentemente finalizei um projeto pessoal que começou de uma necessidade simples: encontrar os horários de ônibus da minha cidade (Lins - SP). A prefeitura disponibiliza essas informações apenas em arquivos PDF, o que torna difícil consultar e praticamente inviável trabalhar os dados de forma estruturada.

O Desafio

Decidi transformar esse problema em oportunidade de aprendizado. Desenvolvi um crawler em Python para automatizar a extração dessas informações. O maior desafio foi lidar com arquivos inconsistentes:

  • Diferentes layouts
  • Formatações irregulares
  • Necessidade de manter os dados sempre atualizados

Após várias iterações, consegui criar um processo robusto que transforma esse conteúdo desestruturado em dados limpos e organizados.

Modelagem do Banco de Dados

O próximo passo foi a modelagem do banco de dados. Criei uma camada de staging para normalizar as informações, padronizando campos como:

  • Linhas
  • Destinos
  • Dias da semana
  • Horários

Essa arquitetura garantiu consistência e confiabilidade para as consultas posteriores.

Produto Final

Com a base de dados consolidada, estruturei uma camada final otimizada para consultas rápidas, que serviu de fundação para o Bus-Lines (https://bus-lines.netlify.app/) – uma aplicação web com interface intuitiva que disponibiliza os horários de forma acessível a qualquer cidadão.

Aceito críticas e sugestões sobre o projeto. Por mais despretensioso que tenha sido a ideia, acredito que existe margem para melhora e até pra escalar de alguma forma (só não sei como).

Pra quem quiser dar uma olhada: (https://github.com/Norton794/bus-lines)

Carregando publicação patrocinada...
1

Primeiramente, meus parabéns pelo projeto. Está melhor do que muitos que ja vi (inclusive oficiais de prefeituras).
Alguns pontos de melhoria que observei:

  1. Colocar um date-picker com default para o dia atual (no back você pode fazer esse tratamento de dia útil, sábado e domingo)
  2. Nos horários acho melhor desconsiderar horários anteriores ao mais próximo caso a pesquisa seja da data atual (menos dados nas requisições)
  3. Colocar um mapa com as paradas (talvez esse seja um upgrade interessante)
  4. Mostrar a localização atual do usuário no mapa (Eu cliquei no botão de GPS e ele simplesmente deu como negado, nem pediu permissão)