Skip to content

harshskarki/rentease

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

49 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ RentEase β€” Full Stack Rental Marketplace Platform

A modern full-stack rental marketplace where users can list items for rent, discover products nearby, and manage bookings seamlessly. Built with DSA algorithms integrated for performance optimization.

🌐 Live Demo

Frontend Backend API

✨ Features

πŸ” Authentication System

  • Secure Register/Login system
  • JWT-based authentication
  • Password hashing using Bcrypt
  • Protected routes & user sessions
  • Change password & delete account

🏷️ Rental Listings

  • Add rental items with image uploads (Cloudinary)
  • Set pricing, category, city/location
  • Manage your own listings
  • Browse & search with autocomplete

πŸ” Smart Search & Filtering

  • Trie-based autocomplete search
  • Filter by category
  • Binary Search price range filter
  • Priority Queue recommendation engine

πŸ“… Booking System

  • Select rental dates
  • Automatic total price calculation
  • Booking request workflow
  • Booking history tracking

πŸ’³ Payments

  • Razorpay payment integration
  • Test mode support
  • Payment status tracking

πŸ“§ Email Notifications

  • Booking request email to owner
  • Booking confirmation/rejection email to renter
  • Powered by Resend

πŸ‘€ User Profiles

  • Edit profile with avatar upload
  • Public profile page
  • Stats β€” items listed, bookings made, rating
  • Member since date

πŸ“Š Dashboard

  • Renter Dashboard β€” view & track bookings
  • Owner Dashboard β€” confirm/reject booking requests
  • Manage listings

❀️ Wishlist

  • Save items for later
  • Remove from wishlist
  • Dedicated wishlist page

🎨 UI/UX

  • Dark mode toggle
  • Pagination
  • Responsive design
  • Toast notifications

🧠 DSA Implementations

1. Trie β€” Autocomplete Search

  • Built Trie data structure from scratch
  • Each node stores references to matching items
  • O(m) search time where m = length of search prefix
  • Used for instant autocomplete suggestions in search box

2. Binary Search β€” Price Range Filter

  • Implemented lowerBound and upperBound binary search variants
  • Items sorted by price, binary search finds exact range
  • O(log n) time complexity vs O(n) linear scan
  • Used for efficient price range filtering on home page

3. Max Heap / Priority Queue β€” Recommendation Engine

  • Built Max Heap from scratch with bubbleUp and bubbleDown
  • Items scored by weighted formula: (reviews Γ— 3) + (rating Γ— 2) + bookings
  • Extracts top-K popular items in O(K log n) time
  • Used for "Popular Items" section on home page

πŸ› οΈ Tech Stack

Frontend

  • React.js
  • React Router DOM
  • Axios
  • React Hot Toast
  • React Icons

Backend

  • Node.js
  • Express.js
  • MongoDB Atlas
  • Mongoose
  • JWT Authentication
  • Bcrypt.js
  • Razorpay
  • Resend (Email)
  • Cloudinary (Image Upload)

Deployment

  • Vercel (Frontend)
  • Render (Backend)
  • MongoDB Atlas (Database)

πŸ“‚ Project Structure

rentease/ β”‚ β”œβ”€β”€ backend/ β”‚ β”œβ”€β”€ config/ β”‚ β”œβ”€β”€ controllers/ β”‚ β”œβ”€β”€ middleware/ β”‚ β”œβ”€β”€ models/ β”‚ β”œβ”€β”€ routes/ β”‚ β”œβ”€β”€ utils/ β”‚ β”‚ β”œβ”€β”€ trie.js β”‚ β”‚ β”œβ”€β”€ binarySearch.js β”‚ β”‚ └── priorityQueue.js β”‚ └── server.js β”‚ β”œβ”€β”€ frontend/ β”‚ └── src/ β”‚ β”œβ”€β”€ components/ β”‚ β”œβ”€β”€ context/ β”‚ β”œβ”€β”€ pages/ β”‚ └── services/ β”‚ └── README.md

βš™οΈ Installation & Setup

Prerequisites

  • Node.js
  • npm
  • MongoDB Atlas Account
  • Git

Backend Setup

git clone https://github.com/harshskarki/rentease.git
cd rentease/backend
npm install
cp .env.example .env
npm run dev

Frontend Setup

cd ../frontend
npm install
npm start

Environment Variables

PORT=5000

MONGO_URI=your_mongodb_connection

JWT_SECRET=your_secret_key

CLOUDINARY_CLOUD_NAME=your_cloud_name

CLOUDINARY_API_KEY=your_api_key

CLOUDINARY_API_SECRET=your_api_secret

RAZORPAY_KEY_ID=your_razorpay_key

RAZORPAY_KEY_SECRET=your_razorpay_secret

RESEND_API_KEY=your_resend_key

CLIENT_URL=http://localhost:3000

πŸ”— API Endpoints

Auth Routes

  • POST /api/auth/register
  • POST /api/auth/login
  • GET /api/auth/me

Item Routes

  • GET /api/items
  • POST /api/items
  • GET /api/items/:id
  • PUT /api/items/:id
  • DELETE /api/items/:id

Booking Routes

  • POST /api/bookings
  • GET /api/bookings/my-bookings
  • GET /api/bookings/owner-bookings
  • PUT /api/bookings/:id/status

DSA Routes

  • GET /api/search/autocomplete?q= (Trie)
  • GET /api/items?minPrice=&maxPrice= (Binary Search)
  • GET /api/recommendations (Priority Queue)

πŸ“ˆ Performance Optimizations

  • Trie for O(m) search
  • Binary Search for O(log n) price filtering
  • Priority Queue for O(K log n) recommendations
  • Pagination for efficient data loading
  • JWT session persistence
  • Cloudinary CDN for images

πŸ‘¨β€πŸ’» Developer

Harshvardhan Singh Karki B.Tech CSE β€” 4th Year Student

Skills:

  • Full Stack Development
  • DSA & Algorithms
  • AI Applications
  • Modern UI/UX
  • Scalable Web Apps

⭐ Support

If you liked this project:

  • ⭐ Star the repository
  • 🍴 Fork the project
  • πŸ› οΈ Contribute improvements

πŸ“œ License

This project is licensed under the MIT License.

🏁 Final Note

RentEase demonstrates full-stack development skills with real DSA implementations β€” Trie, Binary Search, and Max Heap β€” integrated into a production-ready application with payments, email notifications, image uploads, and deployment.

About

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors