# Kashi Housing - Technical Stack & Architecture

> Technical specifications for the real estate platform development.

---

## Technology Stack

### Backend

| Component | Technology | Version |
|-----------|------------|---------|
| Framework | Laravel | 10.x / 11.x |
| Language | PHP | 8.1+ |
| Database | MySQL | 8.0+ |
| API | RESTful API | JSON responses |
| Authentication | Laravel Sanctum / Breeze | - |

### Frontend

| Component | Technology |
|-----------|------------|
| CSS Framework | Tailwind CSS 3.x |
| JavaScript | Alpine.js / Vanilla JS |
| Icons | Heroicons / Font Awesome |
| Fonts | Google Fonts (Inter, Poppins) |
| Animations | AOS / CSS Transitions |

### Design Theme

| Aspect | Approach |
|--------|----------|
| Style | Modern, Clean, Premium |
| Color Scheme | Professional Blues, Greens with Accent Colors |
| Layout | Mobile-first, Responsive |
| Components | Glassmorphism, Subtle Shadows, Rounded Corners |
| Animations | Smooth Micro-interactions |

---

## Database Schema Overview

### Core Tables

```
users
├── id
├── name
├── email
├── phone
├── password
├── role (admin, agent, user)
├── is_verified
├── created_at
└── updated_at

properties
├── id
├── user_id (owner/agent)
├── title
├── slug
├── description
├── property_type (plot, flat, house, duplex, commercial)
├── listing_type (sale, rent)
├── price
├── price_unit (total, per_sqft, per_month)
├── area_size
├── area_unit (sqft, sqm, acre)
├── bedrooms
├── bathrooms
├── floors
├── facing
├── furnishing (furnished, semi, unfurnished)
├── possession_status (ready, under_construction)
├── approval_status (rera, bank_approved, etc.)
├── is_verified
├── is_featured
├── status (active, inactive, sold, rented)
├── created_at
└── updated_at

property_locations
├── id
├── property_id
├── address
├── city
├── state
├── pincode
├── area/locality
├── latitude
├── longitude
└── nearby_landmarks

property_images
├── id
├── property_id
├── image_path
├── is_primary
├── alt_text
└── sort_order

property_amenities
├── id
├── property_id
├── amenity_id

amenities
├── id
├── name
├── icon
└── category

cities
├── id
├── name
├── slug
├── state
├── is_active
└── meta_description

areas
├── id
├── city_id
├── name
├── slug
├── pincode
└── is_active

inquiries
├── id
├── property_id
├── name
├── email
├── phone
├── message
├── inquiry_type (general, site_visit, callback)
├── status (new, contacted, closed)
├── created_at
└── updated_at

blog_posts
├── id
├── user_id
├── title
├── slug
├── content
├── excerpt
├── featured_image
├── category_id
├── status (draft, published)
├── published_at
├── meta_title
├── meta_description
└── created_at

blog_categories
├── id
├── name
├── slug
└── description

testimonials
├── id
├── name
├── designation
├── content
├── image
├── rating
├── is_active
└── sort_order

pages
├── id
├── title
├── slug
├── content
├── meta_title
├── meta_description
├── status
└── created_at

settings
├── id
├── key
├── value
├── group
└── type
```

---

## Laravel Project Structure

```
kashihousing/
├── app/
│   ├── Http/
│   │   ├── Controllers/
│   │   │   ├── Frontend/
│   │   │   │   ├── HomeController.php
│   │   │   │   ├── PropertyController.php
│   │   │   │   ├── LocationController.php
│   │   │   │   ├── BlogController.php
│   │   │   │   └── ContactController.php
│   │   │   └── Admin/
│   │   │       ├── DashboardController.php
│   │   │       ├── PropertyController.php
│   │   │       ├── InquiryController.php
│   │   │       ├── UserController.php
│   │   │       └── SettingsController.php
│   │   └── Middleware/
│   ├── Models/
│   │   ├── User.php
│   │   ├── Property.php
│   │   ├── PropertyImage.php
│   │   ├── PropertyLocation.php
│   │   ├── City.php
│   │   ├── Area.php
│   │   ├── Amenity.php
│   │   ├── Inquiry.php
│   │   ├── BlogPost.php
│   │   └── Testimonial.php
│   └── Services/
├── resources/
│   └── views/
│       ├── frontend/
│       │   ├── layouts/
│       │   ├── home.blade.php
│       │   ├── properties/
│       │   ├── locations/
│       │   └── blog/
│       └── admin/
├── routes/
│   ├── web.php
│   └── admin.php
└── public/
    ├── css/
    ├── js/
    └── images/
```

---

## Design Guidelines

### Color Palette

```css
/* Primary Colors */
--primary-50: #eff6ff;
--primary-100: #dbeafe;
--primary-500: #3b82f6;
--primary-600: #2563eb;
--primary-700: #1d4ed8;

/* Secondary / Accent */
--accent-500: #10b981;  /* Emerald for trust */
--accent-600: #059669;

/* Neutral */
--gray-50: #f9fafb;
--gray-100: #f3f4f6;
--gray-900: #111827;

/* Status */
--success: #22c55e;
--warning: #f59e0b;
--error: #ef4444;
```

### Typography

```css
/* Headings */
font-family: 'Poppins', sans-serif;

/* Body */
font-family: 'Inter', sans-serif;
```

### Component Style

- **Cards**: Rounded corners (xl), subtle shadows, hover elevation
- **Buttons**: Gradient backgrounds, smooth transitions
- **Forms**: Modern floating labels, validation states
- **Images**: Lazy loading, aspect ratio containers

---

## Development Phases

### Phase 1: Foundation (Week 1-2)
- [ ] Laravel project setup
- [ ] Database migrations & seeders
- [ ] Authentication system
- [ ] Admin panel base layout

### Phase 2: Core Features (Week 3-4)
- [ ] Property CRUD (Admin)
- [ ] Frontend property listing
- [ ] Property detail pages
- [ ] Search & filters

### Phase 3: Supporting Features (Week 5-6)
- [ ] Location pages
- [ ] Blog system
- [ ] Inquiry management
- [ ] WhatsApp integration

### Phase 4: Optimization (Week 7-8)
- [ ] SEO implementation
- [ ] Performance optimization
- [ ] Testing & bug fixes
- [ ] Deployment

---

## SEO Implementation

### On-Page SEO
- Dynamic meta tags per page
- Schema markup (JSON-LD)
- Canonical URLs
- Open Graph tags

### Technical SEO
- XML Sitemap generation
- Robots.txt configuration
- Image optimization
- Lazy loading

---

*Document Version: 1.0 | Created: January 17, 2026*
