# Property Rental Kenya
A high-end property rental platform for the Kenyan market, built with Next.js 15 and featuring localized payment integration with M-Pesa.
## Features
### Core Functionality
- **Property Management**: Agents can list, manage, and update property listings
- **Advanced Search**: Filter properties by location, price, type, and amenities
- **User Authentication**: Role-based access (Tenant, Agent, Admin)
- **Messaging System**: Direct communication between tenants and agents
- **Favorites**: Tenants can save properties for later viewing
- **Admin Dashboard**: Complete oversight of the platform
### Kenyan-Specific Features
- **M-Pesa Integration**: Secure payments via Kenya's mobile money system
- **Localized Search**: Focus on Kenyan neighborhoods and cities
- **KRA Compliance**: Ready for eTIMS integration
- **Mobile-First Design**: Optimized for Kenya's mobile-first users
### Modern Features
- **Cloudinary Integration**: High-quality image hosting
- **Real-time Updates**: Live property status management
- **Responsive Design**: Works seamlessly on all devices
- **Type Safety**: Full TypeScript implementation
## Tech Stack
- **Framework**: Next.js 15+ (App Router)
- **Database**: PostgreSQL with Prisma ORM
- **Authentication**: NextAuth.js with role-based access
- **Payments**: M-Pesa Daraja API
- **Image Storage**: Cloudinary
- **UI**: Tailwind CSS with shadcn/ui components
- **Deployment**: Vercel-ready
## Getting Started
### Prerequisites
- Node.js 18+
- PostgreSQL database
- M-Pesa developer account (for payments)
- Cloudinary account (for image uploads)
### Installation
1. Clone the repository:
```bash
git clone
cd property-rental-kenya
```
2. Install dependencies:
```bash
npm install
```
3. Set up environment variables:
```bash
cp env.example .env
```
Configure your `.env` file with:
- Database connection string
- NextAuth.js secrets
- M-Pesa API credentials
- Cloudinary credentials
- OAuth provider credentials
4. Set up the …