first commit

This commit is contained in:
bolade
2025-08-05 22:29:54 +01:00
commit 974ffa6554
33 changed files with 3297 additions and 0 deletions
+134
View File
@@ -0,0 +1,134 @@
# Email Alerts System - Flask Deployment Guide
## Overview
This Flask web application provides a user-friendly interface for the Email Alerts System with configurable settings for time frames, email monitoring, and alert levels.
## Features
### ✅ Configurable Settings
- **Email Address**: Set which email to monitor for responses
- **Time Frames**: Add unlimited custom time frames for alerts (e.g., 1-24 hours, 24-48 hours, 48+ hours)
- **Email Range**: Configure how many days back to check emails (1-365 days)
- **Agency Domains**: Set which email domains indicate agency responses
### ✅ Web Interface
- **Dashboard**: View system status and process emails
- **Settings**: Configure all system parameters
- **Real-time Updates**: See processing results and thread status
## Installation
### 1. Install Dependencies
```bash
pip install -r requirements.txt
```
### 2. Environment Setup
Copy the example environment file and configure your settings:
```bash
cp env.example .env
```
Edit `.env` with your credentials:
```env
ZOHO_EMAIL=your-email@domain.com
ZOHO_APP_PASSWORD=your-app-password
GROQ_API_KEY=your-groq-api-key
TWILIO_ACCOUNT_SID=your-twilio-sid
TWILIO_AUTH_TOKEN=your-twilio-token
TWILIO_PHONE_NUMBER=your-twilio-phone
SECRET_KEY=your-secret-key-here
```
### 3. Run the Application
```bash
python run.py
```
The web interface will be available at: http://localhost:5000
## Usage
### Dashboard
- **Test Connection**: Verify email connectivity
- **Process Emails**: Run the email processing pipeline
- **Refresh Threads**: Update the list of threads needing alerts
### Settings
1. **Email Configuration**:
- Set the email address to monitor
- Configure how many days back to check emails
- Add agency domains (comma-separated)
2. **Time Frames**:
- Add unlimited custom time frames
- Set hours and alert levels for each frame
- Remove unwanted time frames
3. **Save Configuration**: All settings are automatically saved
## Configuration Examples
### Time Frames
```
1-24 hours: 24 hours, Level 1 (Normal)
24-48 hours: 48 hours, Level 2 (Urgent)
48+ hours: 72 hours, Level 3 (Critical)
Custom: 12 hours, Level 1 (Early warning)
```
### Email Range
- **7 days**: Standard monitoring
- **30 days**: Monthly monitoring
- **90 days**: Quarterly monitoring
### Agency Domains
```
projects@manaknightdigital.com
support@company.com
help@agency.com
```
## API Endpoints
- `GET /` - Dashboard
- `GET /settings` - Settings page
- `POST /update_settings` - Update configuration
- `POST /process_emails` - Process emails and send alerts
- `GET /get_threads` - Get threads needing alerts
- `GET /test_connection` - Test email connection
## Production Deployment
### Using Gunicorn
```bash
pip install gunicorn
gunicorn -w 4 -b 0.0.0.0:5000 app:app
```
### Using Docker
```dockerfile
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
EXPOSE 5000
CMD ["gunicorn", "-w", "4", "-b", "0.0.0.0:5000", "app:app"]
```
## Troubleshooting
### Common Issues
1. **Connection Failed**: Check Zoho IMAP settings and app password
2. **No Alerts Sent**: Verify Twilio credentials and phone numbers
3. **AI Analysis Errors**: Check Groq API key and quota
### Logs
Check the console output for detailed error messages and processing results.
## Security Notes
- Use strong SECRET_KEY for production
- Enable HTTPS in production
- Restrict access to authorized users
- Regularly rotate API keys and passwords