ai_qc/backend/BACKEND_README.md
nickviljoen 3fec052c12 Create frontend and backend folder structure for deployment
Organized the application into separate frontend and backend directories for cleaner deployment and better separation of concerns.

Frontend Directory (frontend/):
- index.html: Single-page web interface (renamed from web_ui.html)
- README.md: Frontend deployment guide
- Total size: ~113 KB (self-contained)
- Smart base path detection (works at / or /ai_qc/)
- No configuration changes required

Backend Directory (backend/):
- All Python files (api_server.py, llm_config.py, etc.)
- visual_qc_apps/: 33 QC check modules
- profiles/: 6 QC profile configurations
- brand_guidelines/: Reference asset storage
- config/: Environment configurations
- scripts/: Deployment automation
- uploads/, output/: Data directories
- requirements.txt, ai_qc.service, apache_config.conf
- Complete documentation

New Documentation:
- FOLDER_STRUCTURE.md: Comprehensive guide to new structure
- frontend/README.md: Frontend deployment instructions
- backend/BACKEND_README.md: Backend deployment guide

Deployment Mapping:
- frontend/ → /var/www/html/ai_qc/ (web root)
- backend/ → /opt/ai_qc/ (application directory)

Benefits:
- Clear separation of concerns
- Backend code not in web-accessible directory
- Independent frontend/backend updates
- Matches server's existing patterns (/opt/veo3, /opt/voice2text)
- Industry-standard architecture
- Easy to deploy and maintain

Original files preserved in root directory for reference.
Ready for production deployment following MIGRATION_GUIDE.md.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 11:55:53 +02:00

90 lines
2.6 KiB
Markdown

# Visual AI QC - Backend
This directory contains the complete backend application for the Visual AI QC platform.
## Contents
### Core Application Files
- **`api_server.py`** - Main Flask application with REST API endpoints
- **`run_api_server.py`** - Production server wrapper using Waitress WSGI
- **`llm_config.py`** - LLM (OpenAI/Gemini) configuration and API interaction
- **`profile_config.py`** - QC profile loading and management system
### Authentication & Security
- **`jwt_validator.py`** - Azure AD JWT token validation
- **`auth_middleware.py`** - Flask authentication middleware with httpOnly cookies
### Data & Storage
- **`brand_guidelines_db.py`** - Brand guidelines database management
- **`visual_qc_apps/`** - 33+ QC check modules with standardized interface
- **`profiles/`** - 6 QC profile configurations (JSON)
- **`brand_guidelines/`** - Reference asset storage and metadata
- **`config/`** - Environment configuration files
### Upload & Output Directories
- **`uploads/`** - Production file uploads (temporary storage)
- **`uploads-dev/`** - Development file uploads
- **`output/`** - Production generated reports (HTML/JSON)
- **`output-dev/`** - Development generated reports
### Deployment & Configuration
- **`requirements.txt`** - Python dependencies
- **`ai_qc.service`** - Systemd service configuration
- **`apache_config.conf`** - Apache virtual host template
- **`scripts/`** - Deployment and testing scripts
## Deployment Location
**On Server:** `/opt/ai_qc/`
This backend should be deployed to `/opt/ai_qc/` on the production server, following the standard pattern used by other applications on the server.
## Quick Start
### Production Deployment
1. **Copy to Server**
```bash
rsync -av backend/ user@server:/opt/ai_qc/
```
2. **Install Dependencies**
```bash
cd /opt/ai_qc
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
```
3. **Configure Production**
```bash
nano config/production.env
# Update paths to absolute:
# UPLOAD_FOLDER=/opt/ai_qc/uploads
# OUTPUT_FOLDER=/opt/ai_qc/output
```
4. **Set Permissions**
```bash
sudo chown -R www-data:www-data /opt/ai_qc
sudo chmod -R 750 /opt/ai_qc
sudo chmod 770 /opt/ai_qc/uploads /opt/ai_qc/output
```
5. **Install Service**
```bash
sudo cp ai_qc.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable ai_qc
sudo systemctl start ai_qc
```
## Related Documentation
- **Frontend Setup**: See `../frontend/README.md`
- **Complete Migration Guide**: See `../MIGRATION_GUIDE.md`
- **Full README**: See `README.md` in this directory
---
**Deploy to: `/opt/ai_qc/`** 🚀