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.
- Secure Register/Login system
- JWT-based authentication
- Password hashing using Bcrypt
- Protected routes & user sessions
- Change password & delete account
- Add rental items with image uploads (Cloudinary)
- Set pricing, category, city/location
- Manage your own listings
- Browse & search with autocomplete
- Trie-based autocomplete search
- Filter by category
- Binary Search price range filter
- Priority Queue recommendation engine
- Select rental dates
- Automatic total price calculation
- Booking request workflow
- Booking history tracking
- Razorpay payment integration
- Test mode support
- Payment status tracking
- Booking request email to owner
- Booking confirmation/rejection email to renter
- Powered by Resend
- Edit profile with avatar upload
- Public profile page
- Stats β items listed, bookings made, rating
- Member since date
- Renter Dashboard β view & track bookings
- Owner Dashboard β confirm/reject booking requests
- Manage listings
- Save items for later
- Remove from wishlist
- Dedicated wishlist page
- Dark mode toggle
- Pagination
- Responsive design
- Toast notifications
- 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
- 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
- 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
- React.js
- React Router DOM
- Axios
- React Hot Toast
- React Icons
- Node.js
- Express.js
- MongoDB Atlas
- Mongoose
- JWT Authentication
- Bcrypt.js
- Razorpay
- Resend (Email)
- Cloudinary (Image Upload)
- Vercel (Frontend)
- Render (Backend)
- MongoDB Atlas (Database)
rentease/ β βββ backend/ β βββ config/ β βββ controllers/ β βββ middleware/ β βββ models/ β βββ routes/ β βββ utils/ β β βββ trie.js β β βββ binarySearch.js β β βββ priorityQueue.js β βββ server.js β βββ frontend/ β βββ src/ β βββ components/ β βββ context/ β βββ pages/ β βββ services/ β βββ README.md
- Node.js
- npm
- MongoDB Atlas Account
- Git
git clone https://github.com/harshskarki/rentease.git
cd rentease/backend
npm install
cp .env.example .env
npm run devcd ../frontend
npm install
npm startPORT=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
- POST /api/auth/register
- POST /api/auth/login
- GET /api/auth/me
- GET /api/items
- POST /api/items
- GET /api/items/:id
- PUT /api/items/:id
- DELETE /api/items/:id
- POST /api/bookings
- GET /api/bookings/my-bookings
- GET /api/bookings/owner-bookings
- PUT /api/bookings/:id/status
- GET /api/search/autocomplete?q= (Trie)
- GET /api/items?minPrice=&maxPrice= (Binary Search)
- GET /api/recommendations (Priority Queue)
- 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
Harshvardhan Singh Karki B.Tech CSE β 4th Year Student
Skills:
- Full Stack Development
- DSA & Algorithms
- AI Applications
- Modern UI/UX
- Scalable Web Apps
If you liked this project:
- β Star the repository
- π΄ Fork the project
- π οΈ Contribute improvements
This project is licensed under the MIT License.
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.