A comprehensive Flutter mobile application for discovering, managing, and sharing memorable locations with advanced location services and SQLite integration.
- Location Discovery: Add places with detailed information
- Photo Integration: Capture and store photos using device camera
- Location Services: GPS coordinates and reverse geocoding
- Interactive Maps: Google Maps integration with custom markers
- Offline Storage: SQLite database for reliable local data persistence
- State Management: Flutter Riverpod for reactive state management
- Location Services: GPS with location permissions handling
- Database: SQLite with custom data models and relationships
- Maps Integration: Google Maps Flutter plugin with custom UI
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ UI Screens │ │ State Manager │ │ Data Layer │
│ │ │ │ │ │
│ • Places List │◄──►│ Riverpod │◄──►│ SQLite DB │
│ • Add Place │ │ Providers │ │ File Storage │
│ • Place Detail │ │ │ │ │
│ • Map View │ │ │ │ │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ UI Widgets │ │ Models │ │ External APIs │
│ │ │ │ │ │
│ • Image Input │ │ • Place │ │ • Google Maps │
│ • Location Input│ │ • PlaceLocation │ │ • Camera/GPS │
│ • Places List │ │ │ │ • Geocoding │
└─────────────────┘ └─────────────────┘ └─────────────────┘
lib/
├── models/ # Data models and entities
├── providers/ # Riverpod state management
├── screens/ # UI screens and navigation
├── widgets/ # Reusable UI components
├── theme/ # App theming and styling
└── extensions/ # Dart extensions and utilities
- Framework: Flutter 3.3.2+
- State Management: Flutter Riverpod 2.5.1
- Database: SQLite with sqflite 2.3.3
- Location Services: location 6.0.2
- Maps: google_maps_flutter 2.6.1
- Image Handling: image_picker 1.1.1
- HTTP Client: http 1.2.2
- UI: Material Design 3 with Google Fonts
dependencies:
flutter_riverpod: ^2.5.1 # State management
google_maps_flutter: ^2.6.1 # Maps integration
location: ^6.0.2 # GPS services
image_picker: ^1.1.1 # Camera/gallery
sqflite: ^2.3.3+1 # SQLite database
http: ^1.2.2 # API requests
google_fonts: ^6.2.1 # Typography
uuid: ^4.4.0 # Unique identifiers- Flutter SDK 3.3.2 or higher
- Android SDK (API level 21+) or iOS 11.0+
- Google Maps API key
-
Clone the repository
git clone https://github.com/yohanangulo/great-places.git cd great-places -
Install dependencies
flutter pub get
-
Configure Google Maps
- Get a Google Maps API key from Google Cloud Console
- Add the API key to platform-specific configuration files
-
Run the application
flutter run
The application follows Flutter best practices with a modular architecture:
- Models: Immutable data classes with proper serialization
- Providers: Reactive state management with Riverpod
- Screens: Feature-based screen organization
- Widgets: Reusable components with consistent styling
- Database: SQLite integration with migration support
- Cross-platform mobile development with Flutter
- State management patterns and reactive programming
- SQLite database design and implementation
- Google Maps SDK integration
- Camera and location services implementation
- Material Design implementation
Built with Flutter | Developed by Yohan Angulo


