# Quick Start Guide: SharePoint Integration & Scheduling

This guide will help you quickly set up SharePoint integration and automated report generation.

## Quick Setup (5 minutes)

### 1. Install Dependencies

```bash
pip install -r requirements.txt
```

### 2. Create Configuration

```bash
cp config.yaml.template config.yaml
```

### 3. Configure SharePoint

Edit `config.yaml`:

```yaml
sharepoint:
  enabled: true
  site_url: "https://yourcompany.sharepoint.com/sites/YourSite"
  folder_path: "/Shared Documents/Reports"  # Path to your Excel files
  use_app_authentication: true
  client_id: "your-azure-ad-client-id"
  client_secret: "your-azure-ad-client-secret"
```

**To get Azure AD credentials:**
1. Go to Azure Portal → App registrations
2. Create new registration or use existing
3. Create a client secret
4. Grant SharePoint API permissions: `Sites.Read.All`
5. Copy Client ID and Client Secret to config

### 4. Choose Your Deployment Method

#### Option A: Scheduled Reports (Recommended)

Edit `config.yaml`:
```yaml
scheduler:
  enabled: true
  schedule_type: "cron"
  cron_expression: "0 8 * * *"  # 8 AM daily
  timezone: "America/New_York"
```

Start scheduler:
```bash
python scheduler.py
```

#### Option B: On-Demand via API

Edit `config.yaml`:
```yaml
api:
  enabled: true
  port: 8080
  api_key: "your-secret-key"  # Optional but recommended
```

Start API server:
```bash
python api_server.py
```

Generate report:
```bash
curl -X POST http://localhost:8080/api/generate \
  -H "X-API-Key: your-secret-key" \
  -H "Content-Type: application/json \
  -d '{"download_from_sharepoint": true}'
```

## How It Works

1. **SharePoint Download**: Downloads latest Excel files from SharePoint folder
2. **Report Generation**: Processes Excel files and generates reports
3. **Output**: Creates `output/report.json` and `output/report.html`

## Testing

### Test SharePoint Connection

```bash
python sharepoint_downloader.py
```

This will download files from SharePoint to the `reports/` directory.

### Test Report Generation

```bash
python report_generator.py
```

This will generate reports from files in the `reports/` directory.

## Deployment Options

### As a Service (Linux)

```bash
# Create systemd service
sudo nano /etc/systemd/system/vendor-report.service

# Add:
[Unit]
Description=Vendor Report Scheduler
After=network.target

[Service]
Type=simple
User=your-user
WorkingDirectory=/path/to/vendor_report
ExecStart=/usr/bin/python3 /path/to/vendor_report/scheduler.py
Restart=always

[Install]
WantedBy=multi-user.target

# Enable and start
sudo systemctl enable vendor-report
sudo systemctl start vendor-report
```

### Docker (Coming Soon)

The application can be containerized for easy deployment.

## Troubleshooting

### SharePoint Authentication Fails

- Verify Azure AD app has correct permissions
- Check client ID and secret are correct
- Ensure SharePoint site URL is correct (include `/sites/SiteName`)

### Files Not Downloading

- Check folder path is correct (use SharePoint's "Copy path" feature)
- Verify app has read permissions
- Check file pattern matches your Excel files

### Scheduler Not Running

- Check timezone is correct
- Verify cron expression format
- Check logs for errors

## Next Steps

- Set up monitoring/alerting for failed reports
- Configure webhook notifications
- Set up automated email delivery of reports
- Integrate with other systems via API

