Simplifying real estate across Nigeria. EzyRent connects you with verified apartments, studios, and duplexes in top cities like Lagos, Abuja, and Port Harcourt. Browse with confidence and rent with ease.
# EzyRent Task - Rental Property Finder
A modern, responsive web application for finding rental properties in Nigeria. Built with React 19, TypeScript, and Tailwind CSS v4.
## 🚀 Key Features
- **Property Listing**: Browse a curated list of rental properties with high-quality images and details.
- **Advanced Filtering**: Filter properties by city and price range to find the perfect match.
- **Dynamic Sorting**: Sort listings by price (Low to High, High to Low).
- **Responsive Design**: Fully responsive interface optimized for mobile, tablet, and desktop devices.
- **Detailed Views**: Dedicated property details page with comprehensive information.
- **Simulated Backend**: Includes loading states and mock data processing to mimic real-world application behavior.
## 🛠️ Tech Stack & Key Decisions
### **Core Framework**
- **React 19 + Vite**: Chosen for lightning-fast development server (HMR) and optimized production builds.
- **TypeScript**: Implemented for strict type safety, reducing runtime errors and improving developer experience with intellisense.
### **Styling & UI**
- **Tailwind CSS v4**: Utilized for a utility-first approach, enabling rapid UI development and easy maintenance of a consistent design system.
- **React Icons**: Lightweight icon library for consistent SVG iconography.
### **State Management & Routing**
- **React Router v7**: Handles client-side routing for seamless navigation between the Home page and Property Details page.
- **Local State (useState/useMemo)**: Application state (filters, sorting, loading) is managed locally within the `HomePage` to keep the architecture simple and performant without the overhead of global state management libraries (Redux/Context) for this scope.
- **Mock Data Layer**: A structured data file (`src/data/properties.ts`) acts as the database, allowing for easy transitions to a real API in the future.
### **User Experience (UX)**
- **Loading & Empty States**: specialized components (`LoadingState`, `EmptySt …