Skip to content

gavksingh/WebAuto-Dash

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ₯ WebAuto-Dash

License: MIT Python 3.8+ React 18 Flask

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.


🌟 Key Features

πŸ”§ Core Automation

  • 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

πŸ“Š Data Management & Analysis

  • 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

🎨 Modern User Interface

  • 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

πŸ€– Advanced Intelligence

  • 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

πŸ“Έ Screenshots

Experience the power of WebAuto-Dash through our comprehensive dashboard interface:

Main Dashboard Overview

Dashboard Overview Comprehensive dashboard showing system status, active jobs, and performance metrics

Job Management Interface

New Job Creation Intuitive job creation form with portal selection and configuration options

Job Creation Details Advanced job settings with extraction parameters and scheduling options

Batch Job Processing Batch job management with multiple extraction tasks and progress tracking

Job Extraction Progress Real-time job execution monitoring with detailed progress indicators

Portal Inspection & Automation

Portal Inspector Universal portal inspector for analyzing website structures and generating adapters

Live Adapter Generation Live adapter creation interface with real-time portal analysis and code generation

Adapter Management

Portal Adapters Comprehensive adapter management with configuration options for different portal types


πŸ“š Documentation

User Guides

Technical Documentation


πŸ—οΈ Project Architecture

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

πŸš€ Installation & Setup

Prerequisites

  • Python 3.8+ with pip
  • Node.js 16+ with npm
  • Git for version control

1. Clone the Repository

git clone https://github.com/gavksingh/WebAuto-Dash.git
cd WebAuto-Dash

2. Backend Setup

# 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()"

3. Frontend Setup

# 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

4. Install Playwright Browsers

# Install required browsers for automation
playwright install

5. Environment Configuration

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

🎯 Quick Start

Option 1: Run Both Services (Recommended)

# From project root
./start_servers.sh

This will start both the Flask backend (port 5000) and React frontend (port 3009).

Option 2: Run Services Separately

Terminal 1 - Backend:

cd backend
source venv/bin/activate  # Activate virtual environment
python app.py

Terminal 2 - Frontend:

cd frontend
npm start

3. Access the Application


πŸ”§ Technology Stack

Frontend Technologies

  • 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

Backend Technologies

  • 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

Automation & Infrastructure

  • 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

🀝 Contributing

We welcome contributions from the community! Here's how you can help:

Development Guidelines

  1. Fork the repository and create your feature branch

    git checkout -b feature/amazing-feature
  2. 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
  3. Commit your changes with descriptive messages

    git commit -m 'feat: Add amazing new feature'
  4. Push to your branch and open a Pull Request

    git push origin feature/amazing-feature

What We're Looking For

  • πŸ› 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

πŸ› Issues & Support

Having trouble? We're here to help!

Getting Help

  1. πŸ“– Check the documentation - Most questions are answered in our guides
  2. πŸ” Search existing issues - Someone might have already reported your issue
  3. πŸ†• Create a new issue - Use our issue templates for bug reports and feature requests
  4. πŸ’¬ Join discussions - Share ideas and get community support

Reporting Issues

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


πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for complete details.

What this means:

  • βœ… 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

πŸ™ Acknowledgments

  • 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

🌟 Show Your Support

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! πŸš€

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published