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.
- 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
- 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
- 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
- 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
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
- 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
- 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
- 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)
-
Clone the repository
git clone https://github.com/TanvishGG/Campus-Map-VIT-AP.git cd Campus-Map-VIT-AP -
Install dependencies
flutter pub get
-
Verify Flutter installation
flutter doctor
-
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
# Android APK
flutter build apk --release
# Android App Bundle
flutter build appbundle --release
# iOS
flutter build ios --release
# Windows
flutter build windows --releaseEdit 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"
}
}
]
}- Export OpenStreetMap data for your campus area
- Save as
assets/map.osm - Rebuild the application
- Tap the search bar at the top
- Type the building name, office, or facility
- Select from the search results
- View location on the map
- Search for your destination
- Tap "Start Navigation" on the place card
- Follow the blue route line
- View distance and directions in the bottom navigation bar
- Tap the "Places" icon in bottom navigation
- Browse all available locations
- Tap any place to view it on the map
- Navigate to the place from the map screen
- Pinch to zoom in/out
- Drag to pan around the map
- Center button to return to your current location
- Compass shows GPS accuracy
# Clean build cache
flutter clean
# Remove pub cache
flutter pub cache repair
# Get dependencies
flutter pub get
# Rebuild
flutter runContributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- OpenStreetMap contributors for map data
- flutter_map package maintainers
Developer: TanvishGG
For questions, issues, or suggestions, please open an issue on GitHub.
Made with β€οΈ for VIT-AP University Students