A live location sharing app built on Flutter and Firebase as backend

Overview

DISCLAIMER

I want to stress on three main points:

  • This was my first Flutter project so I have not used any best practices and it needs a lot of code refactoring.
  • DO NOT USE real emails during sign up
  • DO NOT USE real location when testing. They are NOT encrypted and the database is open to public!

Trovami

A Live location sharing app created in Flutter using Firebase as the backend

Features

  • Create groups and choose to share your live location
  • View group members on the map
  • Google Sign-in

Preview

preview

Dependencies

Getting Started

1.Setup Flutter

2.Clone the repo

$ git clone https://github.com/Samaritan1011001/Trovami.git $ cd trovami/

3. Setup for google maps, firebase

All the setup is already done. I am using the free credit I got for the google account so you don't have to do anything until it runs out. IMPORTANT NOTE: DO NOT PROVIDE YOUR REAL EMAIL ADDRESS IN THE APP WHILE SIGNING UP SINCE THE BACKEND IS PUBLIC AND ANYONE USING THIS APP CAN ACCESS IT.

5. Run the app

$ flutter run

Tasks to complete

  • Firebase Authentication
  • Google Sign in
  • Chat screen
  • Deleting groups
  • Deleting members of the group after creation of the group
  • Refresh feature of the map For help getting started with Flutter, view our online documentation.
Comments
  • The method 'signInWithGoogle' isn't defined for the class 'FirebaseAuth'.

    The method 'signInWithGoogle' isn't defined for the class 'FirebaseAuth'.

    The method 'signInWithGoogle' isn't defined for the class 'FirebaseAuth'. Try correcting the name to the name of an existing method, or defining a method named 'signInWithGoogle'.

    Screenshoot is attached. please help to get this app running

    Screenshot (7)

    opened by ghost 5
  • A problem occurred evaluating project ':app'. > Could not get unknown property 'keystoreProperties'

    A problem occurred evaluating project ':app'. > Could not get unknown property 'keystoreProperties'

    • Error running Gradle: ProcessException: Process "D:\Trovami-master\android\gradlew.bat" exited abnormally: Starting a Gradle Daemon, 1 busy Daemon could not be reused, use --status for details NDK is missing a "platforms" directory. If you are using NDK, verify the ndk.dir is set to a valid NDK directory. It is currently set to C:\Users\sazar\AppData\Local\Android\sdk\ndk-bundle. If you are not using NDK, unset the NDK variable from ANDROID_NDK_HOME or local.properties to remove this warning.

    WARNING: The specified Android SDK Build Tools version (26.0.0-rc2) is ignored, as it is below the minimum supported version (27.0.3) for Android Gradle Plugin 3.1.2. Android SDK Build Tools 27.0.3 will be used. To suppress this warning, remove "buildToolsVersion '26.0.0-rc2'" from your build.gradle file, as each version of the Android Gradle Plugin now has a default version of the build tools. File C:\Users\sazar.android\repositories.cfg could not be loaded. Checking the license for package Android SDK Build-Tools 27.0.3 in C:\Users\sazar\AppData\Local\Android\sdk\licenses License for package Android SDK Build-Tools 27.0.3 accepted. Preparing "Install Android SDK Build-Tools 27.0.3 (revision: 27.0.3)". "Install Android SDK Build-Tools 27.0.3 (revision: 27.0.3)" ready. Installing Android SDK Build-Tools 27.0.3 in C:\Users\sazar\AppData\Local\Android\sdk\build-tools\27.0.3 "Install Android SDK Build-Tools 27.0.3 (revision: 27.0.3)" complete. "Install Android SDK Build-Tools 27.0.3 (revision: 27.0.3)" finished. Checking the license for package Android SDK Platform 26 in C:\Users\sazar\AppData\Local\Android\sdk\licenses License for package Android SDK Platform 26 accepted. Preparing "Install Android SDK Platform 26 (revision: 2)". "Install Android SDK Platform 26 (revision: 2)" ready. Installing Android SDK Platform 26 in C:\Users\sazar\AppData\Local\Android\sdk\platforms\android-26 "Install Android SDK Platform 26 (revision: 2)" complete. "Install Android SDK Platform 26 (revision: 2)" finished.

    FAILURE: Build failed with an exception.

    • Where: Build file 'D:\Trovami-master\android\app\build.gradle' line: 42

    • What went wrong: A problem occurred evaluating project ':app'.

    Could not get unknown property 'keystoreProperties' for SigningConfig_Decorated{name=release, storeFile=null, storePassword=null, keyAlias=null, keyPassword=null, storeType=null, v1SigningEnabled=true, v2SigningEnabled=true} of type com.android.build.gradle.internal.dsl.SigningConfig.

    • Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

    • Get more help at https://help.gradle.org

    BUILD FAILED in 6m 10s Command: D:\Trovami-master\android\gradlew.bat app:properties

    Finished with error: Please review your Gradle project setup in the android/ folder.

    opened by ghost 3
  • unable to run project

    unable to run project

    I just download this project and try to run on Android Studio.

    I set up properly but I am getting one error createHttpClient is not defined.

    screenshot 9

    I don't know that I am doing any mistake or what is wrong with my project.

    opened by nitishk72 3
  • cannot work

    cannot work

    Running "flutter packages get" in test_app... Package quiver has no versions that match >=0.17.0 <=0.26.2 derived from:

    • flutter_test 0.0.0 depends on version 0.28.0
    • uri 0.11.1 depends on version >=0.17.0 <=0.26.2 pub get failed (1)
    opened by amanasmuei 3
  • Cloud store tables

    Cloud store tables

    Lots of changes in this PR.

    • Updated libraries to latest version.
    • Created new CloudStore tables (https://console.firebase.google.com/u/0/project/trovami-bcd81/firestore/data~2Fgroups~2Ftest)
    • Created CloudFirebaseHelper to manage communication with Cloud Firestore for most tables (locations the exception)
    • Created Group2 & Group2Manager until we're ready to deprecate existing Group. When we update other screens using existing Group & Firestore api calls, we can deprecate Group and rename Group2 as Group
    • Added UnitTests route accessible from Groups Route by selecting Pencil Icon
    • Introduced ThemeManager to make it easier to use set of Colors/Styles for app. This can easily be expanded to use more than one theme for Night Mode for example. In my Sandy Scores app, I actually called it a "Sunny" theme that used white on black which gave a better contrast outside
    opened by alankley 2
  • Maps Api key

    Maps Api key

    when i click on show map, the console show an Authorization failure in the console: E/Google Maps Android API(10834): Ensure that the following Android Key exists: E/Google Maps Android API(10834): API Key: AIzaSyB4xaxweIhP0F36ZCBpfeiDjpoPc741*** But i change the main.dart MapView.setApiKey with my own Api key, and is not the above mentioned looks like this is not reading the new Api keys. if i set ? MapView.setApiKey("") : MapView.setApiKey(""); the console still show the lines: E/Google Maps Android API(10834): Ensure that the following Android Key exists: E/Google Maps Android API(10834): API Key: AIzaSyB4xaxweIhP0F36ZCBpfeiDjpoPc741***

    where is store this key to change it?

    opened by alexlovar 2
  • can't run this project because of old sdk version

    can't run this project because of old sdk version

    can't run this project because of this...

    The current Dart SDK version is 2.1.0-dev.5.0.flutter-a2eb050044.

    Because locate_pal requires SDK version >=1.9.0 <2.0.0, version solving failed.

    pub get failed (1) Process finished with exit code 1

    opened by aykakash 1
  • Map refactor

    Map refactor

    I've been a busy beaver. Having too much fun. Couldn't put it down. As continuation for the database refactor, I tackled the Locations table and decided to refactor the MapScreen (new HomeScreen) to test it. If you login as me ([email protected]) you can edit the Location field for the 2 Locations documents and see markers update on the map

    I won't do any more work until we've synced up after my work on the 2 PRs I created.

    opened by alankley 0
  • Refactor groups screen

    Refactor groups screen

    This branch went beyond just refactoring Groups. It was hard to cleanup groups without touching other screens. I have deprecated the old model classes and most of the legacy database calls. SignIn is still using old DB. I need your help migrating the current authentication to the CloudFirestore DB. I learned how to do various queries and the CloudFirebaseHelper class now has some powerful reuseable functions.

    After a successful login, this is now called: ProfileManager().get(email) .then((value) => {GroupsManager().getOwned(value.id)}) .then((value) => ProfileManager().getFriends()) .then((value) => TriggersHelper().trigger(TRIGGER_GROUPS_UPDATED));

    The data being retrieved is the profile of the user logged in, their list of friends, and only the groups that they own. Naturally, moving forward, a user should not have access to all users, and all groups. We need to think about how we want to let a user add/request friends.

    I was unable to integrate Provider with my Manager classes, I think I know why. We need to discuss what we plan to do moving forward with Managers/Providers

    For now I introduced TriggersHelper which uses ValueNotifier, one of my favorite constructs in Flutter. With that homegrown class, I can implement a publish/subscribe/notify mechanism that has served me quite well. This class is the main reason I've not had to add any libraries like Provider or ReactiveX type libraries.

    We have much to discuss. Feel free to review the PR and leave comments but this might be a good time for us to get online and discuss the many changes in this PR and some architectural choices, in person (online).

    opened by alankley 0
  • Refactor database Tables for optimal performance

    Refactor database Tables for optimal performance

    Consider creating a Locations table since that's the piece of data that will be transferred frequently.

    Groups should have only Name and list of User Ids

    Users should have profile data, no location data which is constantly changing

    opened by alankley 0
  • Null exception after cloning app

    Null exception after cloning app

    Exception in thread "main" java.lang.NullPointerException
    at org.gradle.wrapper.BootstrapMainStarter.findLauncherJar(BootstrapMainStarter.java:34) at org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:25) at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:129) at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)

    opened by muhammadaadnanijaz 0
  • Potential Security Issue

    Potential Security Issue

    👋 Hello, we've received a report for a potential critical severity security issue in your repository.

    Next Steps

    1️⃣ Visit https://huntr.dev/bounties/1-other-Samaritan1011001/Trovami for more advisory information.

    2️⃣ Sign-up to validate or speak to the researcher for more assistance.

    3️⃣ Propose a patch or outsource it to our community.


    Confused or need more help?

    • Join us on our Discord and a member of our team will be happy to help! 🤗

    • Speak to a member of our team: @JamieSlome


    This issue was automatically generated by huntr.dev - a bug bounty board for securing open source code.

    opened by huntr-helper 0
  • Enhance Splash Screen

    Enhance Splash Screen

    • [ ] Decide where to direct the user based on their preference [Home page or login]
    • [ ] Init services used by the app and ask permissions if needed
    • [ ] Transition fade when navigating away
    opened by Samaritan1011001 2
  • Refactor group details page

    Refactor group details page

    • [ ] Refactor existing code to use the new code structure
    • [ ] Use provider
    • [ ] Remove all database API calls and use the firebase package
    • [ ] Write widget tests to render a list of users
    • [ ] Allow users to toggle their location sharing option
    • [ ] Update user preference in the database and attach listeners.
    • [ ] Allow users to view the group members
    opened by Samaritan1011001 0
  • Refactor creating a group screen

    Refactor creating a group screen

    • [ ] Refactor existing code to use the new code structure
    • [ ] Use provider
    • [ ] Remove all database API calls and use the firebase package
    • [ ] Write widget tests to render a list of users
    • [ ] Allow users to enter a group name
    • [ ] Allow users to choose users through a drop down
    • [ ] Optionally allow them to add through username
    opened by Samaritan1011001 0
Owner
ManojNB
Focusing on learning new technologies and strengthening existing ones
ManojNB
Flutter в режиме live-code. Потому что прёт! Секретный проект на Hasura и Firebase.

minsk8 ?? Flutter в режиме live-code. Потому что прёт! Маркетплейс на Hasura и Firebase! How to Start $ flutter packages pub run build_runner build --

#кодеротбога 54 Dec 26, 2022
A chat App built with flutter and firebase as backend

chat_app A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if this

Alfi Mostak 0 Dec 3, 2021
Some built-in live templates support developers to use Flutter Riverpod faster on Intellij based

Flutter Riverpod live templates Flutter Riverpod live templates is a way to enhance the way you use Riverpod. It contains a collection of different sn

Minh Tran 27 Dec 16, 2022
A public repo that contains all the projects built in live coding events.

JEToP Live Coding A public repo that contains all the projects built in live coding events. Star this repo to not miss it. Built with ❤️ by JEToP's IT

JEToP - Junior Enterprise Torino Politecnico 13 Nov 30, 2022
A complete Flutter E-Commerce Book Store application built using firebase as backend

ecommerce A complete Flutter E-Commerce Book Store application built using firebase as backend. Features Add or remove item in cart Search products Ad

aakanksha 2 Sep 24, 2022
A mobile image uploader in which you can upload image to your personal gallery from either your camera or mobile gallery and it can detect your current geographic location and address using firebase firestore and storage.

Image Uploader In Flutter About It is an Image Uploader gallery which tracks your address from which you're uploading using Flutter and Image picker.

Prahen parija 6 Dec 20, 2022
News App created in Flutter using News API for fetching realtime data and Firebase as the backend and authenticator.

News Buzz News App created in Flutter using News API for fetching realtime data and Firebase as the backend and authenticator. Features Custom news fe

Ankur Kedia 545 Dec 30, 2022
Powering Your Flutter App with Live Data ( Weather)

clima A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if this is

Trần Văn Nguyên 1 Nov 18, 2021
Aris scpreview - Ricoh Theta Sc2 Live Preview Tester With Flutter

RICOH THETA SC2 Live Preview Tester For V/Z1, see my other project using dio as

Behruz Hurramov 1 Jan 9, 2022
A complete grocery store developed with Flutter, .Net Core, Firebase, One Signal and SQL Server as backend

# Grocery-Store developed in Flutter,DotNet Core, Firebase, One-Signal, SQL-Server, Stripe, Razorpay, Paypal A complete grocery store developed with F

Sunil Vijayan 31 Jan 1, 2023
📱 Tracking the impact of COVID-19 cases based on your location, built in Flutter

Installation Download apk here Get on Github Releases, or Build on your own: git clone https://github.com/adityanjr/covid19-tracker.git flutter pub ge

Aditya Singh 33 Dec 26, 2022
:star: Flutter-Firebase fully backend messaging app

Orgonet ChatApp ⭐ Flutter-Firebase fully backend messaging app I made a backend full messaging app using firebase **download the file named orgone tv2

Berke Can Pınar 5 Nov 18, 2022
Plants online shopping app using flutter firebase as backend.

planta A new Flutter application. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if th

Musthafa Ap 0 Nov 7, 2021
An App To manage all your tasks with firebase backend

?? Todo App An App To manage all your tasks with firebase backend. Star ⭐ the repo if you like what you see ?? . ✨ Features : Login/SignUp with Fireba

Omar Jadiani 74 Dec 12, 2022
A multiplatform Dart movie app with 40% of code sharing between Flutter and the Web.

A multiplatform Dart movie app with 40% of code sharing between Flutter and the Web.

Iiro Krankka 3.4k Dec 30, 2022
An app for sharing polls in an interactive and anonymous way

Stay Home Polls App An app for sharing surveys in an interactive and anonymous way, mainly on sociocultural issues produced by the period of confineme

Albert Mañosa 6 Nov 21, 2022
Instagram is a free, online photo-sharing application and social network platform

Instagram is a free, online photo-sharing application and social network platform that was acquired by Facebook in 2012. Instagram allows users to edit and upload photos and short videos through a mobile app.

Behruz Hurramov 4 Dec 6, 2022
DoubtBin is a doubt solving and resources sharing portfolio.

DoubtBin is a doubt solving and resources sharing portfolio. It includes implemenation of concepts of Object Oriented Programming, Front-end Development and Back-end Development.

null 17 Oct 14, 2022
The expense sharing app.

Tabs The expense sharing app -- made with Flutter, Firebase and ❤️ . Keep track of what your friends owe you for that pizza you agreed to split; or re

Michael Roudnitski 280 Nov 23, 2022