A modern, full-stack property rental marketplace application built with Next.js, MongoDB, and real-time messaging capabilities. PropertyPulse empowers property managers and renters to connect seamlessly through an intuitive platform featuring advanced search, geolocation services, and comprehensive property management tools.
- Create & Edit Listings - Property managers can easily create, update, and manage property listings with detailed information
- Advanced Search & Filtering - Users can search properties by location, property type, and other criteria
- Image Gallery - Multi-image property galleries with Photoswipe lightbox viewer for immersive browsing
- Responsive Property Cards - Beautiful, mobile-optimized property cards displaying key details at a glance
- Interactive Maps - Integrated Leaflet maps with geolocation services showing exact property locations
- Geocoding - Intelligent address-to-coordinate conversion for accurate property positioning
- Location-Based Search - Find properties by city, state, and address proximity
- Authentication - Secure NextAuth.js authentication with multi-provider support
- Saved Bookmarks - Save favorite properties for quick access later
- Messaging System - Direct property manager communication with unread message tracking and read status management
- User Profiles - Comprehensive user profiles showcasing property listings and bookmarked properties
- Message Notifications - Real-time unread message counts and notifications
- Cloud Image Storage - Cloudinary integration for scalable image hosting and optimization
- Social Sharing - Built-in social media sharing buttons for property listings
- Responsive Image Handling - Optimized image delivery across all devices
Frontend:
- Next.js 14.2.5 - React framework with App Router
- React 18 - UI component library
- Tailwind CSS 3.4.1 - Utility-first styling
- React Leaflet 4.2.1 - Interactive maps
- React Icons 5.2.1 - Icon library
- React PhotoSwipe Gallery 3.0.2 - Image gallery
- React Share 5.1.0 - Social sharing
- React Toastify 10.0.5 - Toast notifications
- React Spinners 0.14.1 - Loading indicators
Backend:
- Next.js API Routes - Serverless functions
- MongoDB 6.8.0 - NoSQL database
- Mongoose 8.5.1 - ODM for MongoDB
- NextAuth.js 4.24.7 - Authentication & authorization
- Cloudinary 2.4.0 - Image management
Tools & Services:
- PostCSS & Tailwind - CSS preprocessing and styling
- Leaflet 1.9.4 - Mapping library
- Node.js 16+
- MongoDB database connection
- Cloudinary account (for image uploads)
- Environment variables configured
- Install dependencies:
npm install- Set up environment variables in
.env.local:
MONGODB_URI=your_mongodb_connection_string
NEXTAUTH_SECRET=your_secret_key
NEXTAUTH_URL=http://localhost:3000
CLOUDINARY_NAME=your_cloudinary_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
- Run the development server:
npm run dev- Open http://localhost:3000 in your browser
npm run dev- Start development server with hot reloadnpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLint for code quality
app/
βββ actions/ - Server actions for database operations
βββ api/ - API routes for backend services
βββ properties/ - Property listing pages and search
βββ messages/ - Messaging interface
βββ profile/ - User profile management
βββ page.jsx - Home page
components/ - Reusable React components
βββ PropertyCard - Property display component
βββ PropertySearchForm - Advanced search interface
βββ Map - Interactive map display
βββ MessageCard - Message display
βββ [other components]
models/ - MongoDB schemas
βββ Property.js - Property schema
βββ User.js - User schema
βββ message.js - Message schema
utils/ - Utility functions and helpers
config/ - Configuration files for DB and services
PropertyPulse uses NextAuth.js for secure authentication, supporting multiple authentication providers. Users can sign in to access property management features and direct messaging capabilities.
- Properties - Comprehensive property data including location, amenities, pricing, and owner information
- Users - User profiles with bookmarked properties and authentication data
- Messages - Messaging system tracking messages between users and property managers
Deploy on Vercel for optimal Next.js performance:
- Push your code to GitHub
- Connect your repository to Vercel
- Configure environment variables
- Deploy with automatic CI/CD
This project is open source and available under the MIT License.
Contributions are welcome! Please feel free to submit pull requests or open issues for bugs and feature requests.