# Google Reviews Scraper - Testing Interface A Next.js web interface for testing the containerized Google Reviews Scraper API. ## Features - 🎯 **URL Input** - Paste any Google Maps business URL - 📊 **Real-time Status** - Live job tracking with polling - ⚡ **Performance Metrics** - Reviews count, time, speed - 📱 **Review Display** - Beautiful UI for scraped reviews - 💾 **Export JSON** - Download reviews as JSON ## Quick Start ### 1. Start the Scraper API First, make sure the containerized scraper is running: ```bash cd .. docker-compose -f docker-compose.production.yml up -d ``` The API should be running at `http://localhost:8000` ### 2. Start the Web Interface ```bash npm install npm run dev ``` Open [http://localhost:3000](http://localhost:3000) ## Usage 1. **Paste a Google Maps URL** ``` https://www.google.com/maps/place/Business+Name/... ``` 2. **Click "Scrape"** - Job is submitted to the API - Status updates in real-time - Reviews appear when complete 3. **View Results** - See all scraped reviews - Export as JSON - View performance metrics ## Environment Variables Create `.env.local` if you need to customize: ```bash # API URL (default: http://localhost:8000) NEXT_PUBLIC_API_URL=http://localhost:8000 ``` ## API Endpoints Used This interface connects to: - `POST /scrape` - Submit scraping job - `GET /jobs/{job_id}` - Get job status - `GET /jobs/{job_id}/reviews` - Get reviews ## Tech Stack - **Next.js 15** - React framework - **TypeScript** - Type safety - **Tailwind CSS** - Styling - **API Proxy** - Next.js API routes proxy to scraper API ## Development ```bash npm run dev # Start dev server npm run build # Build for production npm run start # Start production server npm run lint # Run ESLint ``` ## Notes - The interface polls job status every 2 seconds - Polling stops when job completes or fails - Reviews are fetched with a limit of 1000 by default - Export button downloads reviews as formatted JSON