Skip to content

Smart-Rent is a comprehensive property rental platform built with the MERN stack. It connects property owners with potential guests, creating a seamless experience for listing, discovering, and booking accommodations.

License

MIT, MIT licenses found

Licenses found

MIT
LICENSE
MIT
LICENSE.md
Notifications You must be signed in to change notification settings

hitesh-kumar123/Smart-Rent-System

🏡 Smart Rent System

Smart-Rent Banner

Revolutionizing the rental experience through technology and community

SWoC 2025 Contributors Stars Issues License Last Commit

🚀 Live Demo📖 Documentation🐛 Report Bug✨ Request Feature


📋 Table of Contents

Click to expand

🎯 Vision

Smart Rent System is more than a rental platform—it's a movement towards smarter, more transparent property transactions. Built with modern web technologies and best practices, we're creating a space where property owners and travelers connect seamlessly.

🌍 Our Mission

Democratize property rentals by building an open-source platform that:
✓ Prioritizes user experience and security
✓ Fosters trust through verified reviews
✓ Empowers developers to learn and contribute
✓ Creates economic opportunities for hosts worldwide

🎓 Learning Hub

As part of Social Winter of Code (SWoC) 2026, Smart Rent System serves as a comprehensive learning resource for developers mastering the MERN stack. Dive into real-world implementations of:

  • RESTful API Design with Express.js
  • State Management using Redux Toolkit
  • Real-time Communication with WebSockets
  • Cloud Storage integration with Cloudinary
  • Authentication Flows including OAuth 2.0
  • Database Modeling for complex relationships

✨ Features

🔐 Secure Authentication

  • JWT-based session management
  • Google OAuth integration
  • Password encryption with bcrypt
  • Role-based access control (RBAC)

🏠 Smart Listings

  • Rich media uploads (Cloudinary CDN)
  • Dynamic pricing algorithms
  • Amenities and house rules editor
  • Availability calendar integration

🗺️ Map Integration

  • Interactive Leaflet.js maps
  • Geolocation-based search
  • Radius filtering
  • Custom map markers

💬 Real-Time Chat

  • Socket.io powered messaging
  • Typing indicators
  • Read receipts
  • Message history persistence

📊 Analytics Dashboard

  • Booking statistics
  • Revenue tracking
  • Occupancy rates
  • User engagement metrics

Review System

  • Verified guest reviews
  • Rating aggregation
  • Photo reviews
  • Response management

🛠️ Technology Stack

Frontend Arsenal

React Redux TailwindCSS React Router

Backend Infrastructure

Node.js Express Socket.io JWT

Database & Storage

MongoDB Mongoose Cloudinary

Development Tools

Git Postman ESLint Prettier


📸 Screenshots

🖼️ View Application Screenshots

Landing Page

Landing Page

Property Listings

Property Grid

Interactive Map

Map View

Real-Time Chat

Chat Interface


🚀 Quick Start

Prerequisites

Before you begin, ensure you have the following installed:

node -v  # v16.0.0 or higher
npm -v   # v8.0.0 or higher

You'll also need:

  • MongoDB (local installation or Atlas URI)
  • Cloudinary Account (free tier available)
  • Git for version control

Installation

1. Clone the Repository

git clone https://github.com/hitesh-kumar123/Smart-Rent-System.git

2. Backend Setup

cd backend
npm install

Create .env file in the backend directory:

# Server Configuration
PORT=8000
NODE_ENV=development

# Database
MONGODB_URI=mongodb://localhost:27017/smartrent

# Authentication
JWT_SECRET=your_super_secret_jwt_key_change_in_production
JWT_EXPIRE=7d

# Cloudinary Configuration
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_KEY=your_api_key
CLOUDINARY_SECRET=your_api_secret

# Google OAuth (Optional)
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret

3. Frontend Setup

cd ../frontend
npm install

Create .env file in the frontend directory:

REACT_APP_API_URL=http://localhost:8000/api
REACT_APP_SOCKET_URL=http://localhost:8000

4. Launch Application

Terminal 1 - Backend:

cd backend
npm run server

Terminal 2 - Frontend:

cd frontend
npm run dev

5. Access the Application

Open your browser and navigate to:

http://localhost:3000

🎉 Congratulations! Smart-Rent is now running locally.


📚 Project Structure

Smart-Rent/
├── backend/
│   ├── config/              # Configuration files
│   ├── controllers/         # Request handlers
│   ├── middleware/          # Custom middleware
│   ├── models/              # Mongoose schemas
│   ├── routes/              # API routes
│   ├── utils/               # Helper functions
│   └── server.js            # Entry point
│
├── frontend/
│   ├── public/              # Static assets
│   ├── src/
│   │   ├── components/      # Reusable components
│   │   ├── pages/           # Page components
│   │   ├── redux/           # State management
│   │   ├── services/        # API services
│   │   ├── utils/           # Utility functions
│   │   └── App.js           # Root component
│   └── package.json
│
├── assets/                  # Project assets
├── docs/                    # Documentation
├── .gitignore
├── CONTRIBUTING.md
├── LICENSE
└── README.md

🔧 Configuration

Environment Variables Reference

Variable Description Required Default
PORT Backend server port 8000
MONGO_URL MongoDB connection string -
JWT_SECRET Secret key for JWT signing -
CLOUDINARY_CLOUD_NAME Cloudinary cloud name -
CLOUDINARY_KEY Cloudinary API key -
CLOUDINARY_SECRET Cloudinary API secret -

API Documentation

Once the backend is running, access API documentation at:

http://localhost:8000/api-docs

🐳 Docker Setup (Recommended)

This project supports Docker to simplify local development, reduce setup issues, and ensure a consistent development environment across systems.

Prerequisites

Make sure you have the following installed on your system:

  • Docker (v20+ recommended)
  • Docker Compose (v2+)

Verify installation:

docker --version
docker compose version

Clone the repository

git clone https://github.com/hitesh-kumar123/Smart-Rent-System.git
cd Smart-Rent-System

📁 Project Structure (Docker)

Docker uses a single .env file at the project root.

Smart-Rent-System/
├── backend/
│   └── Dockerfile         # Backend container
├── frontend/
│   └── Dockerfile         # Frontend container
├── docker-compose.yml     # Docker orchestration
├── .env                   # Required for Docker
└── README.md

🔐 Environment Variables

When using Docker, only one .env file is required at the root.

Create a .env file in the project root with the following content:

# Backend
PORT=8000
NODE_ENV=development
MONGODB_URI=mongodb://mongodb:27017/smartrent
JWT_SECRET=your_jwt_secret_here

# Optional (email service)
# RESEND_API_KEY=your_resend_key_here

# Frontend
REACT_APP_API_URL=http://localhost:8000

🚀 Running the Application with Docker

From the project root, run:

docker compose up --build

This will:

  • Build backend and frontend images
  • Start MongoDB
  • Start backend and frontend services
  • Automatically link all services together

🌐 Accessing the Application

Once the containers are running:

Frontend:

http://localhost:3000

Backend API:

http://localhost:8000

MongoDB:

mongodb://localhost:27017

🛑 Stopping the Application

To stop and remove all containers:

docker compose down

To stop containers but keep them:

docker compose stop

🔄 Rebuilding Containers (After Code Changes)

If you modify dependencies or Docker files:

docker compose up --build

🤝 Contributing

We ❤️ contributions! Smart-Rent is an open-source project built for Social Winter of Code (SWoC) 2026.

How to Contribute

1. Find an Issue

  • Browse existing issues
  • Look for labels: good first issue, help wanted, enhancement

2. Fork & Create Branch

# Fork the repository (click Fork button on GitHub)

# Clone your fork
git clone https://github.com/hitesh-kumar123/Smart-Rent-System.git
# Create a feature branch
git checkout -b feature/amazing-feature

3. Make Changes

# Make your changes
# Follow our coding standards (ESLint + Prettier)

# Test your changes
npm test

4. Commit & Push

# Commit with descriptive message
git commit -m "Add: Implement amazing feature"

# Push to your fork
git push origin feature/amazing-feature

5. Create Pull Request

  • Go to your fork on GitHub
  • Click "New Pull Request"
  • Fill out the PR template
  • Wait for review 🎉

Contribution Guidelines

📖 Read our CONTRIBUTING.md for detailed guidelines including:

  • Code style and formatting
  • Commit message conventions
  • Testing requirements
  • Documentation standards

Development Workflow

graph LR
    A[Fork Repo] --> B[Clone Locally]
    B --> C[Create Branch]
    C --> D[Make Changes]
    D --> E[Run Tests]
    E --> F[Commit]
    F --> G[Push to Fork]
    G --> H[Create PR]
    H --> I[Code Review]
    I --> J[Merge]
Loading

🗺️ Roadmap

✅ Phase 1 - Foundation (Completed)

  • Project scaffolding and architecture
  • User authentication system
  • Basic CRUD operations for listings
  • Responsive UI with Tailwind CSS

🚧 Phase 2 - Core Features (In Progress)

  • Map integration with Leaflet.js
  • [] Real-time chat with Socket.io
  • Advanced search and filtering
  • Booking calendar with conflict resolution
  • Review and rating system

🔮 Phase 3 - Advanced Features (Planned)

  • Payment gateway integration (Stripe/Razorpay)
  • Email notifications (SendGrid/Nodemailer)
  • Admin dashboard with analytics
  • Multi-language support (i18n)
  • Progressive Web App (PWA)

🌟 Phase 4 - Optimization (Future)

  • Performance optimization (lazy loading, code splitting)
  • SEO optimization
  • Automated testing (Jest, Cypress)
  • CI/CD pipeline (GitHub Actions)
  • Mobile native apps (React Native)

Want to influence the roadmap? Share your ideas


👥 Community

🌟 Project Admin

Hitesh Kumar
Hitesh Kumar



🏆 Top Contributors


⭐ Stargazers


🍴 Forkers


❤️ Support the Project

  



💙 If you like this project, consider starring ⭐ and forking 🍴 it to support the community!

💬 Join the Conversation

Discord Linkedin GitHub


📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

MIT License - Copyright (c) 2025 Smart Rent System Contributors
Permission is hereby granted, free of charge, to any person obtaining a copy...

🙏 Acknowledgments

Special thanks to:


🌟 Star History

Star History Chart

📊 Repository Stats

Repository Size Lines of Code Top Language


Made with ❤️ by the Smart Rent System Community

If this project helped you, give it a ⭐️!

⬆ Back to Top

About

Smart-Rent is a comprehensive property rental platform built with the MERN stack. It connects property owners with potential guests, creating a seamless experience for listing, discovering, and booking accommodations.

Topics

Resources

License

MIT, MIT licenses found

Licenses found

MIT
LICENSE
MIT
LICENSE.md

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages