Files
thrillwiki_django_no_react/docs/technical_architecture.md
pacnpal f1977cde3f docs
2024-11-04 18:34:12 +00:00

3.3 KiB

ThrillWiki Technical Architecture

┌─────────────────────────────────────────────────────────────┐
│                    ThrillWiki Platform                      │
├─────────────────┬─────────────────────┬───────────────────┤
│  Frontend Layer │   Application Layer  │   Storage Layer   │
├─────────────────┤                     │                   │
│ - Templates     │    Django Apps      │  - PostgreSQL DB  │
│ - Tailwind CSS  │    ┌──────────┐     │  - Media Storage │
│ - JavaScript    │    │  Parks   │     │  - Static Files  │
│                 │    │  Rides   │     │                   │
│ Components      │    │Companies │     │                   │
│ - Photo Gallery │    │Designers │     │                   │
│ - Review Forms  │    └──────────┘     │                   │
│                 │                     │                   │
├─────────────────┼─────────────────────┼───────────────────┤
│  Auth Layer     │   Service Layer     │   Analytics Layer │
├─────────────────┤                     │                   │
│ - Django Auth   │    Core Services    │  - Page Tracking  │
│ - Social Auth   │    ┌──────────┐     │  - Trending Calc  │
│ - Permissions   │    │ Reviews  │     │  - Usage Stats    │
│                 │    │  Media   │     │                   │
│                 │    │Analytics │     │                   │
│                 │    └──────────┘     │                   │
└─────────────────┴─────────────────────┴───────────────────┘

Data Flow:
User Request → URL Router → View → Model → Database
                        ↓
                    Template → Response

Content Relations:
Park ──┬── Areas
       └── Rides ─┬── Manufacturer
                 └── Designer

Media Storage:
Content ─→ Generic Relation ─→ Photos

Analytics Flow:
Page View → Tracking → Trending Calculation

Key Components

  1. Frontend Layer

    • Template-based rendering
    • Tailwind CSS styling
    • JavaScript enhancements
    • Interactive components
  2. Application Layer

    • Core domain apps
    • Business logic
    • Data validation
    • Content management
  3. Storage Layer

    • Database persistence
    • Media file storage
    • Caching system
  4. Authentication Layer

    • User management
    • Social authentication
    • Permission control
  5. Service Layer

    • Review system
    • Media handling
    • Email services
  6. Analytics Layer

    • View tracking
    • Trend analysis
    • Usage statistics