Back to Projects
Property Rental Platform

Property Rental Platform

By Chernet Asmamaw June 29, 2025

A comprehensive property rental platform that connects property owners with potential tenants, offering a seamless experience for listing, searching, booking, and managing rental properties.

Features

  • 🔐 User Authentication: Secure authentication system powered by Clerk
  • 🏠 Property Listings: Comprehensive property listing system with detailed information
  • 📅 Booking Management: Advanced booking system with calendar integration
  • ⭐ Review System: User reviews and ratings for properties and hosts
  • 📊 Host Dashboard: Comprehensive dashboard for property owners to manage listings
  • 🎨 Modern UI: Clean, responsive design built with Tailwind CSS
  • 🔍 Advanced Search: Filter properties by location, price, amenities, and more
  • 💬 Messaging System: Direct communication between hosts and guests

Tech Stack

Frontend

  • Next.js 15 with App Router
  • React 19
  • TypeScript for type safety
  • Tailwind CSS for styling
  • Headless UI for accessible components
  • Heroicons for consistent iconography

Backend

  • Next.js API Routes
  • PostgreSQL database
  • node-postgres (pg) for database operations

Authentication

  • Clerk for user management and authentication
  • Role-based access control

Getting Started

Prerequisites

  • Node.js (v18 or higher)
  • PostgreSQL database
  • npm or yarn package manager

Environment Variables

Create a .env.local file in the root directory:

DATABASE_URL=your_postgresql_connection_string
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
CLERK_SECRET_KEY=your_clerk_secret_key

Installation

  1. Clone the repository:
git clone https://github.com/yourusername/property-rental.git
cd property-rental
  1. Install dependencies:
npm install
# or
yarn install
  1. Set up the database:
  • Create a PostgreSQL database
  • The schema will be automatically initialized when the application starts
  1. Run the development server:
npm run dev
# or
yarn dev

Open http://localhost:3000 to view the application.

Available Scripts

  • npm run dev - Start development server with Turbopack
  • npm run build - Build the application for production
  • npm run start - Start production server
  • npm run lint - Run ESLint for code quality

Key Features Explained

Property Management

  • Create and edit property listings with photos and detailed descriptions
  • Set pricing, availability, and house rules
  • Manage multiple properties from a single dashboard

Booking System

  • Real-time availability checking
  • Secure payment processing
  • Booking confirmation and management
  • Calendar synchronization

User Profiles

  • Host and guest profiles with verification
  • Review and rating systems
  • Communication preferences
  • Booking history

Contributing

We welcome contributions! Please follow these steps:

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

Database Schema

The application uses PostgreSQL with the following main entities:

  • Users (managed by Clerk)
  • Properties
  • Bookings
  • Reviews
  • Messages

Security Features

  • Secure authentication with Clerk
  • Protected API routes
  • Input validation and sanitization
  • SQL injection prevention
  • XSS protection