mirror of
https://github.com/pacnpal/thrillwiki_django_no_react.git
synced 2025-12-20 12:51:09 -05:00
Add comprehensive system architecture and feature documentation for ThrillWiki
This commit is contained in:
168
memory-bank/documentation/Architecture.md
Normal file
168
memory-bank/documentation/Architecture.md
Normal file
@@ -0,0 +1,168 @@
|
||||
# System Architecture Documentation
|
||||
|
||||
## Overview
|
||||
ThrillWiki is a Django-based web platform built with a modular architecture focusing on theme park information management, user reviews, and content moderation.
|
||||
|
||||
## Technology Stack
|
||||
|
||||
### Backend
|
||||
- **Framework**: Django 5.1.6
|
||||
- **API**: Django REST Framework 3.15.2
|
||||
- **WebSocket Support**: Channels 4.2.0 with Redis
|
||||
- **Authentication**: django-allauth, OAuth Toolkit
|
||||
- **Database**: PostgreSQL with django-pghistory
|
||||
|
||||
### Frontend
|
||||
- **Templating**: Django Templates
|
||||
- **CSS Framework**: Tailwind CSS
|
||||
- **Enhancement**: HTMX, JavaScript
|
||||
- **Asset Management**: django-webpack-loader
|
||||
|
||||
### Infrastructure
|
||||
- **Static Files**: WhiteNoise 6.9.0
|
||||
- **Media Storage**: Local filesystem with custom storage backends
|
||||
- **Caching**: Redis (shared with WebSocket layer)
|
||||
|
||||
## System Components
|
||||
|
||||
### Core Applications
|
||||
|
||||
1. **Parks Module**
|
||||
- Park information management
|
||||
- Geographic data handling
|
||||
- Operating hours tracking
|
||||
- Integration with location services
|
||||
|
||||
2. **Rides Module**
|
||||
- Ride specifications
|
||||
- Manufacturer/Designer attribution
|
||||
- Historical data tracking
|
||||
- Technical details management
|
||||
|
||||
3. **Reviews System**
|
||||
- User-generated content
|
||||
- Media attachments
|
||||
- Rating framework
|
||||
- Integration with moderation
|
||||
|
||||
4. **Moderation System**
|
||||
- Content review workflow
|
||||
- Quality control mechanisms
|
||||
- User management
|
||||
- Verification processes
|
||||
|
||||
5. **Companies Module**
|
||||
- Company profiles
|
||||
- Verification system
|
||||
- Official update management
|
||||
- Park operator features
|
||||
|
||||
### Service Layer
|
||||
|
||||
1. **Authentication Service**
|
||||
```python
|
||||
# Key authentication flows
|
||||
User Authentication → JWT Token → Protected Resources
|
||||
Social Auth → Profile Creation → Platform Access
|
||||
```
|
||||
|
||||
2. **Media Service**
|
||||
```python
|
||||
# Media handling workflow
|
||||
Upload → Processing → Storage → Delivery
|
||||
```
|
||||
|
||||
3. **Analytics Service**
|
||||
```python
|
||||
# Analytics pipeline
|
||||
User Action → Event Tracking → Processing → Insights
|
||||
```
|
||||
|
||||
## Data Flow Architecture
|
||||
|
||||
```
|
||||
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
|
||||
│ Client │ ──→ │ Django │ ──→ │ Database │
|
||||
│ Browser │ ←── │ Server │ ←── │ (Postgres) │
|
||||
└─────────────┘ └──────────────┘ └─────────────┘
|
||||
↑ ↓
|
||||
┌──────────────┐
|
||||
│ Services │
|
||||
│ (Redis/S3) │
|
||||
└──────────────┘
|
||||
```
|
||||
|
||||
## Security Architecture
|
||||
|
||||
1. **Authentication Flow**
|
||||
- JWT-based authentication
|
||||
- Social authentication integration
|
||||
- Session management
|
||||
- Permission-based access control
|
||||
|
||||
2. **Data Protection**
|
||||
- Input validation
|
||||
- XSS prevention
|
||||
- CSRF protection
|
||||
- SQL injection prevention
|
||||
|
||||
## Deployment Model
|
||||
|
||||
### Production Environment
|
||||
```
|
||||
├── Application Server (Daphne/ASGI)
|
||||
├── Database (PostgreSQL)
|
||||
├── Cache/Message Broker (Redis)
|
||||
├── Static Files (WhiteNoise)
|
||||
└── Media Storage (Filesystem/S3)
|
||||
```
|
||||
|
||||
### Development Environment
|
||||
```
|
||||
├── Local Django Server
|
||||
├── Local PostgreSQL
|
||||
├── Local Redis
|
||||
└── Local File Storage
|
||||
```
|
||||
|
||||
## Monitoring and Scaling
|
||||
|
||||
1. **Performance Monitoring**
|
||||
- Page load metrics
|
||||
- Database query analysis
|
||||
- Cache hit rates
|
||||
- API response times
|
||||
|
||||
2. **Scaling Strategy**
|
||||
- Horizontal scaling of web servers
|
||||
- Database read replicas
|
||||
- Cache layer expansion
|
||||
- Media CDN integration
|
||||
|
||||
## Integration Points
|
||||
|
||||
1. **External Services**
|
||||
- Email service (ForwardEmail.net)
|
||||
- Social authentication providers
|
||||
- Geographic data services
|
||||
- Media processing services
|
||||
|
||||
2. **Internal Services**
|
||||
- WebSocket notifications
|
||||
- Background tasks
|
||||
- Media processing
|
||||
- Analytics processing
|
||||
|
||||
## System Requirements
|
||||
|
||||
### Minimum Requirements
|
||||
- Python 3.11+
|
||||
- PostgreSQL 13+
|
||||
- Redis 6+
|
||||
- Node.js 18+ (for frontend builds)
|
||||
|
||||
### Development Tools
|
||||
- black (code formatting)
|
||||
- flake8 (linting)
|
||||
- pytest (testing)
|
||||
- tailwind CLI (CSS processing)
|
||||
Reference in New Issue
Block a user