ai_qc/backend/visual_qc_apps/crop_marks/app.py
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

54 lines
No EOL
2.3 KiB
Python
Executable file

import os
import sys
# Add parent directory to path to import shared modules
sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
from visual_qc_apps.flask_app_template import FlaskAppTemplate
class CropMarksApp(FlaskAppTemplate):
"""
Crop Marks Check
"""
def __init__(self):
# Define the hardcoded prompt
prompt = """You are performing a visual quality-control check on a print design to verify if crop marks are present and correct. Your task is to determine whether the design has appropriate crop marks for printing.
CROP MARKS CRITERIA:
1. Crop marks should be present in print-ready files
2. Crop marks should indicate the trim area of the document
3. Crop marks should be positioned outside the bleed area
4. Crop marks should be thin lines and not intrude into the design
5. Crop marks should appear at each corner of the document
6. For some specialized printing, registration marks, color bars, and other print marks may also be required
STEPS TO EVALUATE:
1. Look for visible crop marks in the design (typically thin lines at the corners)
2. Check if the crop marks correctly indicate the trim area
3. Verify the crop marks are positioned outside the bleed area
4. Check if crop marks appear at all four corners
5. If no crop marks are visible in a print design, this is generally a fail
6. If the design is not intended for print, state that "Crop marks are not applicable for this design"
YOUR OUTPUT:
• State whether crop marks are visible in the design
• If visible, state whether they appear correct and properly positioned
• State whether the design "passes" or "fails" the crop marks check
• Include a JSON code block with these fields:
{
"crop_marks_visible": true or false,
"crop_marks_at_all_corners": true or false or "Not applicable",
"crop_marks_outside_bleed": true or false or "Not applicable",
"crop_marks_check": "Pass" or "Fail" or "Not applicable",
"issues": ["List specific issues identified, if any, else an empty array"],
"recommendations": ["List specific recommendations if applicable, else an empty array"]
}"""
# Initialize the Flask app with the prompt
super().__init__(__name__, prompt)
# Run the app if executed directly
if __name__ == "__main__":
app = CropMarksApp()
app.run(debug=True)