BREAKING CHANGE: Complete removal of legacy workflows system - Remove entire workflows/ directory and all related files - Update Django settings to remove workflows from INSTALLED_APPS - Fix all URL references from workflows:marketplace to agents:marketplace - Update core views to use agents.models.Agent instead of config files - Fix agent detail template component includes (workflows/components → components) - Update documentation to reflect database-driven agents system only - Remove N8N workflow management script (no longer needed) Template fixes: - Agent header, quick agents panel, processing status, results container - All error pages (403, 404, 500) now point to agents marketplace - Base template navigation and footer updated - Wallet pages redirect to agents marketplace Core changes: - Homepage uses Agent.objects instead of get_all_agents() - Health check counts active agents from database - All template references updated to use components/ path Result: Clean, streamlined agents-only system with no legacy code 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
8.1 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Project Overview
Quantum Tasks AI is a Django-based AI agent marketplace platform. Users can purchase AI agent services through a web interface, with agent execution handled via N8N webhooks and payments processed through Stripe.
Key Architecture:
- Django Framework: Main web application using Django 5.2.4
- Agent System: Database-driven agents app with marketplace and N8N webhook execution
- Authentication: Custom user model with email verification
- Payments: Stripe integration with wallet system
- Database: SQLite for development, PostgreSQL for production (Railway)
- Static Files: WhiteNoise for production static file serving
Development Commands
Environment Setup
# Use virtual environment
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt # Production
pip install -r requirements-dev.txt # Development
# Start development server
./run_dev.sh # Recommended - includes migration checks
# OR
python manage.py runserver # Direct Django server
Database Operations
# Make migrations
python manage.py makemigrations
# Apply migrations
python manage.py migrate
# Create superuser
python manage.py createsuperuser
# Database shell
python manage.py dbshell
# Check database configuration
python manage.py check_db
Testing
# Run Django tests
python manage.py test
# Run pytest (if configured)
pytest
# Run specific app tests
python manage.py test authentication
python manage.py test agents
python manage.py test wallet
# Custom test scripts
python tests/simple_test.py
python tests/check_agents.py
Code Quality (Development Dependencies)
# Format code
black .
# Sort imports
isort .
# Lint code
flake8
# Type checking (if available)
mypy .
Production Commands
# Collect static files
python manage.py collectstatic --noinput
# Production server (via Gunicorn)
gunicorn netcop_hub.wsgi:application
Core Architecture
Apps Structure
- authentication/: Custom user model, email verification, password reset
- core/: Homepage, error handlers, utility functions
- agents/: Database-driven agent system (marketplace, execution, models, REST API)
- wallet/: Stripe payments, wallet management, transactions
Agent System (agents app)
Key Files:
agents/models.py: Agent, AgentCategory, AgentExecution modelsagents/views.py: REST API and web interface viewsagents/templates/agents/: Dynamic agent templates with form generationagents/management/commands/: Agent creation and management commands
Agent Flow:
- User browses marketplace (
/agents/) - Selects agent and fills dynamic form (
/agents/{slug}/) - Form submission creates AgentExecution and calls N8N webhook
- N8N processes request and returns response via webhook
- Results displayed with file upload support and real-time wallet updates
Database Models
User Management:
authentication.User: Custom user model with email verificationauthentication.PasswordResetToken: Password reset tokensauthentication.EmailVerificationToken: Email verification tokens
Agents:
agents.Agent: Agent definitions with JSON form schemas and pricingagents.AgentCategory: Agent categories with icons and descriptionsagents.AgentExecution: Execution history and results tracking
Payments:
wallet.Wallet: User wallet with balance trackingwallet.WalletTransaction: Transaction history and Stripe integration
Settings Configuration
Environment Variables (Required for Production):
SECRET_KEY: Django secret keyALLOWED_HOSTS: Comma-separated list of allowed hostsEMAIL_HOST_USER,EMAIL_HOST_PASSWORD: SMTP credentialsSTRIPE_SECRET_KEY,STRIPE_WEBHOOK_SECRET: Stripe API keysDATABASE_URL: PostgreSQL connection string (Railway)
N8N Webhook URLs: Agent-specific webhook URLs are stored in the database with each agent. Current working agents:
- Social Ads Generator: Creates compelling social media advertisements
- Job Posting Generator: Creates professional job postings
- PDF Summarizer: Analyzes and summarizes PDF documents with file upload
URL Structure
/ # Homepage (core app)
/auth/ # Authentication (login, register, etc.)
/agents/ # Agent marketplace (agents app)
/agents/{slug}/ # Individual agent pages
/wallet/ # Wallet management
/admin/ # Django admin
Key Components
Agent Configuration (Database-driven):
- All agent metadata stored in database (pricing, descriptions, webhooks)
- JSON form schemas for dynamic form generation
- Easy to add new agents via management commands or admin interface
Templates:
templates/base.html: Main layout with navigationtemplates/components/: Reusable UI componentsagents/templates/agents/: Dynamic agent forms and marketplace pages
Adding New Agents
- Create management command (recommended approach):
# agents/management/commands/create_new_agent.py
from django.core.management.base import BaseCommand
from agents.models import AgentCategory, Agent
class Command(BaseCommand):
def handle(self, *args, **options):
category, _ = AgentCategory.objects.get_or_create(
slug='category-slug',
defaults={'name': 'Category Name', 'icon': '🤖'}
)
Agent.objects.get_or_create(
slug='agent-slug',
defaults={
'name': 'Agent Name',
'short_description': 'Brief description',
'description': 'Full description',
'category': category,
'price': 10.0,
'form_schema': {
'fields': [
{
'name': 'input_field',
'type': 'text',
'label': 'Input Field',
'required': True
}
]
},
'webhook_url': 'http://your-n8n-webhook-url'
}
)
- Run the command:
python manage.py create_new_agent - Update N8N workflow to handle the new agent
- Agent will automatically appear in marketplace with dynamic form generation
Supported Form Field Types:
text: Text inputtextarea: Multi-line textselect: Dropdown with optionsfile: File upload with drag-and-dropurl: URL input with validationcheckbox: Boolean checkbox
Production Deployment
Railway Configuration:
- Automatic deployment from git repository
- PostgreSQL database provided by Railway
- Environment variables configured in Railway dashboard
- Static files served via WhiteNoise
Security Features:
- CSRF protection enabled
- Rate limiting on sensitive endpoints
- Secure headers in production
- HTTPS redirect and HSTS headers
- Session and cookie security
Development Notes
- Database: Uses SQLite by default for development reliability
- Cache: Redis preferred, falls back to local memory cache
- Email: Console backend in development, SMTP in production
- Debug Tools: Debug toolbar and Django extensions available in development
- Static Files: Collected to
staticfiles/directory for production - Media Files: User uploads stored in
media/directory
Common Development Tasks
Adding new environment variables:
- Add to
settings.pywithconfig()call - Add to required_env_vars list if production-required
- Document in this file
Database changes:
- Make model changes
- Run
python manage.py makemigrations - Review migration file
- Run
python manage.py migrate
Testing agent webhooks locally:
- Use ngrok or similar to expose local server
- Update webhook URLs in agent database records
- Test agent execution flow
- Check AgentExecution records and results display
Last updated: Last updated: Last updated: Last updated: Last updated: Last updated: Last updated: Last updated: Last updated: 2025-07-31 23:12:15