Serviço interno de rastreamento de frota. Sincroniza posições de veículos a partir das APIs dos fornecedores de telemetria (vendors) contratados e as armazena no nosso banco.
Hoje o Petasos integra um único vendor: a Atlas Telemetria.
Requisitos: Elixir >= 1.17, Docker.
docker compose up -d # Postgres em localhost:5434
mix deps.get
mix ecto.setup # cria, migra e semeia o banco
mix test # suite existente, deve passar verdePara sincronizar as posições da Atlas:
mix petasos.sync atlasAs APIs dos vendors são servidas por um simulador embutido, que sobe junto com a aplicação
em localhost:4001. A mix task sobe e derruba a aplicação sozinha; para manter o simulador
de pé e explorar as APIs com curl, rode iex -S mix em um terminal separado.
curl 'localhost:4001/atlas/v1/positions?offset=0&limit=5'A documentação das APIs está em docs/vendors/. O glossário do domínio
está em DOMINIO.md.
Fechamos contrato com um segundo vendor de telemetria, a Boreal Rastreamento. Os
veículos da frota Boreal já estão cadastrados no banco (veja os seeds), e o simulador já
expõe a API da Boreal em localhost:4001/boreal/api — a documentação fornecida por eles
está em docs/vendors/boreal.md.
Integre a Boreal ao Petasos: as posições dos veículos dela devem passar a existir no nosso banco, corretas e completas. Escreva os testes que você julgar importantes. Fora isso, as decisões são suas — trabalhe como trabalharia de verdade, incluindo o uso de IA como você usaria no dia a dia.
Não esperamos que isso vire uma noite em claro: algo em torno de 2 a 3 horas de trabalho está ótimo. O que não couber nesse tempo, mas você considerar relevante, registre na descrição do PR.
- Faça um fork deste repositório no seu GitHub.
- Trabalhe em uma branch no seu fork.
- Abra o pull request dentro do seu próprio fork (base: a branch
maindo seu fork) — não abra PR contra este repositório. - Envie o link do PR para a pessoa que está conduzindo o seu processo.
Vamos conversar sobre o seu PR em uma call de ~1h: você apresenta as suas decisões e depois fazemos uma pequena extensão ao vivo, juntos.