Files
thrillwiki_django_no_react/cline_docs/architecture/migration-mapping.md
pacnpal b1c369c1bb Add park and ride card components with advanced search functionality
- Implemented park card component with image, status badge, favorite button, and quick stats overlay.
- Developed ride card component featuring thrill level badge, status badge, favorite button, and detailed stats.
- Created advanced search page with filters for parks and rides, including location, type, status, and thrill level.
- Added dynamic quick search functionality with results display.
- Enhanced user experience with JavaScript for filter toggling, range slider updates, and view switching.
- Included custom CSS for improved styling of checkboxes and search results layout.
2025-09-24 23:10:48 -04:00

11 KiB

ThrillWiki Migration Mapping Document

This document provides a comprehensive mapping of files from the current Django project to the new monorepo structure.

Root Level Files

Current Location New Location Notes
manage.py backend/manage.py Core Django management
pyproject.toml backend/pyproject.toml Python dependencies
uv.lock backend/uv.lock UV lock file
.gitignore .gitignore (update) Merge with monorepo patterns
README.md README.md (update) Update for monorepo
.pre-commit-config.yaml .pre-commit-config.yaml Root level

Configuration Directory

Current Location New Location Notes
config/django/ backend/config/django/ Django settings
config/settings/ backend/config/settings/ Environment settings
config/urls.py backend/config/urls.py URL configuration
config/wsgi.py backend/config/wsgi.py WSGI configuration
config/asgi.py backend/config/asgi.py ASGI configuration

Django Apps

Accounts App

Current Location New Location
accounts/ backend/apps/accounts/
accounts/__init__.py backend/apps/accounts/__init__.py
accounts/models.py backend/apps/accounts/models.py
accounts/views.py backend/apps/accounts/views.py
accounts/admin.py backend/apps/accounts/admin.py
accounts/apps.py backend/apps/accounts/apps.py
accounts/migrations/ backend/apps/accounts/migrations/
accounts/tests/ backend/apps/accounts/tests/

Parks App

Current Location New Location
parks/ backend/apps/parks/
parks/__init__.py backend/apps/parks/__init__.py
parks/models.py backend/apps/parks/models.py
parks/views.py backend/apps/parks/views.py
parks/admin.py backend/apps/parks/admin.py
parks/apps.py backend/apps/parks/apps.py
parks/migrations/ backend/apps/parks/migrations/
parks/tests/ backend/apps/parks/tests/

Rides App

Current Location New Location
rides/ backend/apps/rides/
rides/__init__.py backend/apps/rides/__init__.py
rides/models.py backend/apps/rides/models.py
rides/views.py backend/apps/rides/views.py
rides/admin.py backend/apps/rides/admin.py
rides/apps.py backend/apps/rides/apps.py
rides/migrations/ backend/apps/rides/migrations/
rides/tests/ backend/apps/rides/tests/

Moderation App

Current Location New Location
moderation/ backend/apps/moderation/
moderation/__init__.py backend/apps/moderation/__init__.py
moderation/models.py backend/apps/moderation/models.py
moderation/views.py backend/apps/moderation/views.py
moderation/admin.py backend/apps/moderation/admin.py
moderation/apps.py backend/apps/moderation/apps.py
moderation/migrations/ backend/apps/moderation/migrations/
moderation/tests/ backend/apps/moderation/tests/

Location App

Current Location New Location
location/ backend/apps/location/
location/__init__.py backend/apps/location/__init__.py
location/models.py backend/apps/location/models.py
location/views.py backend/apps/location/views.py
location/admin.py backend/apps/location/admin.py
location/apps.py backend/apps/location/apps.py
location/migrations/ backend/apps/location/migrations/
location/tests/ backend/apps/location/tests/

Media App

Current Location New Location
media/ backend/apps/media/
media/__init__.py backend/apps/media/__init__.py
media/models.py backend/apps/media/models.py
media/views.py backend/apps/media/views.py
media/admin.py backend/apps/media/admin.py
media/apps.py backend/apps/media/apps.py
media/migrations/ backend/apps/media/migrations/
media/tests/ backend/apps/media/tests/

Email Service App

Current Location New Location
email_service/ backend/apps/email_service/
email_service/__init__.py backend/apps/email_service/__init__.py
email_service/models.py backend/apps/email_service/models.py
email_service/views.py backend/apps/email_service/views.py
email_service/admin.py backend/apps/email_service/admin.py
email_service/apps.py backend/apps/email_service/apps.py
email_service/migrations/ backend/apps/email_service/migrations/
email_service/tests/ backend/apps/email_service/tests/

Core App

Current Location New Location
core/ backend/apps/core/
core/__init__.py backend/apps/core/__init__.py
core/models.py backend/apps/core/models.py
core/views.py backend/apps/core/views.py
core/admin.py backend/apps/core/admin.py
core/apps.py backend/apps/core/apps.py
core/migrations/ backend/apps/core/migrations/
core/tests/ backend/apps/core/tests/

Static Files and Templates

Current Location New Location Notes
static/ backend/static/ Django admin and backend assets
staticfiles/ backend/staticfiles/ Collected static files
templates/ backend/templates/ Django templates (if any)

Media Files

Current Location New Location Notes
media/ shared/media/ User uploaded content

Scripts and Development Tools

Current Location New Location Notes
scripts/ scripts/ Root level scripts
scripts/dev_server.sh scripts/backend_dev.sh Rename for clarity

New Frontend Structure (Created)

New Location Purpose
frontend/ Vue.js application root
frontend/package.json Node.js dependencies
frontend/pnpm-lock.yaml pnpm lock file
frontend/vite.config.ts Vite configuration
frontend/tsconfig.json TypeScript configuration
frontend/tailwind.config.js Tailwind CSS configuration
frontend/src/ Vue.js source code
frontend/src/main.ts Application entry point
frontend/src/App.vue Root component
frontend/src/components/ Vue components
frontend/src/views/ Page components
frontend/src/router/ Vue Router configuration
frontend/src/stores/ Pinia stores
frontend/src/composables/ Vue composables
frontend/src/utils/ Utility functions
frontend/src/types/ TypeScript type definitions
frontend/src/assets/ Static assets
frontend/public/ Public assets
frontend/dist/ Build output

New Shared Resources (Created)

New Location Purpose
shared/ Cross-platform resources
shared/media/ User uploaded files
shared/docs/ Documentation
shared/types/ Shared TypeScript types
shared/constants/ Shared constants

Updated Root Files

package.json (Root)

{
  "name": "thrillwiki-monorepo",
  "private": true,
  "workspaces": [
    "frontend"
  ],
  "scripts": {
    "dev": "concurrently \"pnpm --filter frontend dev\" \"./scripts/backend_dev.sh\"",
    "build": "pnpm --filter frontend build",
    "backend:dev": "./scripts/backend_dev.sh",
    "frontend:dev": "pnpm --filter frontend dev",
    "test": "pnpm --filter frontend test && cd backend && uv run manage.py test",
    "lint": "pnpm --filter frontend lint && cd backend && uv run flake8 .",
    "format": "pnpm --filter frontend format && cd backend && uv run black ."
  },
  "devDependencies": {
    "concurrently": "^8.2.2"
  }
}

.gitignore (Updated)

# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# Django
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal
/backend/static/
/backend/media/

# UV
.uv/

# Node.js
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
.pnpm-store/

# Vue.js / Vite
/frontend/dist/
/frontend/dist-ssr/
*.local

# Environment variables
.env
.env.local
.env.development.local
.env.test.local
.env.production.local

# IDEs
.vscode/
.idea/
*.swp
*.swo

# OS
.DS_Store
Thumbs.db

# Logs
logs/
*.log

# Coverage
coverage/
*.lcov
.nyc_output

Configuration Updates Required

Backend Django Settings

Update INSTALLED_APPS paths:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    
    # Local apps
    'apps.accounts',
    'apps.parks',
    'apps.rides',
    'apps.moderation',
    'apps.location',
    'apps.media',
    'apps.email_service',
    'apps.core',
]

Update media and static files paths:

STATIC_URL = '/static/'
STATIC_ROOT = BASE_DIR / 'staticfiles'
STATICFILES_DIRS = [
    BASE_DIR / 'static',
]

MEDIA_URL = '/media/'
MEDIA_ROOT = BASE_DIR.parent / 'shared' / 'media'

Script Updates

Update scripts/backend_dev.sh:

#!/bin/bash
cd backend
lsof -ti :8000 | xargs kill -9 2>/dev/null || true
find . -type d -name "__pycache__" -exec rm -r {} + 2>/dev/null || true
uv run manage.py runserver 0.0.0.0:8000

Migration Steps Summary

  1. Create new directory structure
  2. Move backend files to backend/ directory
  3. Update import paths in Django settings and apps
  4. Create frontend Vue.js application
  5. Update scripts and configuration files
  6. Test both backend and frontend independently
  7. Configure API integration between Django and Vue.js
  8. Update deployment configurations

Validation Checklist

  • All Django apps moved to backend/apps/
  • Configuration files updated with new paths
  • Static and media file paths configured correctly
  • Frontend Vue.js application created and configured
  • Root package.json with workspace configuration
  • Development scripts updated and tested
  • Git configuration updated
  • Documentation updated
  • CI/CD pipelines updated (if applicable)
  • Database migrations work correctly
  • Both development servers start successfully
  • API endpoints accessible from frontend