An AI-powered browser automation dashboard for inspecting and extracting data from websites.
WebAuto-Dash is a comprehensive web automation platform that combines intelligent browser automation with a modern dashboard interface. Built with React, Flask, and Playwright, it enables users to automate data extraction from complex web applications, inspect portal structures, and manage extraction jobs through an intuitive web interface.
- Intelligent Browser Automation: Powered by Playwright for reliable cross-browser automation
- Universal Portal Inspector: Automatically analyze any web portal and generate custom extraction code
- Multi-Portal Support: Configurable adapters for different web systems and applications
- Real-time Job Management: Track automation jobs with live status updates and progress monitoring
- Session Management: Persistent login states and smart navigation handling
- Structured Data Extraction: Extract tables, forms, and content with intelligent element detection
- Flexible Export Options: Export extracted data in CSV and JSON formats
- Data Integrity: Secure storage with SQLite database backend
- Smart Resume Logic: Intelligent resumption of interrupted extraction jobs
- Comprehensive Logging: Detailed extraction logs and debugging information
- Responsive Dashboard: Clean, professional interface built with Tailwind CSS
- Real-time Updates: Live dashboard with WebSocket support for instant status updates
- Job Queue Management: Visual job scheduling and execution monitoring
- Portal Configuration: Easy-to-use forms for setting up new portal adapters
- Performance Metrics: Built-in analytics and extraction performance tracking
- Auto-Generated Adapters: Create portal-specific extractors from automated analysis
- Portal Structure Discovery: Automatically map navigation flows and data patterns
- Element Recognition: Smart CSS selector generation and XPath pattern creation
- Error Recovery: Robust handling of portal changes and extraction failures
Experience the power of WebAuto-Dash through our comprehensive dashboard interface:
Comprehensive dashboard showing system status, active jobs, and performance metrics
Intuitive job creation form with portal selection and configuration options
Advanced job settings with extraction parameters and scheduling options
Batch job management with multiple extraction tasks and progress tracking
Real-time job execution monitoring with detailed progress indicators
Universal portal inspector for analyzing website structures and generating adapters
Live adapter creation interface with real-time portal analysis and code generation
Comprehensive adapter management with configuration options for different portal types
- Universal Portal Inspector Guide - Analyze any web portal automatically
- Startup Guide - Complete setup and configuration instructions
- Adapter Development Guide - Create custom portal adapters
- Portal Analysis Guide - Deep portal inspection techniques
- Live Inspection Guide - Real-time portal debugging
- Doctor Visit Guide - Healthcare-specific automation patterns
WebAuto-Dash/
βββ frontend/ # React.js Dashboard Application
β βββ src/
β β βββ components/ # Reusable UI components
β β β βββ JobProgressTracker.js
β β β βββ PortalInspector.js
β β β βββ SystemMonitor.js
β β βββ pages/ # Main application pages
β β β βββ Dashboard.js
β β β βββ Jobs.js
β β β βββ LiveInspection.js
β β β βββ PatientData.js
β β βββ services/ # API integration layer
β β βββ hooks/ # Custom React hooks
β βββ public/ # Static assets and manifest
βββ backend/ # Flask API Server
β βββ app.py # Main Flask application entry point
β βββ models.py # Database models and schemas
β βββ routes/ # API route handlers
β β βββ jobs_api.py
β β βββ portal_inspector_api.py
β β βββ realtime_api.py
β βββ requirements.txt # Python dependencies
βββ playwright_orchestrator/ # Browser Automation Engine
β βββ orchestrator.py # Job execution and browser management
βββ portal_adapters/ # Portal-Specific Adapters
β βββ epic_mychart_adapter.py
β βββ cerner_powerchart_adapter.py
β βββ example_adapter.py
βββ templates/ # Documentation and guides
- Python 3.8+ with pip
- Node.js 16+ with npm
- Git for version control
git clone https://github.com/gavksingh/WebAuto-Dash.git
cd WebAuto-Dash
# Create virtual environment (recommended)
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Navigate to backend directory
cd backend
# Install Python dependencies
pip install -r requirements.txt
# Initialize database
python -c "from app import create_app; from models import db; app = create_app(); app.app_context().push(); db.create_all()"
# Navigate to frontend directory
cd ../frontend
# Install Node.js dependencies
npm install
# Build the frontend (for production)
npm run build
# Or run in development mode
npm start
# Install required browsers for automation
playwright install
Create environment files:
# backend/.env
DATABASE_URL=sqlite:///webautodash.db
SECRET_KEY=your-secret-key-here
FLASK_ENV=development
# frontend/.env (optional)
REACT_APP_API_URL=http://localhost:5000
REACT_APP_VERSION=1.0.0
# From project root
./start_servers.sh
This will start both the Flask backend (port 5000) and React frontend (port 3009).
Terminal 1 - Backend:
cd backend
source venv/bin/activate # Activate virtual environment
python app.py
Terminal 2 - Frontend:
cd frontend
npm start
- ποΈ Main Dashboard: http://localhost:3009
- π‘ Backend API: http://localhost:5000
- π API Documentation: http://localhost:5000/api/docs
- React 18 - Modern component-based UI framework
- Tailwind CSS - Utility-first CSS framework for responsive design
- Axios - Promise-based HTTP client for API requests
- Socket.io Client - Real-time bidirectional communication
- React Router - Declarative routing for React applications
- Heroicons - Beautiful hand-crafted SVG icons
- Flask - Lightweight and flexible web framework
- SQLAlchemy - Python SQL toolkit and Object Relational Mapping
- Flask-SocketIO - WebSocket integration for real-time features
- Playwright - Cross-browser automation library
- Pydantic - Data validation using Python type annotations
- PyYAML - YAML parser and emitter for configuration files
- Playwright - Reliable automation for Chromium, Firefox, and WebKit
- SQLite - Lightweight embedded database for development
- Concurrent Processing - Multi-threaded job execution
- Session Persistence - Secure login state management
We welcome contributions from the community! Here's how you can help:
-
Fork the repository and create your feature branch
git checkout -b feature/amazing-feature
-
Make your changes following our coding standards
- Frontend: Follow React best practices and use TypeScript when possible
- Backend: Follow PEP 8 Python style guidelines
- Testing: Add tests for new functionality
-
Commit your changes with descriptive messages
git commit -m 'feat: Add amazing new feature'
-
Push to your branch and open a Pull Request
git push origin feature/amazing-feature
- π Bug fixes and performance improvements
- π Documentation enhancements and examples
- π New portal adapters for popular web applications
- β¨ UI/UX improvements to the dashboard interface
- π§ͺ Test coverage improvements and automation
Having trouble? We're here to help!
- π Check the documentation - Most questions are answered in our guides
- π Search existing issues - Someone might have already reported your issue
- π Create a new issue - Use our issue templates for bug reports and feature requests
- π¬ Join discussions - Share ideas and get community support
When reporting bugs, please include:
- Operating system and version
- Python and Node.js versions
- Steps to reproduce the issue
- Screenshots or error logs (if applicable)
- Expected vs. actual behavior
π Report an Issue
This project is licensed under the MIT License - see the LICENSE file for complete details.
- β Commercial use - Use WebAuto-Dash in commercial projects
- β Modification - Modify the source code to fit your needs
- β Distribution - Share and distribute the software
- β Private use - Use privately without sharing modifications
β οΈ Attribution required - Include the original copyright notice
- Playwright Team - For building an amazing browser automation framework
- React Community - For the robust frontend ecosystem
- Flask Contributors - For the flexible web framework
- Open Source Community - For inspiration and collaborative development
If WebAuto-Dash helps you automate your web workflows, please:
- β Star this repository to show your appreciation
- π Report bugs to help us improve
- π‘ Suggest features to make it even better
- π€ Contribute code to join our community
Happy Automating! π