# Milestone 2.3 — Visitor Identity & IP Address Capture

This directory documents the implementation of **Milestone 2, Step 2.3: Visitor Identity & IP Address Capture**.

---

## Documents in this folder

- **[01-visitor-identity-ip.md](file:///c:/Users/alokc/chatbot/backend/docs/learning/m2-3-visitor-identity-ip/01-visitor-identity-ip.md)** — Explains identity detection (`isLoggedIn`, `userId`, `userName`), `X-Forwarded-For` IP parsing, country resolution, and dashboard UI integration.
- **[02-m2-3-revision.md](file:///c:/Users/alokc/chatbot/backend/docs/learning/m2-3-visitor-identity-ip/02-m2-3-revision.md)** — Short revision summary and test suite verification.

---

## How to Verify Milestone 2.3

1. **Run Pytest Test Suite:**
   ```bash
   cd backend
   .\venv\Scripts\python.exe -m pytest
   ```
   *Verifies 22 passing unit tests across CORS, Tenant, Session, Identity, Handoff, and WebSocket test modules.*

2. **Manual Verification:**
   - **Anonymous Visitor:** Open `widget/demo.html`. Check Admin Dashboard $\rightarrow$ Displays `"Anonymous Visitor"` and `"IP: 127.0.0.1 | Country: Local / Demo"`.
   - **Logged-in Visitor:** Enable `window.CHATBOT_USER` in `demo.html`. Refresh $\rightarrow$ Displays user name and email.
