Skip to content

Dev-muse/dwelo-property

Repository files navigation

Dwelo Logo

Modern Property Rental & Management Solution

Next.js React MongoDB Tailwind CSS


🏒 About Dwelo Property

Dwelo Property is a comprehensive property rental and management platform designed to streamline the property search and communication process. Built with modern web technologies, it provides property owners and renters with an intuitive interface to manage listings, communicate seamlessly, and discover properties with ease.

✨ Features

🏠 Property Management

  • Advanced Property Listings - Create, edit, and manage property listings with detailed information
  • Rich Media Support - Upload multiple property images with Cloudinary integration
  • Interactive Maps - Visualize property locations using Mapbox GL integration
  • Property Search - Advanced search and filtering capabilities

πŸ’¬ Communication

  • Direct Messaging - Built-in messaging system for property inquiries
  • Real-time Notifications - Stay updated with message status and notifications
  • Message Management - Mark messages as read/unread and manage conversations

πŸ‘€ User Features

  • Secure Authentication - NextAuth integration for secure user management
  • User Profiles - Personalized user profiles with property management
  • Bookmark Properties - Save favorite properties for quick access
  • Social Sharing - Share properties across social media platforms

🎨 Modern UI/UX

  • Responsive Design - Mobile-first approach with Tailwind CSS
  • Interactive Components - Modern UI components with Headless UI
  • Loading States - Smooth loading indicators and skeleton screens
  • Error Handling - Comprehensive error boundaries and user feedback

πŸ› οΈ Tech Stack

Frontend

Backend & Database

Integrations

πŸ“‹ Prerequisites

Before you begin, ensure you have the following installed:

  • Node.js (v18 or higher)
  • npm, yarn, pnpm, or bun
  • MongoDB (local installation or MongoDB Atlas account)
  • Git

πŸš€ Getting Started

1. Clone the Repository

git clone https://github.com/Dev-muse/dwelo-property.git
cd dwelo-property

2. Install Dependencies

npm install
# or
yarn install
# or
pnpm install

3. Environment Configuration

Create a .env.local file in the root directory with the following variables:

# MongoDB
MONGODB_URI=your_mongodb_connection_string

# NextAuth
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=your_nextauth_secret

# Google OAuth (if using)
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret

# Cloudinary
CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name
CLOUDINARY_API_KEY=your_cloudinary_api_key
CLOUDINARY_API_SECRET=your_cloudinary_api_secret

# Mapbox
NEXT_PUBLIC_MAPBOX_TOKEN=your_mapbox_access_token

# Google Geocoding (if using)
NEXT_PUBLIC_GOOGLE_GEOCODING_API_KEY=your_google_geocoding_api_key

4. Run the Development Server

npm run dev
# or
yarn dev
# or
pnpm dev

Open http://localhost:3000 in your browser to see the application.

πŸ“ Project Structure

dwelo-property/
β”œβ”€β”€ app/                      # Next.js App Router
β”‚   β”œβ”€β”€ actions/             # Server actions
β”‚   β”œβ”€β”€ api/                 # API routes
β”‚   β”œβ”€β”€ messages/            # Messages page
β”‚   β”œβ”€β”€ properties/          # Property pages
β”‚   β”œβ”€β”€ profile/             # User profile
β”‚   β”œβ”€β”€ layout.jsx           # Root layout
β”‚   └── page.jsx             # Home page
β”œβ”€β”€ components/              # React components
β”‚   β”œβ”€β”€ AuthProvider.jsx    # Authentication provider
β”‚   β”œβ”€β”€ MessageCard.jsx      # Message display component
β”‚   β”œβ”€β”€ PropertyCard.jsx     # Property card component
β”‚   β”œβ”€β”€ PropertyContactForm.jsx  # Contact form
β”‚   β”œβ”€β”€ SubmitMessageBtn.jsx # Message submit button
β”‚   └── ...                  # Other components
β”œβ”€β”€ config/                  # Configuration files
β”œβ”€β”€ models/                  # MongoDB models
β”œβ”€β”€ public/                  # Static assets
β”œβ”€β”€ utils/                   # Utility functions
└── .env.local              # Environment variables (create this)

🎯 Usage

For Property Seekers

  1. Browse Properties - Explore available properties on the home page
  2. Search & Filter - Use advanced search to find properties matching your criteria
  3. View Details - Click on any property to see full details, images, and location
  4. Contact Owner - Send messages directly to property owners
  5. Bookmark - Save your favorite properties for later

For Property Owners

  1. Create Account - Sign up using Google OAuth or email
  2. Add Property - List your properties with detailed information and images
  3. Manage Listings - Edit or delete your property listings
  4. Respond to Inquiries - Manage incoming messages from potential renters
  5. Track Engagement - Monitor property views and interactions

πŸ—οΈ Building for Production

# Build the application
npm run build

# Start production server
npm start

🌐 Deployment

The easiest way to deploy your Dwelo Property application is to use the Vercel Platform:

  1. Push your code to GitHub
  2. Import your repository to Vercel
  3. Configure environment variables
  4. Deploy!

For detailed deployment instructions, check out the Next.js deployment documentation.

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“„ License

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

πŸ™ Acknowledgments


Made with ❀️ by the Dwelo Team

About

Property rental website - fullstack nextjs mongodb, Cloudinary, google next auth, mapbox maps and more

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors