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.
- 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
- Framework: Django
- Task Queue: Celery
- Database: PostgreSQL/SQLite (configured in settings)
- API: Django REST Framework
- Framework: React 18+ with TypeScript
- Build Tool: Vite
- UI Components: Shadcn/ui
- Styling: Tailwind CSS
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
Handles the core automation logic including:
- Workflow creation and management
- Trigger definition and registry
- Task execution and scheduling
- Workflow state management
Manages:
- User authentication and authorization
- Role-based access control
- Permission management
- User profiles and preferences
Extensible plugin architecture allowing:
- Custom workflow actions
- External service integrations
- Event handlers
- Custom validators
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 infocd frontend
# Install dependencies
npm install
# Start development server
npm run devThe frontend will be available at http://localhost:5173 and the backend at http://localhost:8000.
Plugins extend Hookline's capabilities by adding custom workflow actions. Each plugin is self-contained with:
config.json- Plugin metadata and configuration schemaexecution.py- Plugin logic implementation
Example plugin location: backend/plugins/email_sender/
The Hookline SDK provides a streamlined way to develop plugins for the Hookline platform.
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.
Key endpoints include:
/api/workflows/- Workflow CRUD operations/api/users/- User management/api/plugins/- Plugin management/api/auth/- Authentication endpoints
- Authentication: Token-based authentication
- Authorization: Role-based access control (RBAC)
- Permissions: Fine-grained permission system
- Input Validation: Comprehensive request validation
- 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
# Backend tests
cd backend
python manage.py test
# Frontend tests
cd frontend
npm run test# Backend linting
cd backend
flake8 .
black .
# Frontend linting
cd frontend
npm run lintSee individual requirements.txt (backend) and package.json (frontend) for complete dependency lists.
- Create a feature branch
- Make your changes
- Ensure tests pass
- Submit a pull request
For issues and questions, please open an issue in the repository.
Built with ❤️ for automation enthusiasts