- Enhanced the SiteBuilderWizard component to better manage and display metadata options for business types and brand personalities. - Updated state management in builderStore to streamline metadata loading and error handling. - Improved user feedback mechanisms in the Site Builder wizard, ensuring a more intuitive experience during site creation.
14 KiB
Site Builder & AI Functions - Comprehensive Audit Report
Executive Summary
This audit identifies all requirements, dependencies, and gaps for the Site Builder functionality and related AI generation features. The primary issues are:
- Database migrations not applied - Site builder tables don't exist
- Redis/Celery not running - AI tasks can't execute asynchronously
- All code components are present and properly configured
Requirements Audit Table
| Category | Component | Requirement | Status | Location/Notes | Action Required |
|---|---|---|---|---|---|
| Database | Migrations | 0001_initial.py - SiteBlueprint, PageBlueprint tables |
✅ EXISTS | backend/igny8_core/business/site_building/migrations/0001_initial.py |
❌ NOT APPLIED - Run migrations |
| Database | Migrations | 0002_sitebuilder_metadata.py - BusinessType, AudienceProfile, BrandPersonality, HeroImageryDirection |
✅ EXISTS | backend/igny8_core/business/site_building/migrations/0002_sitebuilder_metadata.py |
❌ NOT APPLIED - Run migrations |
| Database | Table | igny8_site_blueprints |
❌ MISSING | Should be created by 0001_initial.py | Run python manage.py migrate site_building |
| Database | Table | igny8_page_blueprints |
❌ MISSING | Should be created by 0001_initial.py | Run python manage.py migrate site_building |
| Database | Table | igny8_site_builder_business_types |
❌ MISSING | Should be created by 0002_sitebuilder_metadata.py | Run python manage.py migrate site_building |
| Database | Table | igny8_site_builder_audience_profiles |
❌ MISSING | Should be created by 0002_sitebuilder_metadata.py | Run python manage.py migrate site_building |
| Database | Table | igny8_site_builder_brand_personalities |
❌ MISSING | Should be created by 0002_sitebuilder_metadata.py | Run python manage.py migrate site_building |
| Database | Table | igny8_site_builder_hero_imagery |
❌ MISSING | Should be created by 0002_sitebuilder_metadata.py | Run python manage.py migrate site_building |
| Database | Seed Data | Business types, audience profiles, brand personalities, hero imagery | ✅ DEFINED | Migration 0002 includes seed_site_builder_metadata() function |
Will seed automatically when migration runs |
| App Config | Django App | igny8_core.business.site_building.apps.SiteBuildingConfig |
✅ REGISTERED | backend/igny8_core/settings.py:55 |
No action needed |
| App Config | Django App | igny8_core.modules.site_builder.apps.SiteBuilderConfig |
✅ REGISTERED | backend/igny8_core/settings.py:59 |
No action needed |
| Models | SiteBlueprint | Model with all fields (name, description, config_json, structure_json, status, hosting_type, version) | ✅ EXISTS | backend/igny8_core/business/site_building/models.py:10-83 |
No action needed |
| Models | PageBlueprint | Model with all fields (site_blueprint, slug, title, type, blocks_json, status, order) | ✅ EXISTS | backend/igny8_core/business/site_building/models.py:85-166 |
No action needed |
| Models | BusinessType | Model extending SiteBuilderOption | ✅ EXISTS | backend/igny8_core/business/site_building/models.py:189-194 |
No action needed |
| Models | AudienceProfile | Model extending SiteBuilderOption | ✅ EXISTS | backend/igny8_core/business/site_building/models.py:197-202 |
No action needed |
| Models | BrandPersonality | Model extending SiteBuilderOption | ✅ EXISTS | backend/igny8_core/business/site_building/models.py:205-210 |
No action needed |
| Models | HeroImageryDirection | Model extending SiteBuilderOption | ✅ EXISTS | backend/igny8_core/business/site_building/models.py:213-218 |
No action needed |
| Services | StructureGenerationService | Service to trigger AI structure generation | ✅ EXISTS | backend/igny8_core/business/site_building/services/structure_generation_service.py |
No action needed |
| Services | PageGenerationService | Service to generate page content via Writer | ✅ EXISTS | backend/igny8_core/business/site_building/services/page_generation_service.py |
No action needed |
| Services | SiteBuilderFileService | File management service | ✅ EXISTS | backend/igny8_core/business/site_building/services/file_management_service.py |
No action needed |
| AI Functions | GenerateSiteStructureFunction | AI function class | ✅ EXISTS | backend/igny8_core/ai/functions/generate_site_structure.py |
No action needed |
| AI Functions | Function Registration | generate_site_structure registered in registry |
✅ REGISTERED | backend/igny8_core/ai/registry.py:97-112 |
No action needed |
| AI Functions | AI Task Dispatch | run_ai_task Celery task |
✅ EXISTS | backend/igny8_core/ai/tasks.py:12-147 |
No action needed |
| AI Functions | Prompt Template | site_structure_generation prompt |
✅ EXISTS | backend/igny8_core/ai/prompts.py:242-307 |
No action needed |
| AI Functions | Prompt Mapping | Function name → prompt type mapping | ✅ CONFIGURED | backend/igny8_core/ai/prompts.py:599 |
No action needed |
| API Endpoints | SiteBlueprintViewSet | CRUD + generate_structure action | ✅ EXISTS | backend/igny8_core/modules/site_builder/views.py:32-81 |
No action needed |
| API Endpoints | PageBlueprintViewSet | CRUD + generate_content action | ✅ EXISTS | backend/igny8_core/modules/site_builder/views.py:141-172 |
No action needed |
| API Endpoints | SiteBuilderMetadataView | Metadata endpoint for dropdowns | ✅ EXISTS | backend/igny8_core/modules/site_builder/views.py:216-250 |
❌ FAILS - Needs DB tables |
| API Endpoints | SiteAssetView | File upload/download | ✅ EXISTS | backend/igny8_core/modules/site_builder/views.py:175-213 |
No action needed |
| API URLs | Site Builder URLs | /api/v1/site-builder/ routes |
✅ CONFIGURED | backend/igny8_core/modules/site_builder/urls.py |
No action needed |
| API URLs | URL Registration | Included in main urls.py | ✅ REGISTERED | backend/igny8_core/urls.py:30 |
No action needed |
| Billing | Credit Cost | site_structure_generation: 50 credits |
✅ DEFINED | backend/igny8_core/business/billing/constants.py:13 |
No action needed |
| Billing | Credit Cost | site_page_generation: 20 credits |
✅ DEFINED | backend/igny8_core/business/billing/constants.py:14 |
No action needed |
| Billing | Credit Check | CreditService.check_credits() called | ✅ IMPLEMENTED | backend/igny8_core/business/site_building/services/structure_generation_service.py:57 |
No action needed |
| Celery | Configuration | Celery app configured | ✅ CONFIGURED | backend/igny8_core/celery.py |
No action needed |
| Celery | Settings | CELERY_BROKER_URL, CELERY_RESULT_BACKEND | ✅ CONFIGURED | backend/igny8_core/settings.py:497-508 |
No action needed |
| Celery | Worker Container | igny8_celery_worker in docker-compose |
✅ DEFINED | docker-compose.app.yml:105-128 |
❌ NOT RUNNING - Start container |
| Celery | Beat Container | igny8_celery_beat in docker-compose |
✅ DEFINED | docker-compose.app.yml:130-153 |
❌ NOT RUNNING - Start container |
| Redis | Configuration | REDIS_HOST, REDIS_PORT env vars | ✅ CONFIGURED | docker-compose.app.yml:38-39, 115-116, 140-141 |
No action needed |
| Redis | Redis Service | External Redis service | ❌ NOT ACCESSIBLE | Expected from infra stack | ❌ NOT RUNNING - Start Redis service |
| Dependencies | Python Packages | celery>=5.3.0 | ✅ IN REQUIREMENTS | backend/requirements.txt:11 |
No action needed |
| Dependencies | Python Packages | redis | ✅ IN REQUIREMENTS | backend/requirements.txt:4 |
No action needed |
| Dependencies | Python Packages | Django>=5.2.7 | ✅ IN REQUIREMENTS | backend/requirements.txt:1 |
No action needed |
| Dependencies | Python Packages | djangorestframework | ✅ IN REQUIREMENTS | backend/requirements.txt:6 |
No action needed |
| Frontend | API Client | siteBuilderApi functions | ✅ EXISTS | frontend/src/services/siteBuilder.api.ts |
No action needed |
| Frontend | Store | useBuilderStore with metadata loading | ✅ EXISTS | frontend/src/store/builderStore.ts:399-412 |
No action needed |
| Logging | StructureGenerationService | Logging statements | ✅ IMPLEMENTED | backend/igny8_core/business/site_building/services/structure_generation_service.py:49-53, 98-102 |
No action needed |
| Logging | GenerateSiteStructure | Logging statements | ✅ IMPLEMENTED | backend/igny8_core/ai/functions/generate_site_structure.py:135 |
No action needed |
| Error Handling | InsufficientCreditsError | Handled in StructureGenerationService | ✅ IMPLEMENTED | backend/igny8_core/business/site_building/services/structure_generation_service.py:58-61 |
No action needed |
| Error Handling | Celery Fallback | Synchronous execution if Celery unavailable | ✅ IMPLEMENTED | backend/igny8_core/business/site_building/services/structure_generation_service.py:109-115 |
No action needed |
Critical Issues Summary
🔴 CRITICAL - Database Migrations Not Applied
Impact: All Site Builder endpoints fail with ProgrammingError: relation "igny8_site_builder_business_types" does not exist
Root Cause: Migrations exist but haven't been run on the database
Fix Required:
# Inside backend container or with access to database
python manage.py migrate site_building
Files Affected:
backend/igny8_core/business/site_building/migrations/0001_initial.pybackend/igny8_core/business/site_building/migrations/0002_sitebuilder_metadata.py
Tables That Will Be Created:
igny8_site_blueprintsigny8_page_blueprintsigny8_site_builder_business_typesigny8_site_builder_audience_profilesigny8_site_builder_brand_personalitiesigny8_site_builder_hero_imagery
🔴 CRITICAL - Redis Not Running
Impact: Celery tasks can't be queued, AI generation fails silently or runs synchronously
Root Cause: Redis service is not accessible (Connection refused errors in logs)
Fix Required:
- Ensure Redis service is running in the infra stack
- Verify network connectivity between backend and Redis
- Check Redis is accessible at
redis:6379from backend container
Configuration:
- Expected:
redis://redis:6379/0 - Environment vars:
REDIS_HOST=redis,REDIS_PORT=6379
🔴 CRITICAL - Celery Worker Not Running
Impact: Even if Redis is fixed, AI tasks won't execute because no worker is processing them
Root Cause: igny8_celery_worker container is not running
Fix Required:
docker compose -f docker-compose.app.yml -p igny8-app up -d igny8_celery_worker
Container Configuration: docker-compose.app.yml:105-128
🟡 WARNING - Celery Beat Not Running
Impact: Periodic tasks (credit replenishment, automation rules) won't run
Root Cause: igny8_celery_beat container is not running
Fix Required:
docker compose -f docker-compose.app.yml -p igny8-app up -d igny8_celery_beat
Verification Checklist
After fixing the critical issues, verify:
- Database migrations applied:
python manage.py showmigrations site_buildingshows all as[X] - Tables exist: Query
igny8_site_builder_business_typesreturns data - Redis accessible:
redis-cli -h redis pingreturnsPONG - Celery worker running:
docker ps | grep celery_workershows container - Celery worker connected: Check logs for "celery@hostname ready"
- Metadata endpoint works:
GET /api/v1/site-builder/metadata/returns 200 with data - AI task can be queued: Check logs for
[StructureGenerationService] Queued AI task - AI task executes: Check logs for
run_ai_task STARTED: generate_site_structure
Code Quality Assessment
✅ Strengths
- Complete Implementation: All core components are implemented
- Proper Separation: Business logic separated from API layer
- Error Handling: Graceful fallbacks for Celery unavailability
- Credit System: Properly integrated with billing system
- Logging: Comprehensive logging throughout the flow
- Type Hints: Good use of type hints in services
- Documentation: Models and services have docstrings
⚠️ Potential Improvements
- Migration Dependencies: Ensure migration dependencies are correct (currently depends on
igny8_core_auth.0014andwriter.0009) - Error Messages: Could be more user-friendly in API responses
- Testing: Test files exist but may need updates for current implementation
- Monitoring: Consider adding metrics for AI task success/failure rates
Next Steps
- Immediate: Run database migrations
- Immediate: Start Redis service (if in infra stack)
- Immediate: Start Celery worker container
- Immediate: Start Celery beat container (optional but recommended)
- Verification: Test metadata endpoint
- Verification: Test structure generation endpoint
- Monitoring: Watch logs for AI task execution
Files Reference
Core Models
backend/igny8_core/business/site_building/models.py- All Site Builder models
Services
backend/igny8_core/business/site_building/services/structure_generation_service.py- AI structure generationbackend/igny8_core/business/site_building/services/page_generation_service.py- Page content generationbackend/igny8_core/business/site_building/services/file_management_service.py- File handling
AI Functions
backend/igny8_core/ai/functions/generate_site_structure.py- AI function implementationbackend/igny8_core/ai/tasks.py- Celery task dispatcherbackend/igny8_core/ai/registry.py- Function registry
API Layer
backend/igny8_core/modules/site_builder/views.py- API endpointsbackend/igny8_core/modules/site_builder/urls.py- URL routingbackend/igny8_core/modules/site_builder/serializers.py- Request/response serialization
Configuration
backend/igny8_core/settings.py- Django settingsbackend/igny8_core/celery.py- Celery configurationdocker-compose.app.yml- Container definitionsbackend/requirements.txt- Python dependencies
Report Generated: Based on comprehensive codebase analysis Status: All code components present, infrastructure needs attention