/mobilefarmersmarket

An application to assist Farmer's Market's with mobil ordering during the COVID-19 pandemic

Primary LanguageDart

Farmer's Market Mobile Ordering Application

This application will be similar to the Mobile Ordering system introduced by Walt Disney World where customers may place their order online and confirm their proximity to the market via location of the device. The vendor can confirm their order accept payment by Stripe and let the customer know where they can pickup the order. If desired, the vendor can confirm the customer by flashing the flash on their device. The entire transaction can take place without any personal contact.

This will be an open source project and anyone is welcome to fork, clone and use the code for their own purposes. The application is meant to be of public use and the development is intended for educational purposes for Flutter developers. Each episode in the series will be a branch in the repository. Episode 1 contains no coding and does not have a branch

Concepts introduced in the development of the application will include: Firebase, Firestore, 3rd Party Authentication, push notifications, provider, rxdart, cupertino scaffolding, plugins, geocoding, Strip, and Google Maps (and maybe more).

Development of the application will be documented on my YouTube channel https://www.youtube.com/channel/UCSKeK_8IzsqwKQBJuIGJPaA

Getting Started

To run the code beyond part 5 you will need to establish a firebase project, add an IOS and Android application using the Flutter instructions here https://firebase.google.com/docs/flutter/setup?authuser=0&platform=ios

To run beyond part 18, add a Firestore database to your project with rules set to allow read, write: if request.auth.uid != null;
You will also need to enable email authentication in your firebase project.

Episode History

Part 1: Application Concept (No Branch)

Part 2: App Setup and Routes

Part 3: App Platform Splitting

Part 4: Adding Firebase

Part 5: Login Flow (No Branch)

Part 6: Login UI

Part 7: Cupertino TextField (in Part8 branch)

Part 8: Material TextField

Part 9: Application TextField

Part 10: Application Buttons

Part 11: Social Media Buttons

Part 12: Signup UI

Part 13: Why RXDart? (no branch)

Part 14: TheAuth BLoC

Part 15: Material Validation

Part 16: Cupertino Validation

Part 17: Submit Button Revisited

Part 18: Adding the First User

Part 19: User Story Mapping

Part 20: Logging In

Part 21: IOS Sliver AppBar