Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Hydra — Data Analytics Workbench (HDAW)

A web-based campaign data management, ETL pipeline, and reporting platform for advertising and media agencies. Built on PHP with a custom scripting language — H-Script (also called ALCODE) — that lets analysts write client-specific data-loading, transformation, and reporting pipelines without writing PHP directly.

The live demo is at hydradp.io.


Components

Component Description
HDAWCodeRoot/HDAWCodeRoot/ Core PHP web application — UI, profile management, scheduler, views
HDAWCodeRoot/HDACron/ Windows .NET service that drives scheduled H-Script profile execution
HDAWCodeRoot/HDAWCronProcess/ PHP cron endpoint (HDA_cron.php)
HDAWCodeRoot/HDAWSoapProcess/ SOAP endpoint for external integrations (HDA_soap_accept.php)

H-Script / ALCODE

H-Script is Hydra's built-in ETL scripting language. Scripts (.hc files) run as "profiles" — triggered on a schedule, on file upload, by manual trigger from the web UI, or by another profile.

Typical use cases:

  • Pulling data files via FTP/SFTP
  • Parsing and loading records into SQL Server or MySQL
  • Running SQL queries and generating HTML/PDF reports
  • Emailing results and alerts between teams

Full language documentation is in Hydra_Docs/, including syntax references for loops, case expressions, state machines, file management, triggers, and events.


Tech Stack

  • PHP 7+ — application server
  • SQL Server (primary, via sqlsrv driver) or MySQL (via mysqli)
  • Windows Server — required for the HDACron .NET companion service
  • Standard web server (Apache / IIS)

Setup

Requirements

  • PHP 7+ with sqlsrv (SQL Server) or mysqli (MySQL) extension
  • A SQL Server or MySQL database
  • Write access to tmp/, ErrorLogs/, and cache/ directories (created automatically on first run)

Steps

  1. Copy HDAWCodeRoot/HDAWCodeRoot/ to your web server document root (or a subdirectory).
  2. Create cfg/alc_init.cfg from the provided example:
    cp cfg/alc_init.cfg.example cfg/alc_init.cfg
    
  3. Edit cfg/alc_init.cfg and fill in your database connection details, email settings, and IMAP credentials.
  4. Access the application at:
    HDAW.php?load=HDA_Enter&root=HDAWCodeRoot&home=<your-profile-name>
    

Note: The cfg/alc_init.cfg file contains credentials and is excluded from version control via .gitignore. Never commit it.


Project Layout

Hydra/
├── HDAWCodeRoot/
│   ├── HDAWCodeRoot/       PHP web application
│   │   ├── cfg/
│   │   │   └── alc_init.cfg.example   Configuration template
│   │   ├── Classes/        PHP class library
│   │   ├── Scripts/        Client-side JavaScript
│   │   ├── css/            Stylesheets
│   │   ├── Images/         UI assets
│   │   ├── templates/      Output templates
│   │   └── HDA_*.php       Core modules
│   ├── HDACron/            .NET Windows cron service
│   ├── HDAWCronProcess/    PHP cron endpoint
│   └── HDAWSoapProcess/    PHP SOAP endpoint
└── Hydra_Docs/
    ├── H-ScriptCore/       H-Script language documentation (PDFs)
    └── H-ScriptCodeSummary.docx

Contributing

Contributions are welcome. Please open an issue before submitting a pull request for non-trivial changes so the direction can be agreed first.

Areas where help is most valuable:

  • Migrating SQL queries to use parameterised statements (currently raw string concatenation)
  • Improving session security (session fixation, cookie handling)
  • PHP modernisation (moving away from globals, adding type declarations)
  • MySQL backend parity with the SQL Server backend
  • Documentation and worked H-Script examples

License

GPL-3.0 — see LICENSE.

About

Web-based campaign data management, ETL pipeline, and reporting platform with H-Script — a built-in scripting language for client-specific data pipelines

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages