ai_qc/frontend/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

170 lines
4.1 KiB
Markdown

# Visual AI QC - Frontend
This directory contains the frontend web interface for the Visual AI QC application.
## Contents
- **`index.html`** - Single-page web application interface
## Purpose
The frontend is a self-contained HTML file that provides:
- User interface for file uploads
- Authentication with Microsoft Azure AD (MSAL)
- Profile and settings configuration
- Real-time analysis progress tracking
- Results visualization and report downloads
- Reference asset management
## Smart Base Path Detection
The frontend automatically detects its deployment location and adjusts API calls accordingly:
```javascript
function getBasePath() {
const path = window.location.pathname;
// Handles both root (/) and subdirectory (/ai_qc/) deployments
if (path.includes('/ai_qc/')) {
return path.substring(0, path.indexOf('/ai_qc/') + 7);
}
return '/';
}
```
This means **no code changes needed** when deploying to different paths!
## Deployment Instructions
### For Local Testing
Place in any web-accessible directory and open in browser:
```bash
# Example: Open directly
open index.html
# Or serve with Python
cd frontend/
python3 -m http.server 8080
# Open http://localhost:8080
```
### For Production (Web Server)
#### Apache
```bash
# Copy to web root
sudo cp index.html /var/www/html/ai_qc/
# Or serve from subdirectory
sudo mkdir -p /var/www/html/ai_qc
sudo cp index.html /var/www/html/ai_qc/
```
#### Nginx
```nginx
server {
listen 80;
server_name your-domain.com;
location / {
root /var/www/html/ai_qc;
index index.html;
}
}
```
## Configuration Requirements
The frontend requires the backend API to be accessible. Configure your web server to proxy API requests:
### Apache Proxy Configuration
```apache
# Proxy API requests to backend
ProxyPass /api http://localhost:7183/api
ProxyPassReverse /api http://localhost:7183/api
# Or for subdirectory deployment
ProxyPass /ai_qc/api http://localhost:7183/api
ProxyPassReverse /ai_qc/api http://localhost:7183/api
```
### Nginx Proxy Configuration
```nginx
location /api {
proxy_pass http://localhost:7183;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
```
## Backend Connection
The frontend communicates with the backend through these API endpoints:
- `/api/profiles` - Get available QC profiles
- `/api/start_analysis` - Start file analysis
- `/api/progress/{session_id}` - Check analysis progress
- `/api/output_files` - List saved reports
- `/auth/login` - Authenticate with MSAL token
- `/auth/logout` - Sign out
- `/auth/status` - Check authentication status
## Authentication
The frontend uses **Microsoft Authentication Library (MSAL)** for authentication:
- **PKCE Flow** for secure single-page application authentication
- **Popup-based login** for seamless user experience
- **httpOnly cookies** managed by backend for session security
### MSAL Configuration Required
```javascript
// Configured in index.html
const msalConfig = {
auth: {
clientId: "YOUR_AZURE_CLIENT_ID",
authority: "https://login.microsoftonline.com/YOUR_TENANT_ID"
}
};
```
Update these values in `index.html` or set via backend configuration.
## Browser Compatibility
- Chrome 90+
- Firefox 88+
- Safari 14+
- Edge 90+
Requires JavaScript enabled for full functionality.
## File Size
- **index.html**: ~110 KB (self-contained)
- No external dependencies (MSAL loaded from CDN)
## Updates and Maintenance
To update the frontend:
1. Edit `index.html` locally
2. Test changes in browser
3. Deploy updated file to web server
4. Clear browser cache if needed
No server restart required for frontend-only changes!
## Related Documentation
- **Backend Setup**: See `../backend/README.md`
- **Full Migration Guide**: See `../MIGRATION_GUIDE.md`
- **Deployment Structure**: See `../DEPLOYMENT_RESTRUCTURE.md`
## Support
For issues or questions:
- Check browser console (F12) for JavaScript errors
- Verify backend API is running and accessible
- Check authentication configuration (Azure AD client ID)
- Review network tab for failed API requests
---
**Visual AI QC Frontend** - Simple, secure, and smart 🎨