Back to Projects

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
- Clone the repository:
git clone https://github.com/yourusername/property-rental.git
cd property-rental
- Install dependencies:
npm install
# or
yarn install
- Set up the database:
- Create a PostgreSQL database
- The schema will be automatically initialized when the application starts
- 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 Turbopacknpm run build
- Build the application for productionnpm run start
- Start production servernpm 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:
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - 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