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>
62 lines
No EOL
2.6 KiB
Python
Executable file
62 lines
No EOL
2.6 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 ResponsivenessApp(FlaskAppTemplate):
|
|
"""
|
|
Responsiveness Check
|
|
"""
|
|
|
|
def __init__(self):
|
|
# Define the hardcoded prompt
|
|
prompt = """You are performing a visual quality-control check on digital content (website, email, or app) to verify its responsiveness across different screen sizes. Your task is to determine whether the design maintains visual and functional consistency between desktop and mobile versions.
|
|
|
|
RESPONSIVENESS CRITERIA:
|
|
1. All content present in desktop should be accessible on mobile
|
|
2. Text should be legible on both desktop and mobile
|
|
3. Layout should adapt appropriately to screen size
|
|
4. Visual hierarchy should be maintained across screen sizes
|
|
5. Navigation should be usable on both desktop and mobile
|
|
6. No horizontal scrolling should be needed on mobile
|
|
7. Touch targets (buttons, links) should be appropriately sized on mobile
|
|
8. Brand consistency should be maintained across screen sizes
|
|
|
|
STEPS TO EVALUATE:
|
|
1. Determine if both desktop and mobile versions are visible in the image
|
|
2. If both versions are visible, compare:
|
|
a. Content completeness (all key content present on both)
|
|
b. Text legibility
|
|
c. Layout adaptation
|
|
d. Visual hierarchy
|
|
e. Navigation accessibility
|
|
f. Touch target sizing
|
|
g. Brand consistency
|
|
3. If only one version is visible, state that "Responsiveness could not be fully assessed from this image."
|
|
|
|
YOUR OUTPUT:
|
|
• State whether both desktop and mobile versions are visible in the image
|
|
• If both are visible, evaluate each responsiveness criterion
|
|
• State whether the design "passes" or "fails" the responsiveness check
|
|
• Include a JSON code block with these fields:
|
|
{
|
|
"both_versions_visible": true or false,
|
|
"content_completeness": "Pass" or "Fail" or "Not applicable",
|
|
"text_legibility": "Pass" or "Fail" or "Not applicable",
|
|
"layout_adaptation": "Pass" or "Fail" or "Not applicable",
|
|
"visual_hierarchy_maintained": "Pass" or "Fail" or "Not applicable",
|
|
"responsiveness_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 = ResponsivenessApp()
|
|
app.run(debug=True) |