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**:
- Go to https://huggingface.co/spaces
- Click "Create new Space"
- Select "Docker" as the SDK
- Name it "EMAILOUT" (or your preferred name)
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**:
```bash
# Backend
cd backend
pip install -r requirements.txt
# Frontend
cd ../frontend
npm install
```
2. **Set Environment Variables**:
```bash
export OPENAI_API_KEY=your_api_key_here
```
3. **Run Backend**:
```bash
cd backend
uvicorn app.main:app --reload --port 8000
```
4. **Run Frontend**:
```bash
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/`.