EMAILOUT / SETUP.md
Seth
update
5301ae9

EMAILOUT Setup Guide

Prerequisites

  1. OpenAI API Key - Get one from https://platform.openai.com/api-keys

Hugging Face Spaces Setup

  1. Create a new Space:

  2. Add OpenAI API Key as Secret:

    • Go to your Space Settings
    • Navigate to "Secrets" section
    • Add a new secret:
      • Key: OPENAI_API_KEY
      • Value: Your OpenAI API key
  3. Upload Files:

    • Upload all project files to your Space
    • The Dockerfile will handle the build process
  4. Deploy:

    • The Space will automatically build and deploy
    • Monitor the logs for any build errors

Local Development

  1. Install Dependencies:

    # Backend
    cd backend
    pip install -r requirements.txt
    
    # Frontend
    cd ../frontend
    npm install
    
  2. Set Environment Variables:

    export OPENAI_API_KEY=your_api_key_here
    
  3. Run Backend:

    cd backend
    uvicorn app.main:app --reload --port 8000
    
  4. Run Frontend:

    cd frontend
    npm run dev
    

Project Structure

EMAILOUT/
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ app/
β”‚   β”‚   β”œβ”€β”€ __init__.py
β”‚   β”‚   β”œβ”€β”€ main.py          # FastAPI application
β”‚   β”‚   β”œβ”€β”€ database.py      # SQLite database models
β”‚   β”‚   β”œβ”€β”€ models.py         # Pydantic models
β”‚   β”‚   └── gpt_service.py   # OpenAI GPT integration
β”‚   └── requirements.txt
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ pages/
β”‚   β”‚   β”‚   └── EmailSequenceGenerator.jsx
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”‚   β”œβ”€β”€ upload/
β”‚   β”‚   β”‚   β”œβ”€β”€ products/
β”‚   β”‚   β”‚   β”œβ”€β”€ prompts/
β”‚   β”‚   β”‚   β”œβ”€β”€ sequences/
β”‚   β”‚   β”‚   └── ui/
β”‚   β”‚   └── ...
β”‚   └── package.json
β”œβ”€β”€ Dockerfile
└── README.md

Features

  • βœ… CSV Upload from Apollo
  • βœ… Product Selection with Custom Products
  • βœ… Prompt Template Editor
  • βœ… GPT-Powered Sequence Generation
  • βœ… Real-time Streaming Results
  • βœ… CSV Export for Klenty/Outreach

API Endpoints

  • POST /api/upload-csv - Upload CSV file
  • POST /api/save-prompts - Save prompt templates
  • GET /api/generate-sequences - Generate sequences (SSE stream)
  • GET /api/download-sequences - Download sequences as CSV

Database

SQLite database is stored at /data/emailout.db (persistent in HF Spaces).

Uploaded files are stored at /data/uploads/.