Files
thrillwiki_django_no_react/cline_docs/systemPatterns.md
pacnpal 8d70bf8994 [Documentation] Create context documentation system
- Created comprehensive documentation structure
- Added productContext.md for product understanding
- Added activeContext.md for current development status
- Added systemPatterns.md for architecture patterns
- Added developmentWorkflow.md for process standards
- Added operationalContext.md for runtime details
- Added projectBoundaries.md for technical constraints
- Added techContext.md for technology stack
- Documented all major aspects of the system
- Established foundation for maintaining context
2024-11-13 23:40:36 +00:00

2.9 KiB

System Patterns

High-Level Architecture

Backend Architecture

  • Django-based MVT (Model-View-Template) architecture
  • Modular app structure for domain separation
  • HTMX for dynamic server-side rendering
  • AlpineJS for client-side interactivity

Core Apps

  1. Parks & Rides

    • parks/ - Park management
    • rides/ - Ride information
    • designers/ - Ride designer profiles
    • companies/ - Park operator profiles
  2. User Content

    • reviews/ - User reviews
    • media/ - Media management
    • moderation/ - Content moderation
  3. Supporting Systems

    • accounts/ - User management
    • analytics/ - Usage tracking
    • location/ - Geographic services
    • email_service/ - Communication
    • history_tracking/ - Change tracking

Core Technical Patterns

Data Flow

  1. Request Handling

    • Django URL routing
    • View processing
    • HTMX partial updates
    • Template rendering
  2. Content Management

    • Moderated submission flow
    • Media processing pipeline
    • Review validation system
    • History tracking
  3. User Interactions

    • HTMX for dynamic updates
    • AlpineJS for UI state
    • Partial template loading
    • Progressive enhancement

Database Patterns

  • Django ORM for data access
  • Related models for complex relationships
  • Signals for cross-model updates
  • History tracking for changes

Key Technical Decisions

Frontend Strategy

  1. Server-Side Rendering

    • Django templates as base
    • HTMX for dynamic updates
    • Partial templates by model
    • AlpineJS for client state
  2. Styling

    • Tailwind CSS
    • Component-based design
    • Responsive layouts

Backend Organization

  1. App Separation

    • Domain-driven design
    • Clear responsibility boundaries
    • Modular functionality
    • Reusable components
  2. Code Structure

    • Models for data definition
    • Views for business logic
    • Templates for presentation
    • URLs for routing
    • Signals for cross-cutting concerns

Integration Patterns

  1. External Services

    • Email service integration
    • Media storage handling
    • Analytics tracking
    • Location services
  2. Internal Communication

    • Django signals
    • Context processors
    • Middleware
    • Template tags

Data Flow Patterns

Content Creation

  1. User Input

    • Form submission
    • Media upload
    • Review creation
    • Park/ride updates
  2. Processing

    • Validation
    • Moderation queue
    • Media processing
    • History tracking
  3. Publication

    • Approval workflow
    • Public visibility
    • Notification system
    • Cache updates

Query Patterns

  1. Efficient Loading

    • Select related
    • Prefetch related
    • Cached queries
    • Optimized indexes
  2. Search Operations

    • Location-based queries
    • Full-text search
    • Filtered results
    • Sorted listings

Error Handling

  • Django middleware
  • Custom error pages
  • Logging system
  • User notifications

Security Patterns

  • Django authentication
  • Permission mixins
  • CSRF protection
  • XSS prevention
  • Input validation