/great-places

A Dart and Flutter mobile app to take pictures, add notes and view on map all the world's great places to visit.

Primary LanguageDartMIT LicenseMIT

Great Places - Photo App

A Mobile Dart/Flutter App built on Firestore. App allows you to use your camera to take a picture of where you are, add details and attach a GPS location to it, which will then provide you with an address as well. Store all your favorite places and exactly where you took that picture!

Login Screen Menu Bar Map Screen Add Place Screen Add Place Detail Tab Screen Places List Screen Place Detail Screen

Inspiration

This app is based on GREAT PLACES APP - Created by Academind by Maximilian Schwarzmüller (Learn Flutter and Dart to Build iOS and Android Apps 2020) Great Places.

Front-end design of Onboarding Screen inspired by @mkobuolys Onboarding Concept

Features

alt text

Technical Features

  • Local storage usage for in-app photos using Paths and Path_Provider.
  • Uses Cloud Firestore DB for relevant data taken.
  • Uses FirebaseUI for authentication.
  • Uses Native Camera feature to snap photos.
  • Uses Google Maps for current location (Native GPS) and latitude/longitude of where the picture was taken.
  • Accesses GoogleMaps for interactive mapping and marker pinning.
  • Reverse geocoding used to provide address of where the photo was taken or where the marker was added.

Plugins

These are the available plugins in this repository.

Plugin Pub Points Popularity Likes
cloud_firestore pub package pub points popularity likes
firebase_auth pub package pub points popularity likes
firebase_core pub package pub points popularity likes
google_maps_flutter pub package pub points popularity likes
image_picker pub package pub points popularity likes
location pub package pub points popularity likes
path_provider pub package pub points popularity likes

Setup

You can follow these instructions to build the app and install it onto your device.

Prerequisites

If you are new to Flutter, please first follow the Flutter Setup guide.

Building and installing the Flutter Design Patterns app

git clone git clone https://harpreet_k@bitbucket.org/harpreet_k/great_places_flutter.git
cd great_places_flutter
flutter run

The flutter run command both builds and installs the Flutter app to your device or emulator.

Firestore

  • [Set up your Android app for Firestore][setup-android]
  • In the Authentication tab of the Firebase console go to the [Sign-in Method][auth-providers] page and enable 'Email/Password' and 'Anonymous'.
    • This app uses [FirebaseUI][firebaseui] for authentication.
  • Run the app on an Android emulator.

Google Maps API

Before using/testing the application, you need a new API key. Follow the instructions at Maps SDK for Android — Get API Key. Once you have your API key, add it to your Flutter app in the application manifest (android/app/src/main/AndroidManifest.xml), as follows:

...
<manifest ...
  <application ...
    <meta-data android:name="com.google.android.geo.API_KEY"
               android:value="YOUR KEY HERE"/>
...

License

The MIT License (MIT)