Skip to content

amdom5/ElqKit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

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

Repository files navigation

ElqKit

Docker Flask Python

ElqKit is a web application toolkit designed specifically for the Oracle Eloqua marketing automation platform.

🎯 Overview

Oracle Eloqua is a powerful marketing automation platform used by enterprises for email marketing, lead generation, and customer journey management. ElqKit addresses common operational challenges by providing:

  • Dependency Deletion: Handle deletion of dependencies that aren't available via the UI
  • API Automation: Streamline repetitive API operations
  • Testing Utilities: Simplify testing workflows

✨ Features

πŸš€ AutoSubmit (Active)

Convert CSV files to HTTP POST requests for Eloqua forms with enterprise-grade reliability.

Key Capabilities:

  • Drag-and-drop file upload with 5MB limit
  • Real-time progress tracking with detailed status updates
  • Comprehensive validation and error reporting
  • Results download capability for audit trails
  • Column-to-field mapping for flexible data structure
  • Batch processing with timeout handling

How it works:

  1. Upload CSV file with form data
  2. Configure Site ID and elqFormName
  3. Each CSV row becomes a form submission
  4. Get detailed success/failure results

πŸš€ Quick Start

Prerequisites

  • Docker Engine 20.10+
  • Docker Compose 2.0+
  • At least 512MB RAM available
  • Port 8847 available (configurable)

Development Setup

# Clone the repository
git clone https://github.com/amdom5/ElqKit.git
cd ElqKit

# Start the application
docker-compose up -d

# View logs
docker-compose logs -f elqkit

# Access the application
open http://localhost:8847

Production Deployment

# Create production environment file
cat > .env << EOF
SECRET_KEY=your-super-secure-secret-key-here
FLASK_ENV=production
FLASK_DEBUG=false
PORT=8847
EOF

# Create production docker-compose file
cp docker-compose.yml docker-compose.prod.yml

# Edit production settings
nano docker-compose.prod.yml

# Deploy
docker-compose -f docker-compose.prod.yml up -d

πŸ“¦ Docker Deployment

Single Container Deployment

# Build the image
docker build -t elqkit:latest .

# Run production container
docker run -d \
  --name elqkit \
  --restart unless-stopped \
  -p 8847:8847 \
  -e FLASK_ENV=production \
  -e SECRET_KEY=your-secret-key \
  elqkit:latest

With Reverse Proxy (Recommended)

# Deploy with Nginx reverse proxy
docker-compose -f docker-compose.prod.yml up -d

For detailed deployment instructions including SSL setup, monitoring, and troubleshooting, see DOCKER_DEPLOYMENT.md.

πŸ— Architecture

elqkit/
β”œβ”€β”€ app.py                 # Main Flask application
β”œβ”€β”€ requirements.txt       # Python dependencies
β”œβ”€β”€ Dockerfile            # Production container config
β”œβ”€β”€ docker-compose.yml    # Development orchestration
β”œβ”€β”€ routes/               # Modular route handlers
β”‚   β”œβ”€β”€ main.py          # Landing page and navigation
β”‚   β”œβ”€β”€ autosubmit.py    # CSV to API converter
β”‚   β”œβ”€β”€ bulkdelete.py    # Bulk deletion tool
β”‚   └── testemail.py     # Email testing utilities
β”œβ”€β”€ templates/            # Jinja2 HTML templates
β”‚   β”œβ”€β”€ base.html        # Base template with layout
β”‚   β”œβ”€β”€ index.html       # Landing page
β”‚   └── */               # Tool-specific templates
β”œβ”€β”€ static/              # Frontend assets
β”‚   β”œβ”€β”€ css/            # Modern CSS with design system
β”‚   β”œβ”€β”€ js/             # ES6+ JavaScript modules
β”‚   └── images/         # SVG icons and branding
└── docs/               # Documentation

πŸ”’ Security

ElqKit is built with security as a priority:

  • Container Security: Non-root user execution
  • Input Validation: Comprehensive sanitization and validation
  • File Security: Type and size restrictions (CSV only, 5MB max)
  • No Persistent Storage: Privacy-focused, files processed in memory
  • Security Headers: Recommendations for production deployment
  • Secret Management: Environment variable configuration

For detailed security information, see SECURITY.md.

πŸ”§ Configuration

Environment Variables

# Required for production
SECRET_KEY=your-secure-secret-key

# Optional configuration  
FLASK_ENV=production          # production or development
FLASK_DEBUG=false            # true for development
PORT=8847                    # Application port

Security Recommendations

For production deployments:

# Install additional security packages
pip install Flask-WTF flask-talisman Flask-Limiter

# Configure in your application
from flask_wtf.csrf import CSRFProtect
from flask_talisman import Talisman

csrf = CSRFProtect(app)
Talisman(app)

πŸ§ͺ Development

Local Development Setup

# Clone and setup virtual environment
git clone https://github.com/amdom5/ElqKit.git
cd ElqKit
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Run development server
python app.py

πŸ“‹ Requirements

System Requirements

  • Python 3.11+
  • Docker Engine 20.10+
  • 512MB RAM minimum
  • 1GB disk space

πŸ†˜ Support

Documentation

Troubleshooting

Common Issues:

  1. Port 8847 in use: Change port in docker-compose.yml or kill conflicting process
  2. Permission denied: Check file permissions with sudo chown -R $USER:$USER .
  3. Container won't start: Check logs with docker logs elqkit
  4. Health check failing: Verify application is responding on configured port

Made with ❀️ for the Eloqua community

ElqKit is not officially affiliated with Oracle Corporation or Oracle Eloqua.

About

No description, website, or topics provided.

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors