Skip to content

Repository files navigation

Plates

Run it locally · Firebase and Maps · Contributing · Security

License: MIT Built with Flutter Firebase backed

plates is a Flutter app for finding nearby local restaurants that have been suggested, reviewed, and approved inside the app. It combines Google Places search, current location, Firebase Auth, and Firestore-backed restaurant/comment data into one mobile-first flow.

The app is intentionally small: sign in, search around you, browse the approved spots, suggest a place that is missing, leave comments, and let admins promote good suggestions into the approved list.

About

Most restaurant apps optimize for volume. plates is built around a smaller idea: keep a curated list of local places that are worth sending people to, with enough context to make the next meal easy.

The current codebase is a Flutter beta-era app. Android, iOS, web, and Windows shells are present, but Android is the most concrete target in this repository because it already includes Firebase configuration. Treat production hardening, key management, and platform-specific Firebase setup as work to do before a real release.

What is here

  • Location-aware restaurant discovery through Google Places.
  • A map view for changing the search area and radius.
  • Suggested and approved eatery lists backed by Firestore.
  • Restaurant detail pages with photos, ratings, address, open/closed status, type chips, comments, and a maps handoff for directions.
  • Email/password and Google sign-in through Firebase Auth.
  • Admin checks through the Firestore admins collection.

Run it locally

git clone https://github.com/ajillepalli/plates.git
cd plates
flutter pub get
flutter run

The project was created against an older Flutter/Dart SDK range:

sdk: ">=2.12.0 <3.0.0"

If you are using a modern Flutter install, expect dependency upgrades before the app builds cleanly.

Firebase and Maps Setup

The app uses Firebase Core, Firebase Auth, Cloud Firestore, Google Sign-In, Google Maps, and Google Places. A working local run needs:

  • a Firebase project with Authentication enabled
  • Cloud Firestore collections for eateries, comments, and admins
  • platform Firebase config files for the platform you run
  • Google Maps/Places API credentials with the right application restrictions

Keep credentials out of git:

  • copy android/app/google-services.example.json to android/app/google-services.json and fill it from Firebase
  • add google.maps.apiKey=... to android/local.properties for Android Maps
  • pass the Places key at runtime with --dart-define=GOOGLE_PLACES_API_KEY=...

Rotate any key that has ever been committed, then restrict replacements by API, package name, bundle identifier, SHA certificate, and referrer as appropriate.

Checks

flutter analyze
flutter test

The existing widget test is still the default counter template and does not exercise the Firebase-backed app flow yet. New work should add focused tests around parsing, Firestore adapters, and auth/navigation behavior.

Repository Shape

Path What it is
lib/main.dart Flutter entrypoint and app theme
lib/widgets/authentication/ Beta splash, login, and signup screens
lib/widgets/dashboard/ Main restaurant/map/suggestion navigation
lib/widgets/eatery/ Eatery list, detail page, and suggestion flow
lib/eatery/, lib/place/, lib/comment/ Firestore and Google Places data models
images/ App logo and UI assets
android/, ios/, web/, windows/ Generated platform shells

Topics

flutter dart firebase firestore firebase-auth google-maps google-places restaurants local-food mobile-app

Contributing

PRs are welcome, especially if they replace old template code with tests and clear platform setup. Start with CONTRIBUTING.md.

Security

Please do not open public issues for credential leaks, auth bypasses, or data exposure. See SECURITY.md.

License

MIT.

About

Flutter/Firebase app for curated local restaurant discovery and suggestions.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages