Skip to content

Naksh55/rentH

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

56 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🏠 rentH

A full-featured Android property rental platform connecting property owners with tenants across India.

Platform Language Backend Min SDK Target SDK Version


πŸ“– About

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.


✨ Features

πŸ‘€ User (Tenant) Side

  • 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

🏒 Owner Side

  • 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

πŸ” Authentication & Security

  • 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

πŸ—ΊοΈ Additional Features

  • 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

πŸ—οΈ Tech Stack

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

πŸ“ Project Structure

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

πŸš€ Getting Started

Prerequisites

  • 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)

Setup

  1. Clone the repository

    git clone https://github.com/Naksh55/rentH.git
    cd rentH
  2. Open in Android Studio

    • Open Android Studio β†’ File β†’ Open β†’ Select the rentH directory
  3. 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.json and place it in the app/ directory
  4. Configure Google Maps

    • Obtain a Google Maps API key from Google Cloud Console
    • Add the key to your local.properties file:
      MAPS_API_KEY=your_api_key_here
  5. Configure PhonePe (Optional)

    • Obtain merchant credentials from PhonePe Business
    • Update the payment configuration in PaymentActivity.java
  6. Build & Run

    ./gradlew assembleDebug

    Or simply click the Run ▢️ button in Android Studio.


πŸ“± App Flow

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   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 Database Schema

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

🎨 UI Highlights

  • 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/)

πŸ“„ License

This project is open source and available for educational purposes.


πŸ‘€ Author

Naksh


Made with ❀️ for the Indian rental market

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages