# 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