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.
- 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
- 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
- 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
- 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
- Next.js 14.2.3 - React framework with App Router
- React 18 - UI library
- Tailwind CSS - Utility-first CSS framework
- Headless UI - Unstyled, accessible UI components
- React Icons - Icon library
- MongoDB - NoSQL database
- Mongoose - MongoDB object modeling
- NextAuth.js - Authentication solution
- Cloudinary - Image and video management
- Mapbox GL - Interactive maps
- React Geocode - Geocoding service
- React Toastify - Notification system
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
git clone https://github.com/Dev-muse/dwelo-property.git
cd dwelo-propertynpm install
# or
yarn install
# or
pnpm installCreate 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_keynpm run dev
# or
yarn dev
# or
pnpm devOpen http://localhost:3000 in your browser to see the application.
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)- Browse Properties - Explore available properties on the home page
- Search & Filter - Use advanced search to find properties matching your criteria
- View Details - Click on any property to see full details, images, and location
- Contact Owner - Send messages directly to property owners
- Bookmark - Save your favorite properties for later
- Create Account - Sign up using Google OAuth or email
- Add Property - List your properties with detailed information and images
- Manage Listings - Edit or delete your property listings
- Respond to Inquiries - Manage incoming messages from potential renters
- Track Engagement - Monitor property views and interactions
# Build the application
npm run build
# Start production server
npm startThe easiest way to deploy your Dwelo Property application is to use the Vercel Platform:
- Push your code to GitHub
- Import your repository to Vercel
- Configure environment variables
- Deploy!
For detailed deployment instructions, check out the Next.js deployment documentation.
Contributions are welcome! Please feel free to submit a Pull Request.
- 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.
- Built with Next.js
- Styled with Tailwind CSS
- Maps powered by Mapbox
- Images managed by Cloudinary
Made with β€οΈ by the Dwelo Team
