A Flutter-based mobile application that helps users find available parking spots with real-time probability predictions. Spotto uses AI-powered simulations to predict parking availability and provides navigation integration with popular map apps.
- Real-time map view with parking zone boundaries
- GPS location tracking with user's current position indicator
- Draggable bottom sheet for zone details
- Search functionality to find parking zones by location
- Mock search suggestions with 40+ locations
- Real-time filtering as you type
- Visual indicators for locations with parking zones
- Search overlay with full-screen experience
- Dynamic parking zones with polygon boundaries
- Real-time availability probability (0-100%)
- Zone details with statistics:
- Current availability percentage
- Last updated timestamp
- Average parking time
- Probability history chart
- External app handoff to popular navigation apps:
- Google Maps
- Apple Maps
- Waze
- Automatic route calculation with origin and destination
- Seamless transition between apps
- "I Parked Here" functionality to mark parking sessions
- Active parking timer with duration tracking
- Points and rewards system
- User profile with badges and achievements
- AI-powered probability updates every 5 seconds
- Dynamic zone availability changes
- Realistic parking behavior simulation
- Framework: Flutter 3.0+
- Maps: flutter_map with OpenStreetMap tiles
- Location Services: geolocator, geocoding
- Charts: fl_chart for probability visualization
- Navigation: url_launcher for external app integration
- UI: Material Design with Google Fonts
dependencies:
flutter_map: ^8.2.2
latlong2: ^0.9.0
fl_chart: ^0.68.0
google_fonts: ^6.3.2
phosphor_flutter: ^2.0.1
geolocator: ^12.0.0
geocoding: ^3.0.0
http: ^1.2.0
url_launcher: ^6.2.5- Flutter SDK (3.0.0 or higher)
- Dart SDK (3.0.0 or higher)
- Android Studio / Xcode (for mobile development)
- An Android emulator or iOS simulator, or a physical device
-
Clone the repository
git clone <repository-url> cd SPOTTO
-
Install dependencies
flutter pub get
-
Run the app
flutter run
- Minimum SDK: 21 (Android 5.0)
- Location permissions are automatically requested at runtime
- Minimum iOS version: 12.0
- Add location permissions to
Info.plist:<key>NSLocationWhenInUseUsageDescription</key> <string>Spotto needs your location to find nearby parking zones</string>
lib/
βββ data/
β βββ mock_data.dart # Mock parking zones and search suggestions
βββ models/
β βββ parking_zone.dart # Parking zone data model
β βββ zone_details.dart # Zone details and statistics
β βββ search_suggestion.dart # Search suggestion model
β βββ user_profile.dart # User profile and badges
βββ screens/
β βββ map_screen.dart # Main map screen with zones
β βββ zone_details_screen.dart # Zone details bottom sheet
βββ services/
β βββ navigation_service.dart # External navigation app integration
βββ main.dart # App entry point
- Search for locations by name
- Filter suggestions in real-time
- Locations marked with "Zones" badge have parking availability
- Selecting a location moves the map and loads zones (if available)
- Zones with availability show probability percentage
- Color-coded indicators:
- π’ Green: >70% availability
- π Orange: 30-70% availability
- π΄ Red: <30% availability
- Tap a parking zone to view details
- Tap "Navigate" button
- Choose your preferred navigation app
- External app opens with route from your location to the zone
- Return to Spotto to confirm parking
The app currently uses mock data for:
- Parking zones (4 default zones)
- Search suggestions (40+ locations)
- Zone availability probabilities
- User profile and badges
- The app requests location permissions on first launch
- GPS status is monitored in real-time
- Falls back to default location if GPS is unavailable
- Parking zones are generated relative to user's current location
- Zones are dynamically positioned based on GPS coordinates
- Mock zones are shifted to appear near the user
- Uses mock search suggestions (no API required)
- Filters suggestions based on name matching
- Shows visual indicators for zones availability
- Real-time API integration for parking data
- User authentication and profile sync
- Parking history and favorites
- Push notifications for zone availability
- Social features (share parking spots)
- Payment integration for parking fees
- Offline map support
This is a prototype application. Contributions and suggestions are welcome!
This project is for educational/demonstration purposes.
For questions or feedback, please open an issue in the repository.
Note: This app uses mock data for demonstration purposes. Real parking zone data would require integration with parking management APIs or services.