Skip to content

Latest commit

Β 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🏑 RentPerfect

The Smart, Zero-Brokerage Property Rental Marketplace

FastAPI React MongoDB Tailwind CSS Razorpay Python License: MIT

RentPerfect is a cutting-edge, full-stack property rental ecosystem built specifically for modern rentals across India. From apartments, villas, and PGs to coworking offices and banquet spaces β€” RentPerfect eliminates broker fees with instant lead verification, automated tenant profiling, and powerful owner analytics.

✨ Key Features β€’ πŸš€ Quick Start β€’ πŸ“ Architecture β€’ πŸ› οΈ Tech Stack β€’ πŸ”‘ Demo Logins β€’ πŸ“– API Docs


🌟 Why RentPerfect?

Traditional real estate platforms are cluttered with buy/sell listings, outdated brokerage models, and noisy leads. RentPerfect redefines the rental experience:

  • ⚑ 100% Rentals-Only Focus: No plots, no buy/sell distractions β€” built purely for tenant-landlord matchmaking.
  • πŸ›‘οΈ Zero-Friction Tenant Onboarding: Swiggy-style seamless phone OTP auto-registration on first enquiry.
  • πŸ§™ 8-Step Owner Wizard: Post listings with fine-grained rules, amenities, photo galleries, and custom tenant pre-screening questions.
  • πŸ“Š Owner CRM & Pipeline: Track enquiries through real-time stages (Pending βž” Accepted βž” Called βž” Visited βž” Rented).
  • πŸ’Ž Tiered Monetization: Built-in subscription plans (Free, Silver, Gold, Enterprise) with Razorpay payments.
  • πŸ“± Mobile-First Luxury UI: Designed with clean aesthetic principles, Outfit & Geist typography, fluid transitions, and app-like mobile drawer navigation.

πŸ“Έ Screenshots & Highlights

πŸ” Discovery & Search πŸ“Š Owner Lead Pipeline
Dynamic locality autocomplete, multi-facet filters & budget sliders Kanban-style lead status tracking with phone unmasking on accept
Search Interface Owner CRM
🏑 8-Step Listing Wizard πŸ›‘οΈ Verified Trust Shield
Step-by-step guidance with custom applicant qualification questions Government ID & verified phone indicators for maximum safety
Listing Wizard Trust Shield

✨ Key Features

πŸ‘€ 1. For Tenants (Zero-Friction Rental Discovery)

  • Multi-Category Exploration: Residential (Flats, Independent Houses, Villas, Penthouse), Shared Living (PG Boys/Girls/Co-ed, Hostels, Co-Living), Commercial (Offices, Showrooms, Warehouses, Coworking), and Specialty (Marriage gardens, Event halls, Parking).
  • Smart Faceted Search: Filter by Rent Range Slider, BHK Configuration, Furnishing Type, Gender Preference, Verified Only, and Listings with Photos.
  • Location Autocomplete: Instant search suggestions across 8+ tier-1 metro cities (Bangalore, Mumbai, Delhi-NCR, Hyderabad, Pune, Chennai, Kolkata, Ahmedabad) and hundreds of popular localities.
  • Instant OTP Lead Generation: Submit enquiries with a 4-step modal; auto-creates a tenant account without needing complex password setups.
  • Saved Listings & History: Bookmark properties and track submitted enquiries with real-time status updates.

🏒 2. For Property Owners & Landlords

  • 8-Step Guided Posting Wizard:
    1. Category & Property Type Selection
    2. Details & Financials (Rent, Security Deposit, Maintenance, Carpet Area, Floor)
    3. Location & Landmark Mapping
    4. Amenities Checklist (Power Backup, Lift, Parking, Security, Gym, etc.)
    5. House Rules & Preferences (Bachelors, Families, Pets, Non-veg, Smoking)
    6. Photo Gallery Showcase
    7. Custom Tenant Screening Questions (e.g., "Company name?", "Expected move-in date?")
    8. Preview & One-Click Publish
  • Owner Dashboard & Analytics: Real-time stats on active listings, views, bookmarks, enquiries, response rate %, and lead conversion rates.
  • Interactive Lead CRM: Update enquiry states, view tenant responses to custom screening questions, and reveal verified phone numbers.
  • Subscription Upgrades: Choose between Free, Silver, Gold, and Enterprise tiers with Razorpay payment processing (supports sandbox/mock and production modes).

πŸ›‘οΈ 3. For Platform Administrators

  • Executive Analytics Overview: Monitor total users, tenant-to-owner ratios, active vs. pending properties, total platform enquiries, and gross revenue in INR.
  • User & Listing Moderation: Mark properties as verified, toggle featured/boost status, or deactivate suspicious listings.
  • Grievance & Report Center: Review tenant-reported issues with direct actions to resolve or dismiss tickets.

πŸ“ System Architecture

graph TD
    subgraph Client["Frontend Layer (React 19 + Tailwind + Shadcn UI)"]
        UI_Home["Home & Search View"]
        UI_Post["8-Step Posting Wizard"]
        UI_Owner["Owner CRM & KPI Dashboard"]
        UI_Admin["Admin Moderation Console"]
        UI_Enquiry["OTP Enquiry Modal"]
    end

    subgraph API["Backend API Layer (FastAPI + Pydantic v2)"]
        Router_Auth["/api/auth (JWT & OTP)"]
        Router_Props["/api/properties (CRUD & Search)"]
        Router_Enq["/api/enquiries (Lead Pipeline)"]
        Router_Plans["/api/plans (Razorpay Subscriptions)"]
        Router_Admin["/api/admin (Stats & Moderation)"]
        Router_Misc["/api/cities & /api/amenities"]
    end

    subgraph DB["Data & Storage Layer"]
        MongoDB[("MongoDB (Async Motor Driver)")]
        Indexes["Optimized Partial & Compound Indexes"]
    end

    subgraph Payments["Payment Gateway"]
        Razorpay["Razorpay API (Mock / Live)"]
    end

    UI_Home --> Router_Props
    UI_Home --> Router_Misc
    UI_Enquiry --> Router_Auth
    UI_Enquiry --> Router_Enq
    UI_Post --> Router_Props
    UI_Owner --> Router_Enq
    UI_Owner --> Router_Plans
    UI_Admin --> Router_Admin

    Router_Auth --> MongoDB
    Router_Props --> MongoDB
    Router_Enq --> MongoDB
    Router_Plans --> Razorpay
    Router_Plans --> MongoDB
    Router_Admin --> MongoDB
    MongoDB --- Indexes
Loading

πŸ› οΈ Technology Stack

Domain Technology / Library Description
Frontend Framework React 19 + React Router 7 Modern single-page application architecture
Styling & UI Tailwind CSS 3.4 + Shadcn UI Modern accessible component primitives & custom design system
Animations & Icons Framer Motion + Lucide React Smooth 150-250ms interactive micro-interactions
Data Fetching Axios + TanStack Query (React Query) Optimistic UI updates, caching, and state synchronization
Notifications Sonner Polished toast notifications and alert cues
Backend Framework FastAPI 0.110+ High-performance asynchronous Python API framework
Database MongoDB + Motor (AsyncIOMotor) NoSQL document storage with high-performance querying
Data Validation Pydantic v2 Strict schema serialization and payload validation
Security & Auth PyJWT + Passlib (Bcrypt) Stateless JWT authentication with role-based access control
Payments Razorpay SDK Integrated checkout flow with built-in sandbox mock mode
Testing Pytest + Playwright Automated unit, integration, and end-to-end test coverage

πŸš€ Quick Start

πŸ“‹ Prerequisites

Make sure you have the following installed on your machine:

  • Node.js (v18.0 or higher) & npm / yarn
  • Python (v3.10 or higher)
  • MongoDB (Local instance running at mongodb://localhost:27017 or MongoDB Atlas URI)

1️⃣ Clone the Repository

git clone https://github.com/your-username/RentPerfect.git
cd RentPerfect

2️⃣ Backend Setup

  1. Navigate to the backend directory:

    cd backend
  2. Create and activate a Python virtual environment:

    # Windows (PowerShell)
    python -m venv venv
    .\venv\Scripts\Activate.ps1
    
    # macOS / Linux
    python3 -m venv venv
    source venv/bin/activate
  3. Install dependencies:

    pip install -r requirements.txt
  4. Configure environment variables:

    cp .env.example .env

    (Review and update .env if your MongoDB URI or port is customized)

  5. Start the FastAPI server:

    uvicorn server:app --host 0.0.0.0 --port 8000 --reload

    The API will start at http://localhost:8000 (API Docs available at http://localhost:8000/docs).


3️⃣ Frontend Setup

  1. Open a new terminal and navigate to the frontend directory:
    cd frontend
  2. Install frontend dependencies:
    npm install --legacy-peer-deps
    # or
    yarn install
  3. Configure environment variables:
    cp .env.example .env
  4. Start the React development server:
    npm start
    # or
    yarn start
    The app will automatically open at http://localhost:3000.

βš™οΈ Environment Variables

🐍 Backend (backend/.env)

Variable Default Value Description
MONGO_URL mongodb://localhost:27017 MongoDB connection connection string
DB_NAME rentperfect_db Target MongoDB database name
JWT_SECRET super-secret-jwt-key-... Secret key used for signing JWT auth tokens
JWT_ALGO HS256 Algorithm for token encryption
CORS_ORIGINS http://localhost:3000,... Comma-separated list of allowed frontend origins
RAZORPAY_KEY_ID rzp_test_mock_key Razorpay Key ID (keeps mock mode if left default)
RAZORPAY_KEY_SECRET mock_secret_key Razorpay Key Secret
ADMIN_EMAIL admin@rentperfect.in Initial seeded Administrator email
ADMIN_PASSWORD Admin@123 Initial seeded Administrator password
DEMO_OWNER_EMAIL owner@rentperfect.in Pre-seeded Property Owner email
DEMO_OWNER_PASSWORD Owner@123 Pre-seeded Property Owner password

βš›οΈ Frontend (frontend/.env)

Variable Default Value Description
REACT_APP_BACKEND_URL http://localhost:8000 Backend API base URL
PORT 3000 Local development port
ENABLE_HEALTH_CHECK true Enables built-in dev health endpoints

πŸ”‘ Pre-Seeded Demo Accounts

The backend automatically seeds test credentials and 20+ realistic listings on first startup:

Role Email / Identity Password / OTP Access & Capabilities
πŸ›‘οΈ Administrator admin@rentperfect.in Admin@123 Full admin moderation panel, revenue statistics, property boost controls
🏒 Property Owner owner@rentperfect.in Owner@123 Owner CRM, 8-step posting wizard, subscription management
πŸ‘€ Demo Tenant Any phone number (e.g. 9876543210) Auto-displayed Mock OTP Auto-account creation, enquiry tracking, saved properties

πŸ“– API Endpoints Summary

Method Endpoint Description Auth Required
POST /api/auth/register Register a new property owner No
POST /api/auth/login Email/Password login for owners & admins No
POST /api/auth/otp/send Request OTP for tenant lead generation No
POST /api/auth/otp/verify Verify OTP & receive tenant JWT token No
GET /api/properties List & search properties with query filters No
POST /api/properties Create a new property listing Owner / Admin
GET /api/properties/{id} Retrieve comprehensive property details No
POST /api/enquiries Submit tenant enquiry with custom Q&A Optional (Auto-tenant)
GET /api/enquiries/owner Retrieve incoming leads for logged-in owner Owner
PATCH /api/enquiries/{id}/status Update enquiry status (accepted, visited, etc.) Owner
GET /api/plans Retrieve subscription plans & Razorpay key No
POST /api/plans/create-order Generate Razorpay order for plan upgrade Owner
GET /api/admin/stats Retrieve platform-wide KPIs & revenue metrics Admin

πŸ§ͺ Running Automated Tests

Run the full backend test suite to verify endpoints and security rules:

cd backend
pytest -v

πŸ—ΊοΈ Roadmap & Future Enhancements

  • πŸ€– AI-Powered Listing Descriptions: Integration with Gemini/Claude for instant SEO-optimized descriptions.
  • πŸ“ Interactive Map View: Leaflet / Mapbox cluster map view for location-based search.
  • πŸ’¬ In-App Messaging & WhatsApp Webhooks: Direct chat channel between verified tenants and property owners.
  • πŸ“„ Digital Rent Agreements: E-signature generation and Aadhaar-based digital KYC verification.
  • πŸ“… Self-Service Visit Scheduling: Integrated calendar for scheduling in-person or virtual property tours.

🀝 Contributing

Contributions, feature requests, and suggestions are welcome!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'feat: Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“„ License

Distributed under the MIT License. See LICENSE for more details.

Built with ❀️ by passionate developers for renters and property owners everywhere.

About

Modern, full-stack rental marketplace platform. Zero brokerage, verified listings, 8-step owner wizard, instant OTP lead generation, and owner CRM.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages