Skip to content

TanvishGG/Campus-Map-VIT-AP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Campus Map - VIT-AP

A Flutter-based offline campus navigation application for VIT-AP University. Navigate the campus with real-time GPS tracking, intelligent pathfinding, and comprehensive place discovery - all working completely offline.

Features

πŸ—ΊοΈ Offline Mapping

  • Complete offline functionality - No internet required after initial installation
  • Custom OpenStreetMap (OSM) data parsing for campus buildings and pathways
  • Interactive map with zoom, pan, and rotation controls
  • Real-time GPS location tracking with accuracy indicators

🧭 Smart Navigation

  • A pathfinding algorithm* for optimal route calculation
  • Turn-by-turn navigation with visual route overlay
  • Distance and estimated time display
  • Automatic route recalculation if you deviate from path

πŸ” Place Discovery

  • Search functionality for buildings, offices, and amenities
  • Categories include:
    • Academic buildings and classrooms
    • Faculty offices
    • ATMs and medical centers
    • Post offices and other facilities
  • Detailed place information with room numbers and coordinates

🎯 User Experience

  • Material 3 design with modern UI/UX
  • Bottom navigation for easy access to map and places list
  • GPS accuracy indicator
  • Active navigation bar with real-time updates
  • Search with instant results

Architecture

Project Structure

lib/
β”œβ”€β”€ main.dart                          # App entry point
β”œβ”€β”€ models/
β”‚   └── osm_data.dart                 # Data models for OSM parsing
β”œβ”€β”€ screens/
β”‚   β”œβ”€β”€ campus_map_screen.dart        # Main map interface
β”‚   β”œβ”€β”€ main_navigation_screen.dart   # Bottom navigation wrapper
β”‚   └── places_list_screen.dart       # Places directory
β”œβ”€β”€ services/
β”‚   β”œβ”€β”€ astar_algorithm.dart          # A* pathfinding implementation
β”‚   β”œβ”€β”€ astar_node.dart               # Node structure for pathfinding
β”‚   β”œβ”€β”€ campus_router.dart            # Route calculation service
β”‚   β”œβ”€β”€ custom_hashmap.dart           # Custom hash map for graph
β”‚   β”œβ”€β”€ custom_map.dart               # Map data structures
β”‚   β”œβ”€β”€ graph_builder.dart            # Build navigation graph from OSM
β”‚   β”œβ”€β”€ graph_structure.dart          # Graph data structures
β”‚   β”œβ”€β”€ nearest_node_search.dart      # Find nearest walkable nodes
β”‚   └── priority_queue.dart           # Priority queue for A*
└── widgets/
    β”œβ”€β”€ active_navigation_bar.dart    # Navigation status display
    β”œβ”€β”€ gps_accuracy_indicator.dart   # GPS signal strength
    β”œβ”€β”€ loading_screen.dart           # Loading state UI
    β”œβ”€β”€ map_controls.dart             # Zoom/center controls
    β”œβ”€β”€ map_search_bar.dart           # Search input widget
    β”œβ”€β”€ navigation_card.dart          # Route information card
    β”œβ”€β”€ place_selection_card.dart     # Place details card
    └── search_results_list.dart      # Search results display

Key Technologies

  • Flutter 3.8.1+ - Cross-platform framework
  • flutter_map - Interactive map rendering
  • latlong2 - Geographic coordinate handling
  • Geolocator - GPS location services
  • Provider - State management
  • XML parsing - OSM data processing

Algorithms & Data Structures

  • A Search Algorithm* - Optimal pathfinding with heuristic optimization
  • Graph Structure - Custom graph implementation for campus walkways
  • Priority Queue - Efficient A* node selection
  • Spatial Hashing - Fast nearest node lookup
  • Custom HashMap - Optimized graph node storage

Installation

Prerequisites

  • Flutter SDK 3.8.1 or higher
  • Dart SDK 3.8.1 or higher
  • Android Studio / Xcode (for mobile development)
  • VS Code or Android Studio (recommended IDEs)

Setup Steps

  1. Clone the repository

    git clone https://github.com/TanvishGG/Campus-Map-VIT-AP.git
    cd Campus-Map-VIT-AP
  2. Install dependencies

    flutter pub get
  3. Verify Flutter installation

    flutter doctor
  4. Run the application

    # For Android
    flutter run
    
    # For iOS
    flutter run -d ios
    
    # For Web
    flutter run -d chrome
    
    # For Windows
    flutter run -d windows

Build for Production

# Android APK
flutter build apk --release

# Android App Bundle
flutter build appbundle --release

# iOS
flutter build ios --release

# Windows
flutter build windows --release

Configuration

Adding Custom Places

Edit assets/general_places.json to add new locations:

{
  "places": [
    {
      "id": "unique_id",
      "name": "Place Name",
      "type": "Category",
      "room_number": "Building-Floor Room",
      "latitude": 16.495650,
      "longitude": 80.498162,
      "tags": {
        "amenity": "type"
      }
    }
  ]
}

Updating Campus Map

  1. Export OpenStreetMap data for your campus area
  2. Save as assets/map.osm
  3. Rebuild the application

Usage

Searching for a Place

  1. Tap the search bar at the top
  2. Type the building name, office, or facility
  3. Select from the search results
  4. View location on the map

Starting Navigation

  1. Search for your destination
  2. Tap "Start Navigation" on the place card
  3. Follow the blue route line
  4. View distance and directions in the bottom navigation bar

Using the Places List

  1. Tap the "Places" icon in bottom navigation
  2. Browse all available locations
  3. Tap any place to view it on the map
  4. Navigate to the place from the map screen

Map Controls

  • Pinch to zoom in/out
  • Drag to pan around the map
  • Center button to return to your current location
  • Compass shows GPS accuracy

Build Errors

# Clean build cache
flutter clean

# Remove pub cache
flutter pub cache repair

# Get dependencies
flutter pub get

# Rebuild
flutter run

Contributing

Contributions are welcome! Please follow these steps:

  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

License

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

Acknowledgments

  • OpenStreetMap contributors for map data
  • flutter_map package maintainers

Contact

Developer: TanvishGG

For questions, issues, or suggestions, please open an issue on GitHub.


Made with ❀️ for VIT-AP University Students

About

Campus Map Utility for VIT-AP University

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors