EMAIL_TEMPLATE/cline.md
Patsy dec4fbe68d
Some checks failed
CI/CD Pipeline / test (push) Has been cancelled
Phase 1 done
2026-08-07 16:46:44 +02:00

4 KiB
Raw Blame History

Café Bach Email Generator Project Instructions

📖 Project Overview

A Flask-based web application that generates beautifully formatted HTML invitation emails for internal events at Café Bach (Aidshilfe). Users fill out a simple form (title, date, location, description, image URL, button link, next event details), and the app renders a clean, minimalist HTML email template matching the provided design.

🛠 Tech Stack

  • Backend: Python 3.10+, Flask
  • Templating: Jinja2 (for HTML email generation)
  • Frontend: Vanilla HTML/CSS (minimalist, text-focused layout)
  • Image Handling: URL input (optional)
  • Testing: pytest, Flask-Testing
  • CI/CD: GitHub Actions

IMPORTANT INSTRUCTION: THE TERMINAL IS ALREADY IN THE VIRTUAL ENVORIONMENT DO NEVER ATTEMPT TO ACTIVATE OR CREATE A VIRTUAL ENVIRONMENT, IF YOU NEED ANY OF THAT PLEASE ASK!

📁 Directory Structure

cafe-bach-email-generator/ ├── app/ │ ├── init.py # Flask app factory │ ├── forms.py # WTForms for email generation │ ├── templates/ │ │ ├── base.html # Layout wrapper │ │ ├── generate.html # Main form view │ │ └── preview.html # Rendered email preview │ └── static/ │ ├── css/ │ │ └── style.css # Minimalist styling │ └── js/ │ └── main.js # Form handling & preview logic ├── tests/ │ ├── test_app.py │ └── test_forms.py ├── .github/ │ └── workflows/ │ └── ci-cd.yml # GitHub Actions pipeline ├── .env.example # Environment variables template ├── requirements.txt # Python dependencies ├── instructions.md # This file └── README.md # Project documerntation

Task List & Roadmap

Phase 1: Core Setup & Form UI

  • Initialize Flask app with app factory pattern
  • Create HTML form with fields: title, date/time, location, description, image URL (optional), button text, button URL, next event text, next event URL
  • Implement minimalist CSS matching the provided template style
  • Add client-side validation & preview toggle

Phase 2: Backend Generation Logic

  • Build Jinja2 email template matching termplate.html structure
  • Connect form data to template placeholders
  • Implement email preview generation endpoint (/preview)
  • Add copy-to-clipboard functionality for generated HTML

Phase 3: Enhancements & UX

  • Add image upload/URL validation
  • Implement responsive preview viewer
  • Add PDF export option (optional)
  • Cache frequently used templates (optional)

Phase 4: Testing & Documentation

  • Write unit tests for form validation & template rendering
  • Add integration tests for preview endpoint
  • Document API endpoints & setup steps in README.md
  • Perform accessibility & contrast checks (ADHD-friendly design)

🔄 CI/CD Pipeline (GitHub Actions)

Workflow: .github/workflows/ci-cd.yml

  1. Trigger: Push to main or develop, or pull requests
  2. Environment: Python 3.10+ on Ubuntu latest
  3. Steps:
    • Checkout repository
    • Set up Python environment
    • Install dependencies (requirements.txt)
    • Run linting (flake8, black, isort)
    • Execute tests (pytest --cov=app)
    • Build & deploy to staging (optional)
    • Notify via Slack/Discord on success/failure

Key Configuration:

name: CI/CD Pipeline
on:
  push:
    branches: [main, develop]
  pull_request:
    branches: [main]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Set up Python 3.10
        uses: actions/setup-python@v4
        with:
          python-version: '3.10'
      - name: Install dependencies
        run: |
          python -m pip install --upgrade pip
          pip install -r requirements.txt
      - name: Lint with flake8
        run: |
          pip install flake8
          flake8 app/ --count --select=E9,F63,F7,F82 --show-source --statistics
      - name: Run tests with pytest
        run: |
          pip install pytest pytest-cov
          pytest --cov=app --cov-report=xml