A comprehensive Flutter-based real estate application with AI-powered land valuation, multi-role user management, and Firebase backend integration.
| Name | RegNo | StudentNo | Github Username |
|---|---|---|---|
| Abinsinguza Morison K | 24/U/02594/PS | 2400702594 | MORISON-K |
| Serena Robinah | 24/U/22603/PS | 2400703053 | Serena-Robinah |
| Akadwanaho Jonan | 24/U/03053/PS | 2400711034 | RWANGOGA |
| Lunkuse Dorcus | 24/U/06515/PS | 2400706515 | Dorcus-jane |
| Elijah Biar Mabior | 24/E/21430/PS | 2400721430 | biar211 |
SmartSpace is a modern real estate platform that connects buyers, sellers, and administrators through an intuitive mobile interface. The application features AI-powered land valuation using machine learning, real-time notifications, and comprehensive property management capabilities.
- AI-Powered Land Valuation: Get accurate property value predictions using machine learning
- Easy Listing Creation: Upload property details with images and documents
- Activity Tracking: Monitor listing performance and engagement
- Media Management: Upload multiple images and PDF documents
- Property Search & Filter: Find properties based on location, price, and preferences
- Interactive Maps: View properties on Google Maps with precise locations
- Favorites Management: Save and organize preferred properties
- Real-time Notifications: Get notified about new listings and updates
- User Management: Oversee all users and their roles
- Listing Approval: Review and approve property listings
- Analytics Dashboard: Monitor platform activity and statistics
- Notification Management: Send targeted notifications to users
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β CLIENT LAYER (Flutter Mobile App) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Admin Module β Buyer Module β Seller Module β
β - Dashboard β - Home/Browse β - Add Listings β
β - User Mgmt β - Search/Filter β - AI Valuation β
β - Approvals β - Favorites β - Activity Tracking β
β - Settings β - Notifications β - Media Upload β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β FIREBASE BACKEND SERVICES β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Firebase Auth β Firestore DB β Firebase Storage β
β Cloud Functions β Firebase Messagingβ External APIs β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β EXTERNAL ML SERVICE (Django REST API) β
β Land Valuation Predictions β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Frontend (Flutter)
- Flutter SDK ^3.7.2
- Firebase Integration (Auth, Firestore, Storage, Messaging)
- Google Maps & Geocoding
- Image & File Picking
- PDF Viewing (Syncfusion)
Backend Services
- Firebase Authentication (Role-based access)
- Cloud Firestore (NoSQL Database)
- Firebase Storage (Media files)
- Firebase Cloud Messaging (Push notifications)
External Services
- Django REST Framework (ML API)
- Google Maps API
- Random Forest ML Model for land valuation
lib/
βββ main.dart # App entry point
βββ firebase_options.dart # Firebase configuration
βββ admin/ # Admin module
β βββ screens/ # Admin screens
β βββ widgets/ # Admin-specific widgets
βββ auth/ # Authentication screens
βββ buyer/ # Buyer module
β βββ buyer_home_screen.dart # Main buyer interface
β βββ search_screen.dart # Property search
β βββ favorite_screen.dart # Saved properties
βββ seller/ # Seller module
β βββ add_listing_screen.dart # Create new listings
β βββ ai-valuation/ # ML integration
β βββ widgets/ # Seller widgets
β βββ recent-activity/ # Activity tracking
βββ notifications/ # Notification system
- Flutter SDK (^3.7.2)
- Android Studio / VS Code
- Firebase account
- Google Maps API key
-
Clone the repository
git clone https://github.com/MORISON-K/smartspace.git cd smartspace -
Install dependencies
flutter pub get
-
Firebase Setup
- Create a new Firebase project
- Add Android/iOS apps to your Firebase project
- Download and place
google-services.json(Android) andGoogleService-Info.plist(iOS) - Enable Authentication, Firestore, Storage, and Cloud Messaging
-
Configure Google Maps
- Get Google Maps API key
- Add to
android/app/src/main/AndroidManifest.xml - Add to
ios/Runner/AppDelegate.swift
-
Run the application
flutter run
-
Firebase Configuration
# Install Firebase CLI npm install -g firebase-tools # Login to Firebase firebase login # Initialize Firebase in your project firebase init
-
ML API Setup
- Deploy the Django ML service
- Update API endpoints in the Flutter app
- Configure CORS for cross-origin requests
firebase_core: ^3.14.0- Firebase core functionalityfirebase_auth: ^5.6.0- Authenticationcloud_firestore: ^5.6.9- Databasefirebase_storage: ^12.4.7- File storagefirebase_messaging: ^15.2.9- Push notifications
google_maps_flutter: ^2.12.3- Maps integrationimage_picker: ^1.1.2- Image selectionfile_picker: ^10.2.0- File selectionsyncfusion_flutter_pdfviewer: ^30.1.39- PDF viewing
geocoding: ^4.0.0- Address to coordinatesgeolocator: ^14.0.2- Location serviceshttp: ^1.4.0- HTTP requestspermission_handler: ^12.0.1- App permissions
Firestore Rules Example:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
// Users can read/write their own data
match /users/{userId} {
allow read, write: if request.auth != null && request.auth.uid == userId;
}
// Listings are publicly readable, but only owners can write
match /listings/{listingId} {
allow read: if true;
allow write: if request.auth != null;
}
}
}The app integrates with a Django REST API for land valuation:
// Example API call
final response = await http.post(
Uri.parse('https://smartspace-e7e32524ddcb.herokuapp.com/api/predict/'),
headers: {'Content-Type': 'application/json'},
body: jsonEncode({
'tenure': tenure,
'location': location,
'use': landUse,
'plotSize': plotSize,
}),
);- Full system access
- User management
- Listing approval workflow
- Analytics and reporting
- Create and manage listings
- Access AI valuation tools
- Upload property media
- Track listing activity
- Browse and search properties
- Save favorite listings
- Contact sellers
- Receive notifications
- Firebase Authentication with role-based access
- Secure file upload with validation
- Input sanitization and validation
- Firestore security rules
- API endpoint protection
- Machine learning model integration
- Considers location, size, tenure, and land use
- Real-time price predictions
- Historical data analysis
- Firebase Cloud Messaging integration
- Role-based notification targeting
- Push notifications for listing updates
- In-app notification center
- Multiple image uploads
- PDF document support
- Firebase Storage integration
- Optimized image handling
- Fork the repository
- Create a 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.
For support and questions, please contact:
- Repository: MORISON-K/smartspace
- Issues: GitHub Issues