snorkel-track

๐ŸŠโ€โ™‚๏ธ SnorkelTrack

Professional Snorkeling GPS Logger & Navigator - A comprehensive Flutter app for underwater exploration and navigation.

๐ŸŒŸ Features

๐Ÿ“ GPS Tracking & Navigation

๐Ÿ—บ๏ธ Interactive Maps

๐Ÿ’พ Spot Management

๐Ÿ“ GPX Export & Import

๐Ÿงญ Advanced Navigation

๐Ÿš€ Getting Started

Prerequisites

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/snorkel-track.git
    cd snorkel-track
    
  2. Install dependencies

    flutter pub get
    
  3. Enable location permissions (Android)
    • Location permissions are already configured in the manifest
    • Grant permissions when prompted on first run
  4. Run the app

    flutter run
    

๐Ÿ“ฑ Usage Guide

Map Tab

Spots Tab

๐Ÿ› ๏ธ Technical Details

Architecture

Key Dependencies

dependencies:
  geolocator: ^14.0.2        # GPS tracking and positioning
  flutter_compass: ^0.8.0    # Device compass and heading
  flutter_map: ^7.0.2        # Interactive maps with OpenStreetMap
  latlong2: ^0.9.1          # Latitude/longitude calculations
  path_provider: ^2.1.4     # File system access for exports
  xml: ^6.5.0               # GPX XML generation and parsing
  shared_preferences: ^2.2.2 # Local spot persistence

GPS & Navigation

Map Integration

Data Format

{
  "id": "unique_timestamp_id",
  "name": "Spot Name",
  "latitude": 21.3069,
  "longitude": -157.8583,
  "timestamp": "2023-11-12T10:30:00.000Z"
}

๐Ÿ“‚ Project Structure

lib/
โ”œโ”€โ”€ main.dart                 # App entry point with navigation
โ”œโ”€โ”€ models/
โ”‚   โ””โ”€โ”€ spot.dart            # Spot data model with JSON serialization
โ”œโ”€โ”€ services/
โ”‚   โ”œโ”€โ”€ location_service.dart # GPS, compass, navigation service
โ”‚   โ””โ”€โ”€ gpx_export_service.dart # GPX export/import functionality
โ”œโ”€โ”€ widgets/
โ”‚   โ””โ”€โ”€ map_view.dart        # Interactive map component
โ””โ”€โ”€ main_debug.dart          # Debug version with extra logging

๐Ÿ”ง Development

Running Tests

flutter test                  # Unit and widget tests
flutter test --coverage      # With coverage report

Building

flutter build apk --release  # Android production build
flutter build ios --release  # iOS production build
flutter build web           # Web version

Debugging Location Issues

๐ŸŒŠ Perfect for Snorkelers

Use Cases

Marine-Friendly Features

๐Ÿ”ฎ Future Features

๐Ÿค Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Commit your changes: git commit -m 'Add amazing feature'
  4. Push to branch: git push origin feature/amazing-feature
  5. Open a Pull Request

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ†˜ Support


๐ŸŠโ€โ™‚๏ธ Dive Safe

Navigate smart with SnorkelTrack! ๐Ÿงญ