Skip to content

sommye-ctr/hookline

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Hookline - Workflow Automation Engine

A powerful, extensible workflow automation platform that enables you to build, manage, and execute complex automation workflows with ease. Hookline combines a robust Django backend with a modern React frontend to provide an intuitive interface for designing and monitoring automated processes.

🚀 Features

  • Visual Workflow Designer - Create complex workflows using an intuitive drag-and-drop interface
  • Trigger System - Automatically execute workflows based on configurable triggers and conditions
  • Plugin Architecture - Extend functionality with pluggable workflow actions (email, webhooks, etc.)
  • Role-Based Access Control - Granular permission management for users and workflow actions
  • Task Management - Execute, monitor, and debug workflow tasks in real-time
  • Scalable Backend - Built on Django with Celery for asynchronous task processing
  • Modern UI - React-based frontend with responsive design using Shadcn/ui components

🏗️ Architecture

Backend Stack

  • Framework: Django
  • Task Queue: Celery
  • Database: PostgreSQL/SQLite (configured in settings)
  • API: Django REST Framework

Frontend Stack

  • Framework: React 18+ with TypeScript
  • Build Tool: Vite
  • UI Components: Shadcn/ui
  • Styling: Tailwind CSS

📁 Project Structure

hookline/
├── backend/                    # Django application
│   ├── hookline/              # Django project settings
│   ├── users/                 # User management & authentication
│   ├── workflows/             # Core workflow engine
│   ├── plugins/               # Plugin system
│   │   ├── email_sender/      # Example email plugin
│   │   └── register.json      # Plugin registry
│   └── manage.py
│
└── frontend/                  # React application
    ├── src/
    │   ├── features/          # Feature modules (auth, dashboard, workflows, plugins)
    │   ├── components/        # Reusable UI components
    │   ├── hooks/             # Custom React hooks
    │   └── routes/            # Route definitions
    └── vite.config.ts

🔧 Key Components

Workflows Module

Handles the core automation logic including:

  • Workflow creation and management
  • Trigger definition and registry
  • Task execution and scheduling
  • Workflow state management

Users Module

Manages:

  • User authentication and authorization
  • Role-based access control
  • Permission management
  • User profiles and preferences

Plugins System

Extensible plugin architecture allowing:

  • Custom workflow actions
  • External service integrations
  • Event handlers
  • Custom validators

🚀 Getting Started

Backend Setup

cd backend

# Install dependencies
pip install -r requirements.txt

# Run migrations
python manage.py migrate

# Create superuser
python manage.py createsuperuser

# Start development server
python manage.py runserver

# In another terminal, start Celery worker
celery -A hookline worker -l info

Frontend Setup

cd frontend

# Install dependencies
npm install

# Start development server
npm run dev

The frontend will be available at http://localhost:5173 and the backend at http://localhost:8000.

🔌 Plugin Development

Plugins extend Hookline's capabilities by adding custom workflow actions. Each plugin is self-contained with:

  • config.json - Plugin metadata and configuration schema
  • execution.py - Plugin logic implementation

Example plugin location: backend/plugins/email_sender/

Using the Hookline SDK

The Hookline SDK provides a streamlined way to develop plugins for the Hookline platform.

Plugin Registration

Register your plugin in the Hookline plugins registry and it will automatically be available for use in workflows. The SDK handles the integration with the Hookline platform automatically.

For more detailed information and advanced features, visit the Hookline SDK documentation.

📋 API Endpoints

Key endpoints include:

  • /api/workflows/ - Workflow CRUD operations
  • /api/users/ - User management
  • /api/plugins/ - Plugin management
  • /api/auth/ - Authentication endpoints

🔐 Security Features

  • Authentication: Token-based authentication
  • Authorization: Role-based access control (RBAC)
  • Permissions: Fine-grained permission system
  • Input Validation: Comprehensive request validation

📊 Database Models

  • User - User accounts and profiles
  • Role - User roles for access control
  • Permission - Granular action permissions
  • Workflow - Automation workflow definitions
  • Task - Individual task execution records
  • Trigger - Workflow trigger configurations

🛠️ Development

Running Tests

# Backend tests
cd backend
python manage.py test

# Frontend tests
cd frontend
npm run test

Code Quality

# Backend linting
cd backend
flake8 .
black .

# Frontend linting
cd frontend
npm run lint

📦 Dependencies

See individual requirements.txt (backend) and package.json (frontend) for complete dependency lists.

🤝 Contributing

  1. Create a feature branch
  2. Make your changes
  3. Ensure tests pass
  4. Submit a pull request

📧 Support

For issues and questions, please open an issue in the repository.


Built with ❤️ for automation enthusiasts

About

Workflow automation engine with support for external plugins

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors