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
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.
| π Discovery & Search | π Owner Lead Pipeline |
|---|---|
| Dynamic locality autocomplete, multi-facet filters & budget sliders | Kanban-style lead status tracking with phone unmasking on accept |
| π‘ 8-Step Listing Wizard | π‘οΈ Verified Trust Shield |
|---|---|
| Step-by-step guidance with custom applicant qualification questions | Government ID & verified phone indicators for maximum safety |
- 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.
- 8-Step Guided Posting Wizard:
- Category & Property Type Selection
- Details & Financials (Rent, Security Deposit, Maintenance, Carpet Area, Floor)
- Location & Landmark Mapping
- Amenities Checklist (Power Backup, Lift, Parking, Security, Gym, etc.)
- House Rules & Preferences (Bachelors, Families, Pets, Non-veg, Smoking)
- Photo Gallery Showcase
- Custom Tenant Screening Questions (e.g., "Company name?", "Expected move-in date?")
- 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).
- 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.
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
| 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 |
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:27017or MongoDB Atlas URI)
git clone https://github.com/your-username/RentPerfect.git
cd RentPerfect-
Navigate to the backend directory:
cd backend -
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
-
Install dependencies:
pip install -r requirements.txt
-
Configure environment variables:
cp .env.example .env
(Review and update
.envif your MongoDB URI or port is customized) -
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 athttp://localhost:8000/docs).
- Open a new terminal and navigate to the frontend directory:
cd frontend - Install frontend dependencies:
npm install --legacy-peer-deps # or yarn install - Configure environment variables:
cp .env.example .env
- Start the React development server:
The app will automatically open at
npm start # or yarn starthttp://localhost:3000.
| 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 |
| 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 |
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 |
| 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 |
Run the full backend test suite to verify endpoints and security rules:
cd backend
pytest -v- π€ 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.
Contributions, feature requests, and suggestions are welcome!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'feat: Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more details.