Rentpy is a rental marketplace platform designed to help users find and book rooms or properties for short-term and long-term stays. It offers an intuitive interface, advanced search filters, secure payments, and a smooth booking experience.
- Property Listings: Browse all available properties with images, pricing, and rental type.
- Search & Filters: Search properties by location, check-in/check-out dates, rental type, and other criteria.
- Property Details: View full property information including amenities, pricing, and map location.
- Map Integration: Google Maps integration to display property locations.
- Payments: Secure Razorpay integration for bookings and rental payments.
- Authentication: User login and registration for secure access.
- Responsive UI: Fully responsive frontend using React and Tailwind CSS.
| Layer | Technology |
|---|---|
| Frontend | React, TypeScript, Tailwind CSS, @react-google-maps/api (Deployed on Vercel) |
| Backend | Node.js, Express, TypeScript (Deployed on Render) |
| Database | PostgreSQL |
| APIs & Integrations | Google Maps Services (autocomplete, geocoding, directions), Razorpay for payments |
- Built with React + TypeScript and styled with Tailwind CSS.
- Components for property display, filters, and map visualization.
- Communicates with backend via REST APIs.
- Deployment: Vercel for fast and reliable hosting.
- Node.js + Express REST API with endpoints:
/property/allβ Fetch all properties/property/searchβ Fetch filtered properties
- Connected to PostgreSQL for property and user data.
- Handles authentication, property filtering, and business logic.
- Deployment: Render with secure environment variables.
Follow these steps to run Rentpy on your local machine.
- Node.js (v16 or higher recommended)
- npm or yarn
- PostgreSQL database
- Git
git clone https://github.com/Goutamchoudhary907/Room-Renting.git
cd Room-RentingNavigate to backend folder
cd backendInstall dependencies
npm installtouch .envAdd your credentials to .env :
env
BACKEND_URL="http://localhost:3000"
FRONTEND_URL="http://localhost:5173"
DATABASE_URL="postgresql://username:password@localhost:5432/dbname"
JWT_SECRET="your_jwt_secret"
SENDGRID_API_KEY="your_sendgrid_api_key"
CLOUDINARY_CLOUD_NAME="your_cloudinary_name"
CLOUDINARY_API_KEY="your_cloudinary_api_key"
CLOUDINARY_API_SECRET="your_cloudinary_api_secret"
GOOGLE_CLIENT_ID="your_google_client_id"
GOOGLE_MAPS_API_KEY="your_google_maps_api_key"
RAZORPAY_API_KEY="your_razorpay_key"
RAZORPAY_API_SECRET="your_razorpay_secret"
CRON_SECRET="your_cron_secret"Start the backend server
npm run devBackend will run on: http://localhost:3000
Navigate to frontend folder
cd ../frontendInstall dependencies
npm installtouch .envAdd your credentials to .env :
env
VITE_BACKEND_URL="http://localhost:3000"
VITE_GOOGLE_CLIENT_ID="your_google_client_id"
VITE_GOOGLE_MAPS_API_KEY="your_google_maps_api_key"
VITE_FRONTEND_URL="http://localhost:5173"
Start the frontend server
npm run devOpen your browser at: http://localhost:5173
Project Structure backend/ - Contains all backend code (Node.js/Express)
frontend/ - Contains frontend React application
- Frontend: https://rentpy.vercel.app
- Backend API: https://rentpy-backend.onrender.com