A full-featured Android property rental platform connecting property owners with tenants across India.
rentH is a native Android application that serves as a marketplace for renting residential properties. It provides a dual-interface experience β one for property owners who list and manage their properties, and another for users (tenants) who browse, book, and pay for rentals. The app leverages Firebase for real-time data synchronization, authentication, and cloud storage, ensuring a seamless and responsive user experience.
- Browse Properties β Explore rental listings with images, descriptions, pricing, and availability dates
- Search & Filter β Filter properties by state and city across all Indian states
- Property Details β View detailed property information including type, address, description, and owner contact info
- Booking System β Select dates and number of slots, then proceed to book a property
- Integrated Payments β Secure payment processing with PhonePe payment gateway integration
- Trip Management β View and manage upcoming and past trip/booking details
- User Profile β Manage personal details, view profile information, and update account settings
- Real-time Notifications β Receive booking confirmations and updates via in-app notifications
- Direct Owner Contact β One-tap phone dialing to reach property owners directly
- Property Listing β Add new properties with multiple images, pricing, descriptions, and availability dates
- Property Management β View, update, and manage all listed properties from a dedicated dashboard
- Booking Notifications β Get real-time notifications when a tenant books a property, including tenant contact details
- Profile Management β Maintain owner profile with personal and contact information
- Wallet β Track earnings and financial transactions
- Firebase Authentication β Secure sign-up and login with email/password
- Role-based Access β Separate flows and dashboards for owners and tenants
- Session Persistence β Auto-login for returning users with splash screen handling
- Google Maps Integration β View property locations on an interactive map
- Animated UI β Smooth slide-in animations and transitions for a polished user experience
- Pan-India Coverage β Property listings supported across all Indian states and major cities
| Layer | Technology |
|---|---|
| Language | Java |
| Platform | Android (Min SDK 24 / Target SDK 34) |
| Build System | Gradle 8.2.0 |
| Authentication | Firebase Auth |
| Database | Firebase Realtime Database |
| Cloud Storage | Firebase Cloud Storage |
| Push Notifications | Firebase Cloud Messaging (FCM) |
| Image Loading | Picasso |
| Payments | PhonePe Intent SDK |
| Maps | Google Maps SDK |
| UI Components | Material Design, ConstraintLayout, ViewBinding |
| Networking | Retrofit 2 + Gson Converter |
| UI Extras | DialogPlus, NumberPicker |
| Backend Services | Backendless |
rentH/
βββ app/
β βββ src/
β βββ main/
β βββ AndroidManifest.xml
β βββ java/com/naksh/renth/
β β βββ SplashActivity.java # Animated splash screen with auth check
β β βββ LoginScreen.java # Login & authentication
β β βββ SignUpScreen.java # User/Owner registration
β β βββ UserHomeActivity.java # Tenant home dashboard
β β βββ OwnerHomeActivity.java # Owner home dashboard
β β βββ UserPersonalDetails.java # Tenant profile setup
β β βββ OwnerPersonalDetails.java # Owner profile setup
β β βββ PropertyDetails.java # Add new property listing
β β βββ PropertyRecyclerActivityForUser.java # Browse properties (tenant)
β β βββ PropertyRecyclerActivityForOwner.java # Manage properties (owner)
β β βββ BookingScreen.java # Property booking flow
β β βββ PaymentActivity.java # Payment processing (PhonePe)
β β βββ TripDetails.java # Trip/booking details view
β β βββ UserTripDetails.java # User-specific trip management
β β βββ UserProfileActivity.java # User profile screen
β β βββ MapsActivity.java # Google Maps integration
β β βββ NotificationFragment.java # In-app notifications
β β βββ WalletFragment.java # Wallet & earnings
β β βββ MyAdapter.java # RecyclerView adapter (tenant view)
β β βββ MyAdapter2.java # RecyclerView adapter (owner view)
β β βββ SharedViewModel.java # Shared ViewModel for fragments
β β βββ Models/
β β βββ PropertyDetailsModel.java # Property data model
β β βββ UserPersonalDetailsModel.java # User profile model
β β βββ OwnerPersonalDetailsModel.java # Owner profile model
β β βββ TripDetailsModel.java # Trip data model
β β βββ UserTripDetailsModel.java # User trip data model
β β βββ NotificationModel.java # Notification data model
β β βββ Users.java # Base user model
β βββ res/
β βββ layout/ # XML layout files (30 screens)
β βββ anim/ # Animation resources
β βββ drawable/ # Icons, backgrounds, shapes
β βββ menu/ # Navigation menus
β βββ values/ # Colors, strings, themes
β βββ mipmap-*/ # App launcher icons
βββ build.gradle # Root build configuration
βββ settings.gradle # Project settings
βββ gradle.properties # Gradle properties
βββ .gitignore
- Android Studio Arctic Fox (2021.3.1) or later
- JDK 8 or higher
- Android SDK with API Level 34 installed
- A Firebase project with Realtime Database, Authentication, Cloud Storage, and FCM enabled
- A Google Maps API Key
- A PhonePe merchant account (for payment integration)
-
Clone the repository
git clone https://github.com/Naksh55/rentH.git cd rentH -
Open in Android Studio
- Open Android Studio β
FileβOpenβ Select therentHdirectory
- Open Android Studio β
-
Configure Firebase
- Create a new Firebase project at Firebase Console
- Enable Authentication (Email/Password)
- Enable Realtime Database
- Enable Cloud Storage
- Enable Cloud Messaging
- Download
google-services.jsonand place it in theapp/directory
-
Configure Google Maps
- Obtain a Google Maps API key from Google Cloud Console
- Add the key to your
local.propertiesfile:MAPS_API_KEY=your_api_key_here
-
Configure PhonePe (Optional)
- Obtain merchant credentials from PhonePe Business
- Update the payment configuration in
PaymentActivity.java
-
Build & Run
./gradlew assembleDebug
Or simply click the Run
βΆοΈ button in Android Studio.
βββββββββββββββ ββββββββββββββββ βββββββββββββββββββββββ
β Splash ββββββΆβ Login / ββββββΆβ Role Selection β
β Screen β β Sign Up β β (Owner / Tenant) β
βββββββββββββββ ββββββββββββββββ ββββββββββββ¬βββββββββββ
β
ββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββ
βΌ βΌ
βββββββββββββββββββ βββββββββββββββββββ
β Owner Dashboard β β Tenant Dashboard β
β βββββββββββββββ β β βββββββββββββββ β
β β Add Propertyβ β β βBrowse Props β β
β β My Listings β β β β Book & Pay β β
β β Notificationsβ β β β My Trips β β
β β Profile β β β β Notificationsβ β
β β Wallet β β β β Profile β β
β βββββββββββββββ β β βββββββββββββββ β
βββββββββββββββββββ βββββββββββββββββββ
Firebase Realtime Database
β
βββ Users/
β βββ {userId}
β βββ email
β βββ password
β βββ userType (owner/user)
β
βββ UserPersonalDetailsModel/
β βββ {userId}
β βββ id, name, email, phoneno, address, ...
β
βββ OwnerPersonalDetailsModel/
β βββ {ownerId}
β βββ id, oname, oemail, ophoneno, ...
β
βββ PropertyDetailsModel/
β βββ {propertyId}
β βββ nameofproperty, typeofproperty, priceofproperty
β βββ address, city, state, propertydiscription
β βββ fromdate, todate
β βββ ownerId, oName, propertyId
β βββ propertydp1, propertydp2, propertydp3, propertydp4
β
βββ NotificationMessage/
βββ {notificationId}
βββ notificationMessage, userId
βββ ownerId, propertyId
βββ totalprice
- Animated Splash Screen β Slide-in logo animation with 3.5s delay
- Slide Transitions β Left-to-right slide animations on property and booking screens
- Material Design β Material Components with consistent theming and styling
- Responsive Layouts β ConstraintLayout-based designs for all screen sizes
- Dark Mode Support β Night theme resources included (
values-night/)
This project is open source and available for educational purposes.
Naksh
- GitHub: @Naksh55
Made with β€οΈ for the Indian rental market