mirror of
https://github.com/pacnpal/thrillwiki_django_no_react.git
synced 2025-12-20 12:11:13 -05:00
d504d41de26bbf5979153b9e6def51957791c79f
- Add complete backend/ directory with full Django application - Add frontend/ directory with Vite + TypeScript setup ready for Next.js - Add comprehensive shared/ directory with: - Complete documentation and memory-bank archives - Media files and avatars (letters, park/ride images) - Deployment scripts and automation tools - Shared types and utilities - Add architecture/ directory with migration guides - Configure pnpm workspace for monorepo development - Update .gitignore to exclude .django_tailwind_cli/ build artifacts - Preserve all historical documentation in shared/docs/memory-bank/ - Set up proper structure for full-stack development with shared resources
ThrillWiki Django + Vue.js Monorepo
A modern monorepo architecture for ThrillWiki, combining a Django REST API backend with a Vue.js frontend.
🏗️ Architecture
This project uses a monorepo structure that cleanly separates backend and frontend concerns:
thrillwiki-monorepo/
├── backend/ # Django REST API
├── frontend/ # Vue.js SPA
└── shared/ # Shared resources and documentation
🚀 Quick Start
Prerequisites
Development Setup
-
Clone the repository
git clone <repository-url> cd thrillwiki-monorepo -
Install dependencies
# Install frontend dependencies pnpm install # Install backend dependencies cd backend && uv sync -
Start development servers
# Start both frontend and backend pnpm run dev # Or start individually pnpm run dev:frontend # Vue.js on :3000 pnpm run dev:backend # Django on :8000
📁 Project Structure
Backend (/backend)
- Django REST API with modular app architecture
- UV package management for Python dependencies
- PostgreSQL database (configurable)
- Redis for caching and sessions
Frontend (/frontend)
- Vue 3 with Composition API
- TypeScript for type safety
- Vite for fast development and building
- Tailwind CSS for styling
- Pinia for state management
Shared (/shared)
- Documentation and deployment guides
- Shared TypeScript types
- Build and deployment scripts
- Docker configurations
🛠️ Development Workflow
Available Scripts
# Development
pnpm run dev # Start both servers
pnpm run dev:frontend # Frontend only
pnpm run dev:backend # Backend only
# Building
pnpm run build # Build for production
pnpm run build:frontend # Frontend build only
# Testing
pnpm run test # Run all tests
pnpm run test:frontend # Frontend tests
pnpm run test:backend # Backend tests
# Code Quality
pnpm run lint # Lint all code
pnpm run format # Format all code
Backend Commands
cd backend
# Django management
uv run manage.py migrate
uv run manage.py createsuperuser
uv run manage.py collectstatic
# Testing
uv run manage.py test
🔧 Configuration
Environment Variables
Create .env files for local development:
# Root .env (shared settings)
DATABASE_URL=postgresql://user:pass@localhost/thrillwiki
REDIS_URL=redis://localhost:6379
SECRET_KEY=your-secret-key
# Backend .env
DJANGO_SETTINGS_MODULE=config.django.local
DEBUG=True
# Frontend .env
VITE_API_BASE_URL=http://localhost:8000/api
📖 Documentation
🚀 Deployment
See Deployment Guide for production setup instructions.
🤝 Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and linting
- Submit a pull request
📄 License
This project is licensed under the MIT License.
Description
This is a Django-based theme park management system called ThrillWiki that provides comprehensive functionality for managing parks, rides, locations, and related entities. The system includes features for user accounts, content moderation, history tracking, media management, and analytics. It follows a modular architecture with separate Django apps for each major feature area and uses Tailwind CSS for frontend styling. The project emphasizes maintainability through extensive documentation and decision tracking in dedicated memory-bank directories.
https://www.thrillwiki.com
Languages
Python
61.1%
HTML
31.4%
CSS
6.5%
JavaScript
0.9%