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.
---
- 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.
O projeto foi desenvolvido em Flutter utilizando a linguagem Dart.
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).
- Singleton: Utilizado no
TourControllereThemeControllerpara 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
sqflitepara armazenar usuários, histórico de rotas e avaliações localmente no dispositivo. - Consumo de API REST: Uso do pacote
httppara comunicar com a API Open Source Routing Machine (OSRM) para obter as coordenadas da rota (Polyline).
maps_flutter: Renderização do mapa.geolocator: Acesso ao GPS do dispositivo.sqflite&path: Banco de dados SQL local.http: Requisições web.
-
Clone o repositório:
git clone https://github.com/natyyHy/THEGo.git
-
Instale as dependências:
flutter pub get
-
Configuração de API:
- O projeto requer uma chave de API do Google Maps no
AndroidManifest.xmlpara 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.
- O projeto requer uma chave de API do Google Maps no
-
Emulador:
- Recomenda-se configurar a localização do emulador para Teresina (
-5.0920, -42.8038) para testar o roteiro inteligente corretamente.
- Recomenda-se configurar a localização do emulador para Teresina (
-
Execute:
flutter run
Trabalho final da disciplina de Programação para Dispositivos Móveis - IFPI.
- Lincoln Matheus
- Natiele Grazielley

