# ThrillWiki Django + Vue.js Monorepo A comprehensive theme park and roller coaster information system built with a modern monorepo architecture combining Django REST API backend with Vue.js frontend. ## ๐Ÿ—๏ธ Architecture Overview This project uses a monorepo structure that cleanly separates backend and frontend concerns while maintaining shared resources and documentation: ``` thrillwiki-monorepo/ โ”œโ”€โ”€ backend/ # Django REST API (Port 8000) โ”‚ โ”œโ”€โ”€ apps/ # Modular Django applications โ”‚ โ”œโ”€โ”€ config/ # Django settings and configuration โ”‚ โ”œโ”€โ”€ templates/ # Django templates โ”‚ โ””โ”€โ”€ static/ # Static assets โ”œโ”€โ”€ frontend/ # Vue.js SPA (Port 5174) โ”‚ โ”œโ”€โ”€ src/ # Vue.js source code โ”‚ โ”œโ”€โ”€ public/ # Static assets โ”‚ โ””โ”€โ”€ dist/ # Build output โ”œโ”€โ”€ shared/ # Shared resources and documentation โ”‚ โ”œโ”€โ”€ docs/ # Comprehensive documentation โ”‚ โ”œโ”€โ”€ scripts/ # Development and deployment scripts โ”‚ โ”œโ”€โ”€ config/ # Shared configuration โ”‚ โ””โ”€โ”€ media/ # Shared media files โ”œโ”€โ”€ architecture/ # Architecture documentation โ””โ”€โ”€ profiles/ # Development profiles ``` ## ๐Ÿš€ Quick Start ### Prerequisites - **Python 3.11+** with [uv](https://docs.astral.sh/uv/) for backend dependencies - **Node.js 18+** with [pnpm](https://pnpm.io/) for frontend dependencies - **PostgreSQL 14+** (optional, defaults to SQLite for development) - **Redis 6+** (optional, for caching and sessions) ### Development Setup 1. **Clone the repository** ```bash git clone cd thrillwiki-monorepo ``` 2. **Install dependencies** ```bash # Install frontend dependencies pnpm install # Install backend dependencies cd backend && uv sync && cd .. ``` 3. **Environment configuration** ```bash # Copy environment files cp .env.example .env cp backend/.env.example backend/.env cp frontend/.env.development frontend/.env.local # Edit .env files with your settings ``` 4. **Database setup** ```bash cd backend uv run manage.py migrate uv run manage.py createsuperuser cd .. ``` 5. **Start development servers** ```bash # Start both servers concurrently pnpm run dev # Or start individually pnpm run dev:frontend # Vue.js on :5174 pnpm run dev:backend # Django on :8000 ``` ## ๐Ÿ“ Project Structure Details ### Backend (`/backend`) - **Django 5.0+** with REST Framework for API development - **Modular app architecture** with separate apps for parks, rides, accounts, etc. - **UV package management** for fast, reliable Python dependency management - **PostgreSQL/SQLite** database with comprehensive entity relationships - **Redis** for caching, sessions, and background tasks - **Comprehensive API** with frontend serializers for camelCase conversion ### Frontend (`/frontend`) - **Vue 3** with Composition API and `