Skip to content

natyyHy/THEGo

Repository files navigation

THEGo 🚕💨

Descubra Teresina do seu jeito.

O THEGo é um aplicativo móvel de turismo desenvolvido para facilitar a exploração dos principais pontos turísticos de Teresina-PI. O app permite que o usuário selecione os locais que deseja visitar e gera automaticamente um roteiro otimizado, traçando a melhor rota a partir da sua localização atual.


---

Funcionalidades

  • Autenticação Local: Login e cadastro de usuários com persistência segura de dados.
  • Seleção de Pontos: Lista interativa com fotos, descrições e status (horário, preço, estacionamento) dos locais.
  • Roteiro Inteligente: Otimização da ordem de visita usando o algoritmo do "Vizinho Mais Próximo", começando pelo GPS do usuário.
  • Navegação no Mapa: Integração com Google Maps para visualização e OSRM para traçar rotas detalhadas pelas ruas (sem custos de API).
  • Histórico de Tours: Salva os passeios realizados (data, distância, locais visitados) para consulta futura.
  • Sistema de Avaliação: O usuário pode dar notas (estrelas) e comentar sobre cada local visitado.
  • Modo Escuro/Claro: Alternância de tema em tempo real para melhor usabilidade.

Tecnologias e Arquitetura

O projeto foi desenvolvido em Flutter utilizando a linguagem Dart.

Arquitetura: MVC (Model-View-Controller)

Adotamos o padrão MVC para organizar o código e separar responsabilidades:

  • Model: Representação dos dados (PontoTuristico, Tour, Usuario).
  • View: Telas e Widgets (HomeTourView, MapaView).
  • Controller: Lógica de negócios, cálculos de rota e gerenciamento de estado (TourController, LoginController).

Padrões de Projeto & Estratégias

  • Singleton: Utilizado no TourController e ThemeController para garantir que a localização do usuário e o estado do app sejam acessíveis globalmente entre as telas.
  • Persistência de Dados (SQLite): Uso do pacote sqflite para armazenar usuários, histórico de rotas e avaliações localmente no dispositivo.
  • Consumo de API REST: Uso do pacote http para comunicar com a API Open Source Routing Machine (OSRM) para obter as coordenadas da rota (Polyline).

Pacotes Principais

  • maps_flutter: Renderização do mapa.
  • geolocator: Acesso ao GPS do dispositivo.
  • sqflite & path: Banco de dados SQL local.
  • http: Requisições web.

Como Rodar o Projeto

  1. Clone o repositório:

    git clone https://github.com/natyyHy/THEGo.git
  2. Instale as dependências:

    flutter pub get
  3. Configuração de API:

    • O projeto requer uma chave de API do Google Maps no AndroidManifest.xml para exibir o mapa.
         <manifest xmlns:android="http://schemas.android.com/apk/res/android">
            .
            .
            .
            <application
               .
               .
               .
               <meta-data
                   android:name="flutterEmbedding"
                   android:value="2" />
               <meta-data android:name="com.google.android.geo.API_KEY"
                      android:value="COLOQUE AQUI SUA CHAVE"/>
            </application>
              .
              .
              .  
          </manifest>
    • Nota: A funcionalidade de rotas usa OSRM e não requer chave de faturamento.
  4. Emulador:

    • Recomenda-se configurar a localização do emulador para Teresina (-5.0920, -42.8038) para testar o roteiro inteligente corretamente.
  5. Execute:

    flutter run

Autores

Trabalho final da disciplina de Programação para Dispositivos Móveis - IFPI.

  • Lincoln Matheus
  • Natiele Grazielley

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •