A Flutter-based mobile app for local grocery and essentials delivery. Customers browse nearby shops, place orders, and track delivery status in real time.
- Phone authentication — Sign in via OTP
- Location-based shopping — Set delivery address with Google Maps and Places autocomplete
- Shop discovery — Browse shops within your delivery area
- Order placement — Add items to cart and place orders
- Order tracking — Real-time status updates (placed, preparing, out for delivery)
- Push notifications — Alerts for order updates
| Layer | Technology |
|---|---|
| Framework | Flutter |
| Backend | Firebase (Auth, Firestore, Cloud Messaging) |
| Maps & Location | Google Maps, Google Places API, Geolocator |
| State | Firestore snapshots |
- Flutter SDK
- Android Studio (for Android SDK)
- Firebase project
- Google Cloud project (Maps & Places APIs enabled)
git clone <repository-url>
cd lockdownmart
flutter pub getDo not commit local.properties, google-services.json, or GoogleService-Info.plist.
- Copy
android/local.properties.example→android/local.properties - Add your key:
GOOGLE_MAPS_API_KEY=your_google_maps_api_key - Ensure Maps SDK for Android and Places API are enabled in Google Cloud Console.
- Create a project at Firebase Console
- Add Android and iOS apps with your package/bundle IDs
- Download
google-services.json→android/app/google-services.json - Download
GoogleService-Info.plist→ios/Runner/GoogleService-Info.plist
If google-services.json was previously committed, stop tracking it:
git rm --cached android/app/google-services.jsonWindows (PowerShell):
.\run.ps1The script reads GOOGLE_MAPS_API_KEY from local.properties and passes it to Flutter.
Manual run:
flutter run --dart-define=GOOGLE_MAPS_API_KEY=your_keylib/
├── main.dart # App entry point
├── config.dart # Build-time config (API keys)
├── services/
│ ├── authservice.dart # Auth state handling
│ └── push_nofitications.dart
└── screens/
├── loginpage.dart # Phone OTP sign-in
├── homescreen.dart # Map, address, shop list
├── shoppage.dart # Shop details
├── list.dart # Item selection & cart
├── order.dart # Order tracking
└── custom_drawer.dart
- API keys and secrets live in gitignored files (
local.properties,google-services.json) - Rotate any keys that were ever committed to the repository
- See SECURING_REPO_KEYS_GUIDE.md in the workspace for a full checklist
Proprietary. All rights reserved.