Files
thrillwiki_django_no_react/cline_docs/techContext.md
2024-12-24 14:24:18 -05:00

267 lines
5.2 KiB
Markdown

# Technical Context
## Core Technologies
### Backend Framework
1. Django
- MVT architecture
- ORM for data management
- Template system
- URL routing
- Form handling
- Authentication
- Admin interface
2. Python
- Version requirements
- Core libraries
- Package management
- Virtual environments
### Frontend Technologies
1. HTMX
- Dynamic updates and server interactions
- Partial rendering and progressive enhancement
- Server-side processing and form handling
- See frontendArchitecture.md for detailed implementation
2. AlpineJS
- UI state management and reactivity
- Component behavior and lifecycle
- Event handling and DOM manipulation
- See frontendArchitecture.md for component patterns
3. Tailwind CSS
- Utility-first styling with custom configuration
- Component design system
- Responsive layouts and dark mode support
- See frontendArchitecture.md for styling guide
## Integration Patterns
### Template System
1. Base Structure
- Base templates
- Partial templates by model
- Component reuse
- Template inheritance
2. HTMX Integration
- Partial updates
- Server triggers
- Event handling
- Response processing
### Data Flow
1. Model Layer
- Django ORM
- Database schema
- Relationships
- Validation rules
2. View Layer
- Class-based views
- Function views
- Mixins
- Decorators
3. Template Layer
- Django templates
- HTMX partials
- AlpineJS components
- Tailwind styles
## Key Libraries/Frameworks
### Django Extensions
1. Core Apps
- django.contrib.auth
- django.contrib.admin
- django.contrib.sessions
- django.contrib.messages
2. Third-Party
- django-tailwind
- django-htmx
- Additional dependencies
### Frontend Libraries
1. CSS Framework
- Tailwind CSS with custom configuration
- Theme system with light/dark mode support
- Component-specific style patterns
- See frontendArchitecture.md for complete styling guide
2. JavaScript
- AlpineJS for reactive components
- HTMX for server interactions
- Location autocomplete system
- Alert and modal components
- See frontendArchitecture.md for component documentation
3. UI Components
- Form elements and validation
- Navigation and menus
- Status indicators and badges
- Modal and alert system
- See frontendArchitecture.md for implementation details
## Infrastructure Choices
### Development Environment
1. Local Setup
- Python environment
- Django configuration
- Tailwind setup
- Development server
2. Tools
- VSCode
- Git
- Package managers
- Development utilities
### Production Environment
1. Hosting
- Server requirements
- Domain configuration
- SSL/TLS setup
- Static/media serving
2. Services
- Database hosting
- File storage
- Email service
- Monitoring tools
## Technical Constraints
### Development Rules
1. Code Standards
- Python style guide
- Django best practices
- Frontend patterns
- Documentation requirements
2. Process Requirements
- Git workflow
- Testing standards
- Review process
- Deployment steps
### Technology Limitations
1. Frontend
- HTMX/AlpineJS only (no React/Vue/Angular)
- Progressive enhancement approach required
- Must support latest 2 versions of major browsers
- See frontendArchitecture.md for detailed browser support
- Performance targets:
* First contentful paint < 1.5s
* Time to interactive < 2s
* Core Web Vitals compliance
2. Backend
- Django version constraints
- Database limitations
- API restrictions
- Security requirements
## Development Environment
### Local Setup
1. Required Software
- Python
- pip
- Git
- Node.js (for Tailwind)
2. Configuration
- Environment variables
- Development settings
- Database setup
- Media handling
### Development Tools
1. Editor Setup
- VSCode configuration
- Extensions
- Linting
- Formatting
2. Testing Tools
- Django test runner
- Coverage tools
- Browser testing
- Performance testing
## Version Control
### Git Configuration
1. Repository Structure
- Main branch workflow
- Commit standards
- Push requirements
- Version tracking
2. Process
- Commit messages
- Code review
- Documentation
- Deployment
## Dependencies
### Python Packages
1. Core Dependencies
- Django
- Database adapters
- Utility packages
- Testing tools
2. Development Dependencies
- Debug tools
- Testing utilities
- Documentation generators
- Linting tools
### Frontend Dependencies
1. Required Packages
- Tailwind CSS
- AlpineJS
- HTMX
- Development tools
2. Build Tools
- Node.js
- npm/yarn
- Build scripts
- Asset compilation
## Documentation Standards
### Code Documentation
1. Python
- Docstrings
- Type hints
- Comments
- README files
2. Templates
- Component documentation
- HTMX attributes
- AlpineJS directives
- Style classes
### Technical Documentation
1. System Documentation
- Architecture overview
- Setup guides
- Deployment process
- Maintenance procedures
2. Developer Guides
- Getting started
- Best practices
- Common patterns
- Troubleshooting