You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
PouyaKhajavi fa471c37a1 fix(crawler): implement robust price extraction from Divar widget structures and update existing ads 4 hours ago
..
public feat(frontend): implement React + Vite dashboard SPA with custom styling and API connection 2 days ago
src feat(frontend): add custom confirmation modal and stop running jobs action in run history 1 day ago
.gitignore feat(frontend): implement React + Vite dashboard SPA with custom styling and API connection 2 days ago
.oxlintrc.json feat(frontend): implement React + Vite dashboard SPA with custom styling and API connection 2 days ago
Dockerfile feat(prod): configure Gunicorn, WhiteNoise static file serving, and Nginx reverse proxy 8 hours ago
README.md docs: update main and frontend READMEs with linux docker deployment guide 1 day ago
index.html feat(frontend): replace native time input with custom hour/minute selects and optimize typography 1 day ago
nginx.conf fix(nginx): pass X-Forwarded-Proto and host headers cleanly and allow wildcard host in production 5 hours ago
package-lock.json feat(frontend): migrate dashboard layout and components to Tailwind CSS v4 2 days ago
package.json feat(frontend): migrate dashboard layout and components to Tailwind CSS v4 2 days ago
vite.config.js fix(docker): optimize docker configuration and build context for linux server 1 day ago

README.md

💻 Divar Crawler Dashboard (React + Vite)

The frontend client for the Intelligent Divar Ads Crawler, built with React 18, Vite, Lucide React icons, and TailwindCSS.


🎨 Features & Capabilities

  • Crawler Management: Dynamic form modal for creating and updating Divar crawl tasks (title, Divar search URL, AI prompt, interval, allowed hours window, Telegram channel, active status).
  • Manual Trigger: Immediate execution button to test scraper and AI evaluation flows on-demand.
  • Ads Feed: Filterable view of scraped ads displaying price, location, AI evaluation decision (is_flagged), confidence score, and extracted reasoning.
  • Execution History Logs: Detailed execution run logs with status indicators (RUNNING, SUCCESS, FAILED) and error log modals.
  • System Health Indicator: Real-time polling monitoring status of PostgreSQL database and Redis background broker.

🛠 Project Structure

frontend/
├── src/
│   ├── App.jsx        # Main dashboard component handling tabs, modals, and API integration
│   ├── App.css        # Custom styles and glassmorphism styling
│   ├── index.css      # Tailwind & global font declarations
│   └── main.jsx       # React application entry point
├── Dockerfile         # Node 22 slim docker environment configuration
├── package.json       # Project dependencies & scripts
└── vite.config.js     # API proxy configuration (`/api` -> backend:8000 or 127.0.0.1:8000)

🚀 Running Locally

Development Mode (Local Node)

npm install
npm run dev

The application will run at http://localhost:5173/ and proxy API calls to http://127.0.0.1:8000.

Production Build

npm run build

🐳 Docker Execution

The frontend is included as part of the multi-container stack in the root docker-compose.yml:

docker compose up frontend -d

Environment variable VITE_BACKEND_URL=http://backend:8000 is automatically configured to route API traffic within the Docker network.