Skip to content

Este projeto utiliza a API do AIS Stream.IO para capturar informações de navios em tempo real dentro de uma região específica, como latitude e longitude. Através de um mapa interativo, o projeto exibe esses dados dinamicamente sem a necessidade de recarregar a página.

Notifications You must be signed in to change notification settings

vendrame2/aisStreamIO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🚢 AIS Stream.IO Ship Tracker

Este projeto utiliza a API do AIS Stream.IO para capturar informações de navios em tempo real dentro de uma região específica, como latitude e longitude. Caso você seja uma boa alma, e tenha interesse em colaborar, ainda é necessário que seja disponibilizado através de um mapa interativo, o projeto exibe esses dados dinamicamente sem a necessidade de recarregar a página.

🔧 Tecnologias Utilizadas

  • Flask: Framework web para Python.
  • Socket.IO: Para comunicação em tempo real entre o frontend e o backend.
  • Leaflet.js: Para renderização do mapa interativo.
  • WebSockets: Para receber dados em tempo real da API AIS.
  • asyncio & eventlet: Para gerenciar tarefas assíncronas e concorrentemente.

🌍 Funcionalidades

  • Visualização em tempo real dos navios em uma região especificada utilizando o OpenStreetMap.
  • Conexão assíncrona com a API AIS Stream.IO.
  • Atualização dinâmica dos navios no mapa sem necessidade de recarregar a página.
  • Emissão de informações dos navios (como nome, latitude e longitude) no frontend.

🛠️ Pré-requisitos

  1. Criar uma conta no AIS Stream.IO:

    • Acesse o AIS Stream.IO e crie uma conta gratuita.
    • Após criar sua conta, gere uma API Key.
  2. Instalar as dependências do projeto: Antes de rodar o projeto, instale as dependências necessárias utilizando o pip:

    pip install -r requirements.txt
  3. Configuração da API Key: Para garantir que sua API Key esteja segura, crie um arquivo .env na raiz do projeto e adicione a sua chave da seguinte maneira:

    API_KEY=SuaChaveDaAPI

    Nota: O arquivo .env está listado no .gitignore para garantir que a chave não seja compartilhada inadvertidamente.

🚀 Como Executar

  1. Clone o repositório:

    git clone https://github.com/seu-usuario/ais-stream-ship-tracker.git
    cd ais-stream-ship-tracker
  2. Crie o ambiente virtual (opcional, mas recomendado):

    python -m venv .venv
    source .venv/bin/activate  # Linux/macOS
    .venv\Scripts\activate     # Windows
  3. Instale as dependências:

    pip install -r requirements.txt
  4. Inicie o servidor Flask:

    python app.py

    A aplicação estará disponível em http://127.0.0.1:5000.

💻 Frontend

A proposta é que a interface do usuário exibe um mapa interativo criado com o Leaflet.js. À medida que os dados dos navios são recebidos via WebSocket, novos marcadores são adicionados ao mapa e as informações dos navios são exibidas dinamicamente na tela.

Entretanto, por falta de tempo, apenas o recebimento dos dados via app.py foi concluído.

🧩 Estrutura do Projeto

  • app.py: Backend da aplicação Flask que gerencia a conexão com a API AIS Stream.IO e emite dados para o frontend.
  • templates/index.html: PROPOSTA: Frontend em HTML que exibe o mapa e os dados dos navios.
  • .env: Contém a sua API Key (não incluída no repositório por questões de segurança).
  • requirements.txt: Lista das dependências do projeto.

⚙️ Dependências

  • asyncio
  • websockets
  • dotenv
  • requests
  • Leaflet.js (Proposta)

Problemas Comuns

  • Erro de API Key: Certifique-se de que a sua chave da API está correta e configurada no arquivo .env.
  • Dependências faltando: Verifique se todas as dependências estão instaladas executando pip install -r requirements.txt.
  • Problemas com a conexão WebSocket: Se o WebSocket não se conectar, verifique a sua rede e se a API do AIS Stream.IO está funcionando corretamente.

📖 Licença

Este projeto está licenciado sob a Licença MIT - consulte o arquivo LICENSE para mais detalhes.


About

Este projeto utiliza a API do AIS Stream.IO para capturar informações de navios em tempo real dentro de uma região específica, como latitude e longitude. Através de um mapa interativo, o projeto exibe esses dados dinamicamente sem a necessidade de recarregar a página.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages