Skip to content

HordMaps - A modern navigation app built with Flutter and powered by Azure Maps. Real-time GPS navigation, offline maps, voice guidance, and intelligent routing. Open source project participating in Hacktoberfest 2025!

License

Notifications You must be signed in to change notification settings

HordRicJr/HordMaps

HordMaps πŸ—ΊοΈ

Hacktoberfest 2025 Open Source License: MIT PRs Welcome

All Contributors

Version Flutter Platform Azure Maps

Flutter Analyze Flutter Test Build APK Code Quality

Dependabot GitHub issues GitHub pull requests GitHub last commit

A modern and comprehensive navigation application built with Flutter, offering an advanced alternative to Google Maps with real-time navigation, background services, and sophisticated user interface powered by Azure Maps.

πŸŽƒ Hacktoberfest 2025 Participant πŸŽƒ

Hacktoberfest Issues Good First Issues

Join us in revolutionizing mobile navigation! We welcome contributions from developers of all skill levels.

πŸ“– Contributing Guide β€’ πŸ› Report Issues β€’ πŸ’¬ Discussions


πŸ“± Download

Get it on Google Play Download APK


✨ Preview

(Screenshots coming soon)


πŸš€ Key Features

πŸ—ΊοΈ Advanced Navigation

  • Optimized route calculation powered by Azure Maps API
  • Real-time navigation with continuous GPS tracking and turn-by-turn instructions
  • Multi-modal transport: πŸš— Car, 🏍️ Motorcycle, 🚢 Walking, 🚴 Cycling, 🚌 Public Transit
  • Intelligent voice guidance with advanced text-to-speech
  • Automatic recalculation when deviating from route
  • Smart caching for partial offline navigation

πŸ“± Background Services

  • Persistent navigation with Android foreground service
  • Rich notifications with real-time progress updates
  • System overlay for display over other applications
  • Automatic management of permissions and battery optimizations
  • Quick actions: Stop/open from notifications

🎨 Modern Interface

  • Material Design 3 with smooth animations
  • Adaptive dark/light mode following system preferences
  • Responsive design optimized for all screen sizes
  • Reusable components with modular architecture
  • Optimized performance with Provider state management

🧭 Navigation & Routing

  • Multi-modal route calculation (car, bike, walking, public transit)
  • Turn-by-turn voice instructions
  • Real-time navigation with automatic recalculation
  • Traffic avoidance and alternative routes
  • Navigation mode with simplified interface

⭐ Favorites Management

  • Save locations with custom descriptions
  • Category organization (Home, Work, Restaurants, etc.)
  • Custom tags for better organization
  • Import/Export favorites functionality
  • Cross-device synchronization

πŸ“Š Measurement Tools

  • Distance measurement between points
  • Area calculation for defined zones
  • Real-time measurements with dynamic display
  • Metric and imperial units support
  • Ruler tool for precise measurements

πŸ”„ Sharing & QR Codes

  • Location sharing via link or QR code
  • Route sharing with complete details
  • QR code generation for quick access
  • Export to social networks and messaging apps
  • Short links for easy sharing

πŸ’Ύ Storage & Caching

  • Intelligent caching for offline maps
  • Local storage with SharedPreferences and ObjectBox
  • Memory optimization and performance tuning
  • Automatic cache cleanup
  • Incremental data backup

πŸ”” Smart Notifications

  • Contextual alerts with various types (info, success, warning, error)
  • Differentiated haptic feedback by type
  • Non-intrusive notifications with auto-dismissal
  • Accessible notification history
  • Push notifications for navigation updates

πŸ—οΈ Technical Architecture

πŸ”§ Core Technologies

  • Flutter 3.19+ - Cross-platform UI framework
  • Azure Maps API - Premium mapping and routing services
  • Provider Pattern - Reactive state management
  • ObjectBox - High-performance local database
  • Material Design 3 - Modern UI components

πŸ“ Project Structure

lib/
β”œβ”€β”€ core/
β”‚   β”œβ”€β”€ config/
β”‚   β”‚   └── azure_maps_config.dart      # Azure Maps configuration
β”‚   └── theme/
β”‚       └── app_theme.dart              # Global themes and styles
β”œβ”€β”€ features/
β”‚   β”œβ”€β”€ favorites/
β”‚   β”‚   └── providers/
β”‚   β”‚       └── favorites_provider.dart # Favorites management
β”‚   β”œβ”€β”€ map/
β”‚   β”‚   β”œβ”€β”€ providers/
β”‚   β”‚   β”‚   └── map_provider.dart       # Map state management
β”‚   β”‚   β”œβ”€β”€ screens/
β”‚   β”‚   β”‚   └── map_screen.dart         # Main map interface
β”‚   β”‚   └── widgets/
β”‚   β”‚       β”œβ”€β”€ navigation_panel.dart   # Navigation UI
β”‚   β”‚       └── search_results_sheet.dart # Search results
β”‚   β”œβ”€β”€ navigation/
β”‚   β”‚   └── providers/
β”‚   β”‚       └── navigation_provider.dart # Route calculation
β”‚   └── search/
β”‚       └── providers/
β”‚           └── search_provider.dart     # Search and geocoding
β”œβ”€β”€ models/
β”‚   β”œβ”€β”€ location_model.dart             # Location data structures
β”‚   β”œβ”€β”€ navigation_models.dart          # Navigation entities
β”‚   └── search_models.dart              # Search result models
β”œβ”€β”€ services/
β”‚   β”œβ”€β”€ azure_maps_routing_service.dart # Azure Maps routing
β”‚   β”œβ”€β”€ places_service.dart             # Places and POI search
β”‚   β”œβ”€β”€ advanced_location_service.dart  # Advanced location services
β”‚   └── background_service.dart         # Background navigation
└── shared/
    β”œβ”€β”€ services/
    β”‚   β”œβ”€β”€ location_service.dart       # GPS and location
    β”‚   β”œβ”€β”€ cache_service.dart          # Intelligent caching
    β”‚   └── storage_service.dart        # Local data storage
    └── widgets/
        β”œβ”€β”€ animated_fab.dart           # Animated floating button
        β”œβ”€β”€ loading_indicator.dart      # Loading animations
        └── map_controls.dart           # Map interaction controls

πŸ› οΈ Key Dependencies

dependencies:
  flutter: ^3.19.0
  provider: ^6.1.2              # State management
  azure_maps_flutter: ^1.0.0    # Azure Maps integration
  objectbox: ^4.0.0             # Local database
  geolocator: ^12.0.0           # GPS services
  permission_handler: ^11.3.1   # System permissions
  flutter_local_notifications: ^17.2.1 # Push notifications
  flutter_tts: ^4.0.2           # Text-to-speech
  share_plus: ^9.0.0            # System sharing
  qr_flutter: ^4.1.0            # QR code generation

πŸ”„ Service Architecture

HordMaps follows a clean architecture pattern with distinct layers:

  • Presentation Layer: Screens, widgets, and providers
  • Business Logic Layer: Services and use cases
  • Data Layer: Models, repositories, and data sources
  • Infrastructure Layer: External APIs, local storage, and system services

πŸš€ Quick Start

Prerequisites

  • Flutter SDK 3.19.0 or higher
  • Dart SDK 3.3.0 or higher
  • Android Studio / VS Code with Flutter extension
  • Azure Maps account (for API keys)

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/hordmaps.git
    cd hordmaps
  2. Install dependencies

    flutter pub get
  3. Configure Azure Maps

    • Create an Azure Maps account at Azure Portal
    • Get your subscription key
    • Create lib/core/config/azure_maps_config.dart:
    class AzureMapsConfig {
      static const String subscriptionKey = 'YOUR_AZURE_MAPS_KEY';
      static const String baseUrl = 'https://atlas.microsoft.com';
    }
  4. Run the application

    flutter run

Build for Release

# Android
flutter build apk --release

# iOS
flutter build ios --release

πŸ“– Usage Guide

Basic Navigation

  • Pan: Drag to move the map
  • Zoom: Pinch to zoom in/out or use zoom buttons
  • Quick zoom: Double-tap to zoom in
  • Add marker: Long press on the map

Search Functionality

  1. Tap the search bar at the top
  2. Enter an address, place name, or coordinates
  3. Select from the dropdown results
  4. The location will be marked and centered on the map

Route Planning

  1. Search for your destination
  2. Tap "Directions" on the location card
  3. Choose your transport mode (car, walking, cycling, transit)
  4. Start navigation with the "Start" button

Favorites Management

  1. Add to favorites: Long press on any location or tap the star icon
  2. Organize: Use the favorites menu to create categories
  3. Edit: Long press on any favorite to modify details
  4. Share: Select a favorite and use the share button

Keyboard Shortcuts

  • +/-: Zoom in/out
  • Space: Center on current location
  • M: Toggle map style
  • S or Ctrl+F: Open search
  • N: Enter navigation mode
  • Esc: Return to main menu

🎨 Customization

Map Styles

  • Standard: Classic detailed map view
  • Dark: Night-friendly dark theme
  • Satellite: High-resolution satellite imagery
  • Terrain: Topographic with elevation data
  • Hybrid: Satellite with road overlays

Theme Options

  • Auto: Follows system theme
  • Light: Always light theme
  • Dark: Always dark theme
  • Custom colors: Configurable primary and accent colors

Marker Styles

Choose from 5 different marker styles:

  • Classic pin
  • Modern dot
  • Star shape
  • Custom icons
  • Color-coded categories

🀝 Contributing

We welcome contributions from developers of all skill levels! Here's how you can help:

For Hacktoberfest 2025 Participants

  1. Look for issues labeled hacktoberfest - These are specially curated for the event
  2. Start with good first issue - Perfect for newcomers
  3. Check out help wanted - Areas where we need community support

How to Contribute

  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 the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Development Guidelines

  • Follow the Flutter style guide
  • Write tests for new features
  • Update documentation for any API changes
  • Ensure your code passes all CI checks

Areas for Contribution

  • πŸ› Bug fixes: Help us squash bugs
  • 🌟 New features: Add exciting functionality
  • πŸ“š Documentation: Improve guides and API docs
  • 🌍 Translations: Help localize the app
  • 🎨 UI/UX: Enhance the user experience
  • ⚑ Performance: Optimize app speed and memory usage

πŸ“Š Project Stats

GitHub repo size GitHub code size in bytes Lines of code GitHub language count


🌟 Roadmap

Q1 2025

  • iOS version release
  • Offline maps download
  • Voice command integration
  • Route optimization improvements

Q2 2025

  • Public transport integration
  • Traffic data integration
  • Social features (location sharing with friends)
  • Advanced search filters

Q3 2025

  • AR navigation mode
  • Electric vehicle routing
  • Integration with smart home devices
  • Advanced analytics dashboard

πŸ“„ License

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

Third-party Acknowledgments

  • Azure Maps - Microsoft Azure mapping services
  • Material Design - Google's design system
  • OpenStreetMap - Community-driven map data (for public transport)
  • Flutter Community - Amazing open-source packages

πŸ’¬ Community & Support

Get Help

Stay Connected

  • ⭐ Star this repository to show your support
  • πŸ‘€ Watch for updates and releases
  • πŸ”„ Share with your developer network

Contact

For business inquiries or partnerships: contact@hordmaps.com


Contributors ✨

Thanks goes to these wonderful people (emoji key):

This project follows the all-contributors specification. Contributions of any kind welcome!


HordMaps - Intelligent and Modern Navigation πŸš—πŸ—ΊοΈ

Made with ❀️ by the HordMaps community

Flutter Azure

About

HordMaps - A modern navigation app built with Flutter and powered by Azure Maps. Real-time GPS navigation, offline maps, voice guidance, and intelligent routing. Open source project participating in Hacktoberfest 2025!

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •