# Plano Realty CRM - Geospatial Field Service Platform

> **The Next Generation of Roofing Sales & Territory Management**

**Plano Realty CRM** is an advanced, data-driven platform designed to revolutionize how roofing professionals in Plano, Texas manage their territories, leads, and customer interactions. By combining geospatial intelligence, AI-driven insights, and intuitive workflows, we bridge the gap between field agents and office operations.

---

## 🏛️ PART 1: PRODUCT OVERVIEW

### 🌟 Value Proposition
In a competitive roofing market, speed and data are everything. Traditional spreadsheets and paper maps leave money on the table. **Plano Realty CRM** solves this by providing:
-   **Precision Targeting**: Identify "Golden Leads" (older homes with high value) instantly on a map.
-   **Operational Efficiency**: Automate scheduling and follow-ups with our AI Concierge.
-   **Real-Time Intelligence**: Know the storm risk and roof condition of every property before you knock.

### 🤖 The "Plano AI Assistant" (Chatbot)
Our AI is not just a support bot; it is a context-aware worker that understands your business data.

#### For Field Agents (Workers)
-   **"Smart Querying"**: Ask *“Show me the properties built before 2000”* or *“Which homeowner wants to sell?”*.
-   **Lead Qualification**: The AI knows which leads are "Hot" and prompts you to prioritize them.
-   **Risk Analysis**: Ask *“What is the current storm risk?”* to get a breakdown of wind speeds vs. roof vulnerability.

#### For Customers (Homeowners)
-   **Instant Diagnostics**: (Future) Schedule inspections without waiting on hold.
-   **Project Updates**: Check the status of their roof repair.

#### For Guests (Website Visitors)
-   **Lead Capture**: The AI engages visitors, answers generic questions about roofing services, and encourages them to sign up or request a free estimate.

### 📊 The Data Dashboard
A 360-degree view of your territory's health.

1.  **Golden Leads Scatter Plot**: Visualizes high-value opportunities (High Value + Older Built Year).
2.  **Risk Index Gauge**: A real-time meter combining live wind speed data with the percentage of "Needs Repair" roofs.
3.  **Revenue Potential**: Bar charts showing which neighborhoods offer the highest ROI based on renovation needs.
4.  **Roof Health**: A visual breakdown of the entire territory's roof conditions (Good, Fair, Needs Repair).
5.  **Owner Intent Funnel**: Tracks the pipeline from "Willing to Sell" -> "Hot Leads".

---

## � KEY FEATURES (Latest Updates)

### 🎨 "LynkedUp Pro" Branding & UX
-   **Smooth Animations**: Global page transitions (Fade/Slide) and silky-smooth collapsible sidebar.
-   **Visual Polish**: Glassmorphism everywhere, custom "LynkedUp" loaders, and pulsing interactive elements.
-   **Dark Mode**: Fully supported system-wide dark mode with inverted map tiles for comfortable night viewing.

### 🌍 Advanced Mapping
-   **Lead Creation**: Click anywhere on the map to reverse-geocode addresses and create new leads on the fly.
-   **Polygon Visualization**: Color-coded property footprints indicating status (Hot Lead, Customer, etc.).

---

## �👥 USER ROLES & DEMO ACCOUNTS

To explore the platform, use these pre-configured accounts. **Password for ALL accounts is: `password`**

### 1. Field Agent (Worker)
*The primary user. Can view maps, access detailed property data, and manage leads.*
-   **Username/ID**: `FA001` (Frank Agent)
-   **Alternates**: `FA002`, `FA003`, `FA004`, `FA005`
-   **Role Capabilities**:
    -   Access Dashboard & Widget Data.
    -   View/Edit Lead Status (Hot, Cold, Customer).
    -   Use Chatbot with full data context.

### 2. Administrator
*The manager. Sees all agents and global stats.*
-   **Username/ID**: `ADM01` (Adam Admin)
-   **Alternates**: `ADM02`, `ADM03`
-   **Role Capabilities**:
    -   All Agent capabilities + User Management (Mock).

### 3. Customer (Homeowner)
*The client. Limited view of their own property.*
-   **Username**: `alice`
-   **Alternates**: `bob`, `charlie`
-   **Role Capabilities**:
    -   View personal property details.
    -   Request Service.

---

## 💻 PART 2: DEVELOPER GUIDE

### 🛠 Tech Stack & Architecture

-   **Frontend**: React 18 (Vite), Tailwind CSS, Glassmorphism UI.
-   **State**: `MockStore` (Simulates Backend/DB), `AuthContext` (Session Management).
-   **AI Engine**: Groq SDK (`qwen-3-32b`) injected with dynamic system prompts.
-   **Visuals**: `react-leaflet` (Maps), `recharts` (Analytics), `lucide-react` (Icons).

### 🧠 Deep Dive: How It Works

#### 1. The "Mock Store" (Data Layer)
Located in `src/data/mockStore.jsx`. It generates ~60 realistic property records using weighted randomization algorithms to create organic-looking data distributions (e.g., 10% bad roofs, random build years).
-   **Why?**: To provide a rich, testable dataset without needing a live backend database.

#### 2. AI Context Injection
Located in `src/components/Chatbot.jsx`.
-   When a user sends a message, we don't just send their text. We inject a **System Prompt** containing live dashboard metrics.
-   **Example Injection**:
    ```text
    SYSTEM: You are a roofing assistant.
    CONTEXT:
    - 45 Total Properties
    - 12 Golden Leads (Top: 123 Maple Dr)
    - 8 Hot Leads needing canvassing
    ```
-   This allows the AI to answer specific questions accurately.

#### 3. Leaflet Customization
Located in `src/pages/Maps.jsx`.
-   We use custom SVGs overlays on the map.
-   **Reverse Geocoding**: Clicking a blank spot calls the OpenStreetMap API to fetch the address, allowing agents to "create" new property records on the fly.

### 🚀 Setup & Contribution

1.  **Clone**: `git clone <repo>`
2.  **Install**: `pnpm install`
3.  **Env**: Create `.env` with `VITE_GROQ_API_KEY` and `VITE_OPENWEATHER_API_KEY`.
4.  **Run**: `pnpm run dev`

**Maintained by Satyam Rastogi**
