A modern Flutter application for property listing and management with Firebase backend integration.
- 🏠 Property Listings: Browse and search properties with detailed information
- ❤️ Favorites: Save and manage favorite properties
- 📱 User Authentication: Secure login and registration with email verification
- 📸 Image Upload: Upload multiple property images to Firebase Storage
- 🗺️ Maps Integration: View property locations on interactive maps
- 💰 Payment Integration: Stripe payment processing for bookings
- 🔍 Search & Filter: Advanced search and filtering capabilities
- Frontend: Flutter (Dart)
- Backend: Firebase
- Firebase Authentication
- Cloud Firestore (Database)
- Firebase Storage (Image storage)
- Maps: Flutter Map with OpenStreetMap
- Payments: Stripe
- State Management: Provider
- Flutter SDK (>=3.1.5)
- Android Studio / VS Code
- Firebase account
- Stripe account (for payments)
-
Clone the repository
git clone https://github.com/YOUR_USERNAME/mehmaan-property-app.git cd mehmaan-property-app -
Install dependencies
flutter pub get
-
Firebase Setup
- Create a new Firebase project
- Enable Authentication, Firestore, and Storage
- Add your
google-services.json(Android) andGoogleService-Info.plist(iOS) - Update
lib/firebase_options.dartwith your project configuration
-
Stripe Setup
- Add your Stripe publishable key to
lib/config/stripe_config.dart
- Add your Stripe publishable key to
-
Run the app
flutter run
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
// Properties collection
match /properties/{document} {
allow read: if true;
allow write: if request.auth != null;
}
// Favorites collection
match /favorites/{userId}/properties/{propertyId} {
allow read, write: if request.auth != null && request.auth.uid == userId;
}
}
}rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
match /property_images/{allPaths=**} {
allow read: if true;
allow write: if request.auth != null;
}
}
}lib/
├── main.dart # App entry point
├── firebase_options.dart # Firebase configuration
├── services/ # Business logic services
│ ├── auth_service.dart
│ ├── property_service.dart
│ ├── favorites_service.dart
│ └── storage_service.dart
├── screens/ # UI screens
│ ├── auth_screen.dart
│ ├── home_screen.dart
│ ├── favorites_screen.dart
│ ├── add_property_screen.dart
│ └── payment_screen.dart
└── widgets/ # Reusable widgets
└── animated_background.dart
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Your Name - your.email@example.com
Project Link: https://github.com/YOUR_USERNAME/mehmaan-property-app
- Flutter team for the amazing framework
- Firebase for backend services
- OpenStreetMap for map tiles
- Unsplash for sample property images