HomiStay is a modern house renting platform that allows users to browse, book, and manage property rentals. The platform features a user-friendly interface with various property categories and detailed listings.
- Browse properties by category (Beach, Mountain, City, Countryside)
- Search properties by location and type
- View detailed property information including:
- High-quality property images
- Amenities and facilities
- Guest capacity
- Pricing details
- Location information
- Book properties with date selection
- View booking history and trips
- Create wishlists for favorite properties
- List properties with detailed information
- Upload multiple property images
- Set pricing and availability
- Manage property listings
- Track bookings and reservations
- View earnings and analytics
- React.js
- Redux for state management
- SCSS for styling
- React Router for navigation
- React Date Range for booking calendar
- Node.js
- Express.js
- MongoDB with Mongoose
- JWT for authentication
- Multer for file uploads
- MongoDB
- Mongoose ODM
HomiStay/ βββ client/ # Frontend React application β βββ public/ # Static files β β βββ components/ # Reusable UI components β β βββ pages/ # Page components β β βββ redux/ # Redux state management β β βββ styles/ # SCSS styles β β βββ App.js # Main application component β βββ package.json β βββ server/ # Backend Node.js application βββ models/ # MongoDB models βββ routes/ # API routes βββ public/ # Static files and uploads βββ scripts/ # Database seeding scripts βββ index.js # Server entry point - Clone the repository:
git clone https://github.com/yourusername/HomiStay.git cd HomiStay- Install dependencies for both client and server:
# Install server dependencies cd server npm install # Install client dependencies cd ../client npm install-
Set up environment variables:
- Create a
.envfile in the server directory with:
MONGO_URL=mongodb://localhost:27017 - Create a
-
Start MongoDB:
# On macOS brew services start mongodb-community- Run the application:
# Start the server (from server directory) cd server node index.js # Start the client (from client directory) cd client npm startThe application will be available at:
- Frontend: http://localhost:3000
- Backend: http://localhost:3001
To populate the database with sample listings, run:
cd server node scripts/createMultipleListings.js- Beach Properties
- Mountain Properties
- City Properties
- Countryside Properties
- Houses
- Apartments
- Cabins
- Farmhouses
- WiFi
- Pool
- Parking
- Gym
- Fireplace
- Ski Storage
- Doorman
- Farm Access
- Fire Pit
- User Authentication
- Profile Management
- Property Management
- Booking System
- Wishlist Management
- Trip Planning
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- React.js community for the amazing frontend framework
- MongoDB for the flexible database solution
- All contributors who have helped shape this project