Revolutionizing the rental experience through technology and community
🚀 Live Demo • 📖 Documentation • 🐛 Report Bug • ✨ Request Feature
Click to expand
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.
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
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
|
|
Before you begin, ensure you have the following installed:
node -v # v16.0.0 or higher
npm -v # v8.0.0 or higherYou'll also need:
- MongoDB (local installation or Atlas URI)
- Cloudinary Account (free tier available)
- Git for version control
1. Clone the Repository
git clone https://github.com/hitesh-kumar123/Smart-Rent-System.git
2. Backend Setup
cd backend
npm installCreate .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_secret3. Frontend Setup
cd ../frontend
npm installCreate .env file in the frontend directory:
REACT_APP_API_URL=http://localhost:8000/api
REACT_APP_SOCKET_URL=http://localhost:80004. Launch Application
Terminal 1 - Backend:
cd backend
npm run serverTerminal 2 - Frontend:
cd frontend
npm run dev5. Access the Application
Open your browser and navigate to:
http://localhost:3000
🎉 Congratulations! Smart-Rent is now running locally.
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
| 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 | ✅ | - |
Once the backend is running, access API documentation at:
http://localhost:8000/api-docs
This project supports Docker to simplify local development, reduce setup issues, and ensure a consistent development environment across systems.
Make sure you have the following installed on your system:
- Docker (v20+ recommended)
- Docker Compose (v2+)
docker --version
docker compose versiongit clone https://github.com/hitesh-kumar123/Smart-Rent-System.git
cd Smart-Rent-SystemDocker 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
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:8000From 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
Once the containers are running:
Frontend:
http://localhost:3000
Backend API:
http://localhost:8000
MongoDB:
mongodb://localhost:27017
To stop and remove all containers:
docker compose down
To stop containers but keep them:
docker compose stop
If you modify dependencies or Docker files:
docker compose up --build
We ❤️ contributions! Smart-Rent is an open-source project built for Social Winter of Code (SWoC) 2026.
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-feature3. Make Changes
# Make your changes
# Follow our coding standards (ESLint + Prettier)
# Test your changes
npm test4. Commit & Push
# Commit with descriptive message
git commit -m "Add: Implement amazing feature"
# Push to your fork
git push origin feature/amazing-feature5. Create Pull Request
- Go to your fork on GitHub
- Click "New Pull Request"
- Fill out the PR template
- Wait for review 🎉
📖 Read our CONTRIBUTING.md for detailed guidelines including:
- Code style and formatting
- Commit message conventions
- Testing requirements
- Documentation standards
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]
- Project scaffolding and architecture
- User authentication system
- Basic CRUD operations for listings
- Responsive UI with Tailwind CSS
- Map integration with Leaflet.js
- [] Real-time chat with Socket.io
- Advanced search and filtering
- Booking calendar with conflict resolution
- Review and rating system
- Payment gateway integration (Stripe/Razorpay)
- Email notifications (SendGrid/Nodemailer)
- Admin dashboard with analytics
- Multi-language support (i18n)
- Progressive Web App (PWA)
- 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
|
Hitesh Kumar |
💙 If you like this project, consider starring ⭐ and forking 🍴 it to support the community!
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...
Special thanks to:
- Social Winter of Code 2026 for providing this amazing opportunity
- Open Source Community for continuous inspiration
- Contributors who dedicate their time to improve Smart-Rent
- Flaticon for icons
- Cloudinary for image hosting
- MongoDB Atlas for database hosting
Made with ❤️ by the Smart Rent System Community
If this project helped you, give it a ⭐️!





